專利名稱:動態(tài)影像壓縮的可變位元率控制裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于數(shù)據(jù)壓縮的領(lǐng)域,特別是指一種適用于視頻編碼系統(tǒng)以執(zhí)行可變位元率控制的裝置。
背景技術(shù):
眾所周知,電子通訊世界正經(jīng)歷一次數(shù)字革命,以數(shù)字表示信息的主要優(yōu)點(diǎn)在于能夠幾近無誤地儲存、再生、傳收、處理及運(yùn)用的數(shù)據(jù)位元流(bitstream)。舉例而言,NTSC的彩色視頻影像每秒有29.97張畫面,每張畫面約480條可見掃瞄線,每條掃瞄線約需480點(diǎn)以紅、綠、藍(lán)三色呈現(xiàn)的像素(pixel),但若每種色彩成分以8位編碼,則所產(chǎn)生的位元率(bitrate)每秒約168百萬位元(Mbits/s),故各種視頻格式其未經(jīng)壓縮處理的位元率非常高而不經(jīng)濟(jì),因此不適于多數(shù)的應(yīng)用。
與電腦、電信網(wǎng)絡(luò)、消費(fèi)性產(chǎn)品整合的數(shù)字音頻和視頻,更加刺激信息革命的前進(jìn),而這革命的核心則是視、音頻的數(shù)字壓縮技術(shù)。許多的壓縮標(biāo)準(zhǔn),包含以壓縮技術(shù)共通的精髓為基礎(chǔ)的算法,如ITU-T(前身是CCITT)建議書H.261和H.263,以及ISO/IEC的MPEG-1、MPEG-2和MPEG-4標(biāo)準(zhǔn)。MPEG的演算法是由動態(tài)影像專家群組(Moving Picture Experts Group,MPEG)所發(fā)展出來,該動態(tài)影像專家群組是國際標(biāo)準(zhǔn)組織(InternationalStandards Organization,ISO)及國際電子技術(shù)委員會(InternationalElectrotechnical Commission,IEC)的聯(lián)合技術(shù)委員會,致力于發(fā)展視、音頻的壓縮及多路傳殊的表現(xiàn)方式,這些標(biāo)準(zhǔn)規(guī)定了壓縮位元流的語法(syntax)以及解碼的方法,但對于編碼器所使用的演算法而言,卻為編碼的新穎性與多樣性保留了相當(dāng)多的自由度。
根據(jù)MPEG,一連串的視頻畫面(picture)分成一序列的畫面群組(groupof picture,GOP),其中每組GOP以I-畫面開始,后面跟著P-畫面和B-畫面的安排,圖1以顯示的順序說明一組典型的GOP。I-畫面的編碼毋須參考先前或?qū)淼漠嬅妫琍-畫面則參考連串的視頻畫面中在時間上最接近的I-畫面或P-畫面來進(jìn)行編碼,而B-畫面散布于I-畫面和P-畫面之間。并且利用先前的、將來的或兩者兼具的緊鄰I-畫面和P-畫面來編碼。雖然好幾張B-畫面可以緊接著連續(xù)出現(xiàn),但絕不能以B-畫面預(yù)估其它的畫面。
每張畫面具有三種成分亮度值(luminance,以Y表示),紅色差值(redcolor difference,以Cr表示),以及藍(lán)色差值(blue color difference,以Cb表示)。對于MPEG的4:2:0的格式而言,每一種Cr和Cb成分的取樣點(diǎn)在水平與垂直方向只有Y成分的一半。如圖2所示,一張MPEG的畫面其基本構(gòu)成方塊是大區(qū)塊(macroblock,以MB表示)。以4:2:0的視頻為例,每個MB包含一個Y成分16×16取樣點(diǎn)的陣列,以及兩個Cr和Cb成分8×8取樣點(diǎn)的區(qū)塊,其中Y成分16×16取樣點(diǎn)的陣列實際上由4個8×8取樣點(diǎn)的區(qū)塊所組成。
編碼器的作用在于決定何種畫面編碼型態(tài)以及何種預(yù)測模式為最佳。對每張I-畫面,MB中的每個8×8方塊均經(jīng)過離散余弦轉(zhuǎn)換(discrete cosinetransform,DCT)而形成8×8轉(zhuǎn)換系數(shù)陣列,轉(zhuǎn)換系數(shù)接著以一量化矩陣進(jìn)行量化,然后用Z字形(zig-zag)掃瞄DCT系數(shù)的量化結(jié)果而得到一連串的DCT系數(shù),并且此DCT系數(shù)序列以可變長度碼(variable length code,VLC)進(jìn)行編碼。P-畫面必須決定將每個MB以I型MB或P型MB進(jìn)行編碼,I型MB的編碼是以上述的方式進(jìn)行的,而對于每個P型MB,則需得到該MB以先前畫面所做的預(yù)測,此預(yù)測是通過一種移動向量(motion vector)獲得,移動向量象征著目前畫面中即將編碼的MB及其在先前畫面中的預(yù)估MB之間的變動,預(yù)估MB與目前MB間的預(yù)測誤差則以DCT、量化、Z字形掃瞄以及VLC進(jìn)行編碼。
處理B-畫面時,必須決定以下列何種MB模式來編碼每個MBI模式、F模式、B模式以及FB模式。I模式是以MB本身而不借助移動補(bǔ)償來編碼(如I型MB一般);F模式為單向的向前預(yù)測編碼,是以先前畫面得到移動補(bǔ)償?shù)念A(yù)估(如P型MB一般);反之,B模式為單向的向后預(yù)測編碼,是以后來的畫面得到移動補(bǔ)償?shù)念A(yù)估。特別的是FB模式,其是雙向的預(yù)測編碼,運(yùn)用向前的和向后的移動補(bǔ)償預(yù)估兩者來做內(nèi)插(interpolation)而得到FB模式的移動補(bǔ)償預(yù)估。對F、B和FB模式而言,預(yù)測誤差可以使用DCT、量化、Z字形掃瞄以及VLC進(jìn)行編碼。
視頻編碼器必須為整張畫面選取量化步長以便在給定的位元率下控制可見的失真,然而,以選取的量化步長編碼一張畫面所用的實際位元數(shù),必然是在真正編碼之后才會得知,現(xiàn)實中并不存在一個逆轉(zhuǎn)函數(shù),能夠在給定希望達(dá)到的量化步長下,事先決定一張畫面所用的實際位元數(shù)。編碼器很重要的一點(diǎn)即為位元率的控制。MPEG中重要的視頻編碼器限制即每張畫面所用位元數(shù)變化的限制,特別是在固定位元率運(yùn)作的情形,這種限制是透過視頻緩沖器檢驗者(Video Buffer Verifier,VBV)來施行。若對于每張畫面而言,VBV的輸入數(shù)據(jù)速率均相同,則視頻可說是以固定位元率(Constant Bitrate,CBR)編碼;否則即為可變位元率(Variable Bitrate,VBR)編碼。VBV乃一種虛擬緩沖器并且是在解碼器端的輸入緩沖器模型,以固定位元率而言,編碼器分配給一張畫面的位元額度須使VBV緩沖器不會滿溢或匱乏;而對于可變位元率,編碼過的位元流則是以特定的最大位元率進(jìn)入VBV緩沖器直到其飽和、再沒有多的位元輸入為止,這可解釋為進(jìn)入VBV緩沖器的位元率實際上是可變的且能達(dá)到上述的最大位元率。故對于可變位元率,則只要防止VBV匱乏即可。
可變位元率控制的目的是盡可能的提高解碼后視頻的品質(zhì)而還能維持輸出位元率在允許的范圍內(nèi)。和固定位元率的方式不同,可變位元率擁有較大的彈性來分配額外的位元數(shù)給景物較復(fù)雜、變動較劇烈的畫面。不過,傳統(tǒng)的可變位元率控制架構(gòu)卻相當(dāng)復(fù)雜,通常需進(jìn)行好幾次才能完成視頻編碼的處理。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種新穎的動態(tài)影像壓縮的可變位元率控制裝置,可用于單次、即時的視頻編碼器,再者,也期待能提供一種適合施行于積體電路、具有可變位元率控制的動態(tài)影像壓縮裝置。
根據(jù)本發(fā)明,每一張畫面其目標(biāo)位元的分配,是基于先前畫面的編碼結(jié)果和對即將被編碼的目前畫面其預(yù)先分析的活動量,再者,通過目前畫面的預(yù)先分析的活動量以及先前編碼畫面的實際復(fù)雜度間的關(guān)系,目前畫面的復(fù)雜度將能夠被估計而得。由于畫面的復(fù)雜度含有該畫面編碼之后的品質(zhì)資訊,故此預(yù)估的目前畫面復(fù)雜度對視頻編碼器是非常有用的,可以更精確地分配目標(biāo)位元額度給每張畫面,藉以達(dá)到視頻序列中不同畫面之間均一的視覺品質(zhì)。
本發(fā)明是針對于一種動態(tài)影像壓縮的可變位元率控制裝置。根據(jù)本發(fā)明,該裝置包括一移動估算單元、一復(fù)雜度估計器、一目標(biāo)位元分派器以及一參數(shù)更新器。移動估算單元接收視頻序列里的一組連續(xù)畫面中即將被編碼的目前畫面,用以計算此目前畫面的全活動量?;谀壳爱嬅娴娜顒恿恳约斑@組連續(xù)畫面中一同型態(tài)的先前編碼畫面其活動量對復(fù)雜度之比,復(fù)雜度估計器可用來估計目前畫面的復(fù)雜度。以目前畫面預(yù)估的復(fù)雜度,目標(biāo)位元分派器更新本組連續(xù)畫面的瞬間復(fù)雜度,并且基于這組連續(xù)畫面的既定平均位元率、統(tǒng)計復(fù)雜度及瞬間復(fù)雜度來計算該組連續(xù)畫面的瞬間位元率,而根據(jù)目前畫面的復(fù)雜度、這組連續(xù)畫面的瞬間復(fù)雜度及瞬間位元率,目標(biāo)位元分派器將目標(biāo)位元額度分配給目前畫面。而參數(shù)更新器在目前畫面編碼之后,根據(jù)目前畫面的全活動量、實際消耗位元數(shù)和編碼目前畫面實際所用量化步長的平均值,計算目前畫面其活動量對復(fù)雜度之比;其中,目前畫面的活動量對復(fù)雜度之比與目前畫面的全活動量成正比,而與目前畫面的實際消耗位元數(shù)以及目前畫面實際所用量化步長的平均值成反比。此外,參數(shù)更新器還以目前畫面的復(fù)雜度為基礎(chǔ)來計算前述的統(tǒng)計復(fù)雜度。
另一方面,本發(fā)明還揭示一種目標(biāo)位元分派器,包括一瞬間位元率計算器、一配額計算器以及一限度單元。瞬間位元率計算器接收視頻序列中一組連續(xù)畫面里即將被編碼的目前畫面所含的復(fù)雜度以及該組連續(xù)畫面的統(tǒng)計復(fù)雜度,且以該復(fù)雜度為基礎(chǔ)來更新此組連續(xù)畫面的瞬間復(fù)雜度,并根據(jù)一函數(shù)來計算這組連續(xù)畫面的瞬間位元率,其中該函數(shù)取決于該組連續(xù)畫面的既定平均位元率、統(tǒng)計復(fù)雜度及瞬間復(fù)雜度。配額計算器則以目前畫面的復(fù)雜度、這組連續(xù)畫面的瞬間位元率及瞬間復(fù)雜度為基礎(chǔ),將目標(biāo)位元額度分配給目前畫面,而限度單元則用來將此目標(biāo)位元額度限制在既定的上限之下。
圖1是以顯示的順序呈現(xiàn)典型的畫面群組(GOP)。
圖2是MPEG的大區(qū)塊。
圖3是本發(fā)明的可變位元率控制裝置其較佳實施例的方塊示意圖。
圖4是本發(fā)明的操作流程圖。
圖5是圖3中的目標(biāo)位元分派器的方塊示意圖。
圖號說明300......動態(tài)影像壓縮裝置310......移動估算單元312......訊號線320......復(fù)雜度估計器330......目標(biāo)位元分派器340......參數(shù)更新器
350......影像編碼器510......瞬間位元率計算器520.........配額計算器530.........限度單元P(i)........畫面A(i)........全活動量Cest(i)........預(yù)估復(fù)雜度ACR(i)......活動量對復(fù)雜度之比EB............超用位元量STAT_C.....統(tǒng)計復(fù)雜度TB(i)......目標(biāo)位元額度AQ(i)......實際所用量化步長的平均值UB(i)......實際消耗位元數(shù)CD ......編碼后的數(shù)據(jù)INST_R......瞬間位元率INST_C......瞬間復(fù)雜度具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉一較佳實施例,并配合所附圖式,作詳細(xì)說明如下一開始,預(yù)測用的I-畫面和P-畫面必須先在MPEG編碼器內(nèi)解碼,利用計算原始畫面及解碼的畫面間的均方根(root mean square)誤差,可以得到解碼畫面其品質(zhì)的客觀量度。以均方根誤差作為解碼畫面的失真度,則解碼畫面的復(fù)雜度(complex)-C定義如下C=r×d
其中,r是編碼該畫面所需的位元率,d是解碼的畫面的失真度。理論上,平均的量化步長(quantization step size)和失真度之間為一比例關(guān)系,故,畫面的復(fù)雜度可定義成C≈r×q2]]>其中,q是該畫面的平均量化步長。在畫面編碼之后,將可得知位元率(實際消耗位元數(shù))以及平均量化步長,而該畫面的復(fù)雜度也因此獲得。
畫面的復(fù)雜度端視畫面的本質(zhì)及其編碼的形式而定。先前技術(shù)利用最近編碼畫面的復(fù)雜度來表示目前畫面的復(fù)雜度,并且為I-、P-及B-畫面分別保持其復(fù)雜度以減輕不同編碼形式的影響,倘若視頻序列的畫面其內(nèi)容為平順的變化,則此方式可達(dá)到相當(dāng)不錯的效果。然而,由于畫面編碼的目標(biāo)位元配額與其實際消耗位元數(shù)之間不相符合,如果視頻序列的內(nèi)容大幅變動,上述方式并不適合用來達(dá)成一致的視覺品質(zhì)。
根據(jù)本發(fā)明,預(yù)先分析目前畫面的活動量(activity)以及先前編碼畫面的實際復(fù)雜度之間的關(guān)系,目前畫面的復(fù)雜度將能藉此預(yù)估?;顒恿渴且环N在畫面編碼后其位元率和品質(zhì)的量度嘗試,假設(shè)一整張畫面的全活動量A正比于復(fù)雜度C,則A=k×C≈k2×r×q=k′×r×q]]>其中,k是比例常數(shù)。若k′為活動量對復(fù)雜度之比(activity-to-complexityratio,ACR),則全活動量A還可以下列式子表示A=ACR×r×q根據(jù)本發(fā)明,可以從相同型態(tài)的先前編碼畫面來預(yù)估ACR。觀念上,先在編碼一張畫面前計算其全活動量A,然后,即將被編碼的畫面P(i)的復(fù)雜度Cest(i)以如下方式估算Cest(i)=A(i)ACR(i-1)]]>
其中,A(i)是畫面P(i)的全活動量,ACR(i-1)是同型態(tài)的先前編碼畫面其活動量對復(fù)雜度之比。以下,在符號或變數(shù)中的上標(biāo)(i)表示該符號或變量是與即將被編碼的目前畫面有關(guān);同理,在符號或變量中的上標(biāo)(i-1)則與先前編碼畫面相關(guān)。
估計的復(fù)雜度Cest(i)可用來為合適型態(tài)的畫面更新其復(fù)雜度,所以三種型態(tài)的畫面其復(fù)雜度CI、CP和CB將分別儲存以利后續(xù)的處理。一組連續(xù)畫面的瞬間復(fù)雜度(instantaneous complexity)也以如下方式更新INST_C=NI×CI+NP×CP+NB×CB其中,NI、NP和NB分別是該組連續(xù)畫面中I-、P-及B-畫面的數(shù)目,而且此處所指的一組連續(xù)畫面至少包含一組GOP。除了CI、CP和CB之外,也分別存放I-、P-及B-畫面的復(fù)雜度統(tǒng)計量SCI、SCP和SCB,并且取目前畫面的復(fù)雜度Cest(i)來更新同型態(tài)畫面的復(fù)雜度統(tǒng)計量,則一組連續(xù)畫面的統(tǒng)計復(fù)雜度為STAT_C=NI×SCI+NP×SCP+NB×SCB若是最大、最小位元率已根據(jù)每組連續(xù)畫面期望達(dá)到的編碼位元率而事先決定,如此,一組連續(xù)畫面的瞬間位元率可由下列式子計算而得INST_R=ERmean·(1+SF·(INST_CSTAT_C-1))]]>其中,ERmean是本組連續(xù)畫面的既定平均位元率,SF是一縮放因子,其范圍在0到1之間;瞬間位元率INST_R還須進(jìn)一步地限制在每組連續(xù)畫面的既定最大、最小位元率之間ERmin≤INST_R≤ERmax一旦瞬間復(fù)雜度INST_C和瞬間位元率INST_R已經(jīng)決定,則目前畫面P(i)的目標(biāo)位元額度TB(i)為
TB(i)=Cest(i)INST_C×INST_R]]>由上式可知,目標(biāo)位元額度TB(i)與復(fù)雜度Cest(i)以及瞬間位元率INST_R成正比,而與瞬間復(fù)雜度INST_C成反比。
所有的MPEG-2數(shù)據(jù)位元流均必須遵循MPEG-2標(biāo)準(zhǔn)的VBV規(guī)則,分配的目標(biāo)額度必須受限以使VBV緩沖器不會滿溢(overflow)或匱乏(underflow)。當(dāng)目前畫面的目標(biāo)位元額度決定好之后,便可利用許多不同型態(tài)的影像編碼器,像是MPEG-2標(biāo)準(zhǔn)描述的測試原型5(Test Model 5),根據(jù)目標(biāo)位元額度來完成畫面的壓縮。
目前畫面在完成編碼之后,其實際的復(fù)雜度將可得知,而目前畫面的全活動量和實際復(fù)雜度之間的關(guān)系,ACR(i)可從以下計算得到ACR(i)=A(i)AQ(i)×UB(i)]]>其中,ACR(i)與全活動量A(i)成正比,而與目前畫面的實際消耗位元數(shù)UB(i)以及平均量化步長AQ(i)成反比。此ACR(i)可拿來預(yù)估下一張同型態(tài)的畫面的復(fù)雜度。ACR(i)可以和ACR(i-1)做線性結(jié)合來避免受到那些富含噪聲畫面的影響。
本發(fā)明的單次(single-pass)視頻編碼可通過圖3的較佳實施例并配合圖4的操作流程圖來解釋。如圖3所示,動態(tài)影像壓縮裝置300包括一移動估算單元310、一復(fù)雜度估計器320、一目標(biāo)位元分派器330、一參數(shù)更新器340以及一影像編碼器350。移動估算單元310接收視頻序列里的一組連續(xù)畫面中即將被編碼的目前畫面P(i),用來在執(zhí)行移動估算的區(qū)塊匹配時,計算此目前畫面P(i)的全活動量A(i)(步驟S410)?;谌顒恿緼(i)以及這組連續(xù)畫面中同型態(tài)的先前編碼畫面的ACR(i-1),復(fù)雜度估計器320可用來估計目前畫面的復(fù)雜度Cest(i)(步驟S420)。目標(biāo)位元分派器330以預(yù)估的復(fù)雜度Cest(i)更新本組連續(xù)畫面其瞬間復(fù)雜度INST_C(步驟S430),同時,目標(biāo)位元分派器330從參數(shù)更新器340接收該組連續(xù)畫面的統(tǒng)計復(fù)雜度STAT_C,并根據(jù)這組連續(xù)畫面的既定平均位元率ERmean、統(tǒng)計復(fù)雜度STAT_C、瞬間復(fù)雜度INST_C,計算該組連續(xù)畫面的瞬間位元率INST_R(步驟S440)。
目標(biāo)位元分派器330接著以瞬間位元率INST_R、復(fù)雜度Cest(i)以及瞬間復(fù)雜度INTC為基礎(chǔ)將目標(biāo)位元額度TB(i)分配給目前畫面P(i)(步驟S450)。因此,影像編碼器350依目標(biāo)位元額度TB(i)而決定目前畫面P(i)使用的所有量化步長,這些量化步長作為畫面P(i)中每一空間區(qū)域大區(qū)塊(MB)的編碼之用。影像編碼器350根據(jù)這些量化步長編碼目前畫面P(i)(步驟S460)。在目前畫面編碼完成后,影像編碼器350將畫面P(i)的實際消耗位元數(shù)UB(i)以及實際所用量化步長的平均值A(chǔ)Q(i)回報給參數(shù)更新器340。然后以全活動量A(i)、實際消耗位數(shù)UB(i)和實際所用量化步長的平均值A(chǔ)Q(i)為基礎(chǔ),參數(shù)更新器340為目前畫面P(i)計算其活動量對復(fù)雜度之比ACR(i)(步驟S470)。
等效上,圖3的較佳實施例可考量以硬件以及/或是軟件來實現(xiàn)。根據(jù)本發(fā)明,移動估算單元310和圖3中的其它組件可以管線(pipeline)模式運(yùn)作,在復(fù)雜度估計器320開始計算目前畫面的復(fù)雜度之前,移動估算單元310必須先完成即將被編碼的目前畫面其全活動量的計算以及移動向量的估算,并且,當(dāng)移動估算單元310為下張畫面作準(zhǔn)備時,復(fù)雜度估計器320和其它組件仍正忙于完成所有與目前畫面相關(guān)的運(yùn)作。接下來將詳細(xì)地描述較佳實施例中的每個組件。
移動估算單元310的主要目的之一為決定用何種預(yù)測模式來編碼一張畫面里的每個MB,如果必要的話,也進(jìn)行向前和向后的移動預(yù)測,還可從區(qū)塊匹配運(yùn)算中提取畫面活動量的信息。首先,計算每個MB的自身活動量(intra-activity),將一個MB中4個8×8亮度值區(qū)塊的像素強(qiáng)度以Ym,n,m=0,...,7,n=0,...,7來表示,并且每個8×8區(qū)塊其平均值為
Y,則每個MB的內(nèi)活動量IntraActIntraAct=Σk=03σk]]>其中σk=Σm=07Σn=07(Ym,n-Y‾)2]]>倘若需要較低的計算復(fù)雜度,可以相對
Y的絕對差值代替IntraAct=Σk=03Δk]]>其中Δk=Σm=07Σn=07|Ym,n-Y‾|]]>由于I-畫面中的MB僅有一種模式I模式,因此IntraAct即為I-畫面的每個MB的活動量。
如果畫面為P-或B-畫面,則需進(jìn)行移動估算。最常使用來發(fā)現(xiàn)最佳移動向量的技術(shù)是區(qū)塊匹配。對非自身編碼(nonintra coding)而言(如P-和B-畫面),利用將失真標(biāo)準(zhǔn)如變異數(shù)或失真絕對值和減至最低,來選擇向前、向后、雙向的預(yù)測或不需移動補(bǔ)償。一旦P-或B-畫面中每個MB的MB模式?jīng)Q定,在每個移動補(bǔ)償?shù)牟钪礛B中4個8×8區(qū)塊的變異數(shù)也可求得,移動補(bǔ)償?shù)牟钪礛B是待處理MB和預(yù)估MB間像素對像素之差;失真絕對值和通常具有較佳的計算效率,因此可用來取代變異數(shù)。將4個8×8區(qū)塊的變異數(shù)或失真絕對值和相加以求得非內(nèi)編碼畫面中每個MB的相互活動量(inter-activity),InterAct,然后把非內(nèi)編碼畫面中每個MB的IntraAct及其InterAct拿來作比較,以判斷InterAct是否較小,若是,則以InterAct作為該MB的活動量,并以相互模式(inter-mode)編碼該MB;否則以IntraAct作為該MB的活動量,并以自身模式(intra-mode)編碼該MB。最后,對目前的I-、P-或B-畫面,將所有MB的活動量相加而得全活動量A(i),移動估算單元310再把全活動量A(i)傳送給復(fù)雜度估計器320以及參數(shù)更新器340。
接著,復(fù)雜度估計器320為某種型態(tài)的目前畫面P(i)估算其復(fù)雜度,且依照三種畫面型態(tài),引進(jìn)加權(quán)系數(shù)至預(yù)估的復(fù)雜度Cest(i)。因為B-畫面絕不能被用來預(yù)估其它的畫面,故可減少B-畫面的加權(quán)系數(shù)以分配較少的位元給B-畫面而保留較多的位元給I-和P-畫面;一般而言,編碼I-畫面會產(chǎn)生最多的位元,因此P-畫面的加權(quán)系數(shù)又小于I-畫面的加權(quán)系數(shù)。復(fù)雜度估計器320根據(jù)目前畫面的型態(tài)更新復(fù)雜度CI、CP或CB三者其中之一,目前畫面P(i)的復(fù)雜度Cest(i)以如下方式估算if(I-畫面)Cest(i)=CI=KI×A(i)ACRI(i-1)]]>else if(P-畫面)Cest(i)=CP=KP×A(i)ACRP(i-1)]]>else if(B-畫面)Cest(i)=CB=KB×A(i)ACRB(i-1)]]>其中,ACRI(i-1)、ACRP(i-1)及ACRB(i-1)是一組連續(xù)畫面中,I、P和B型態(tài)的先前編碼畫面各自的活動量對復(fù)雜度之比。這些ACRI(i-1)、ACRP(i-1)和ACRB(i-1)存放在參數(shù)更新器340之中,而復(fù)雜度估計器320會為適當(dāng)型態(tài)的先前畫面讀取對應(yīng)的活動量對復(fù)雜度之比。KI、KP及KB分別是I-、P-和B-畫面的加權(quán)系數(shù),其范圍一般是在0到1.0之間。至于I-畫面,較佳實施例可以采用KI=1.0。
目標(biāo)位元分派器330可為一組連續(xù)畫面中的三種型態(tài)I-畫面、P-畫面及B-畫面分別儲存其復(fù)雜度CI、復(fù)雜度CP與復(fù)雜度CB。當(dāng)收到Cest(i)的時候,視目前畫面P(i)的型態(tài),每次僅更新復(fù)雜度CI、CP、CB三者其中之一,如下if(I-畫面)CI=Cest(i)]]>else if(P-畫面)CP=Cest(i)]]>else if(B-畫面)CB=Cest(i)]]>如圖5所示的較佳實施例,目標(biāo)位元分派器330是由瞬間位元率計算器510、配額計算器520以及限度單元530所組成。瞬間位元率計算器510為該組連續(xù)畫面更新其瞬間復(fù)雜度INST_C,如下INST_C=NI×CI+NP×CP+NB×CB其中,NI、NP和NB分別是一組連續(xù)畫面中I-、P-及B-畫面的數(shù)目。在此同時,瞬間位元率計算器510還從參數(shù)更新器340讀取這組連續(xù)畫面的統(tǒng)計復(fù)雜度STAT_C,并且依據(jù)下式計算一組連續(xù)畫面的瞬間位元率INST_RINST_R=ERmean·(1+SF·(INST_CSTAT_C)-1)]]>其中,ERmean是本組連續(xù)畫面的既定平均位元率,SF是一縮放因子,其范圍在0到1之間;而瞬間位元率INST_R最好限制在這組連續(xù)畫面的最大、最小位元率ERmax及ERmin之間。
配額計算器520接著分配目標(biāo)位元額度TB(i)給目前畫面P(i),而目標(biāo)位元額度TB(i)是根據(jù)TB(i)=Cest(i)INST_C×INST_R]]>但是,實際的消耗位元數(shù)并不會和期望的位元額度剛好相等,因此發(fā)展一種回授策略來使畫面實際消耗的位元數(shù)接近于目標(biāo)位元額度,在較佳實施例中,編碼至目前為止的超用位元量,可由正在編碼的目前畫面攤還一部份TB(i)=TB(i)-AR×EB其中,EB是參數(shù)更新器340傳來的超用位元量,AR則是既定的攤還率,其范圍一般是在0.05到0.2之間。按照前面的式子,目標(biāo)位元額度TB(i)是與目前畫面的復(fù)雜度Cest(i)以及一組連續(xù)畫面的瞬間位元率INST_R成正比,而與一組連續(xù)畫面的瞬間復(fù)雜度INST_C成反比。限度單元530則能用來調(diào)整目標(biāo)位元額度TB(i)以符合VBV規(guī)范,因此事先定下了額度的上限(U_bound)及下限(L_bound)。就固定位元率(CBR)的操作而言,分配給一張畫面的目標(biāo)位元額度須使VBV緩沖器不會滿溢或匱乏,所以限度單元530將目標(biāo)位元額度TB(i)限制在上、下限范圍內(nèi)if(TB(i)>U_bound) then TB(i)=U_boundif(TB(i)<L_bound) then TB(i)=L_bound若是可變位率(VBR),則只要防止VBV匱乏即可,故if(TB(i)>U_bound) then TB(i)=U_bound然后,目標(biāo)位元額度TB(i)會被傳送到參數(shù)更新器340以及影像編碼器350。
回到圖3,影像編碼器350透過訊號線312從移動估算單元310接收畫面數(shù)據(jù)以及每個MB的移動向量和MB模式。為了盡可能的使畫面達(dá)到最佳品質(zhì),影像編碼器350依據(jù)目標(biāo)位元額度TB(i)來決定目前畫面的每個MB編碼所用的量化步長,以這些數(shù)據(jù)為基礎(chǔ),影像編碼器350開始對目前畫面P(i)進(jìn)行編碼且輸出編碼后的數(shù)據(jù)CD。在目前畫面P(i)編碼之后,影像編碼器350將所用的量化步長做平均并且計算實際消耗位元數(shù)UB(i),再回報目前畫面的UB(i)以及實際所用量化步長的平均值A(chǔ)Q(i)給參數(shù)更新器340。
參數(shù)更新器340會為一組連續(xù)畫面中的三種型態(tài)I-畫面、P-畫面及B-畫面分別儲存其復(fù)雜度統(tǒng)計量SCI、SCP與SCB,并且取畫面的復(fù)雜度Cest(i)來更新這三種型態(tài)中同型態(tài)畫面的復(fù)雜度統(tǒng)計量,如下SCX=SCX·(WX-1)+CestWX]]>其中,下標(biāo)x所代表的I、P及B型態(tài)端視目前畫面P(i)的型態(tài)而定,WI、WP和WB分別是I-畫面、P-畫面及B-畫面的既定加權(quán)系數(shù)。換言之,依據(jù)目前畫面P(i)的型態(tài),復(fù)雜度統(tǒng)計量SCI、SCP或SCB每次只有其中一個會被更新if(I-畫面)SCI=SCI·(WI-1)+Cest(i)WI]]>else if(P-畫面)SCP=SCP·(WP-1)+Cest(i)WP]]>else if(B-畫面)SCB=SCB·(WB-1)+Cest(i)WB]]>其中,WI、WP和WB的范圍一般是在200至2000之間。參數(shù)更新器340接著以下列的方程式計算一組連續(xù)畫面的統(tǒng)計復(fù)雜度STAT_C,STAT_C=NI×SCI+NP×SCP+NB×SCB其中,NI、NP和NB分別是每組連續(xù)畫面中I-、P-及B-畫面的數(shù)目。畫面P(i)的目標(biāo)位元額度TB(i)以及實際消耗位元數(shù)UB(i)間的差距,會由參數(shù)更新器340做累計以便在畫面P(i)編碼的后得到超用位元量EBEB=EB×(1-AR)+UB(i)-TB(i)其中,AR是既定的攤還率。因此,活動量和實際復(fù)雜度之間的關(guān)系,ACR(i),可從以下計算得到
ACR(i)=A(i)AQ(i)×UB(i)]]>這個剛編碼完成畫面P(i)所屬的ACR(i)可用來預(yù)估下一張同型態(tài)畫面的復(fù)雜度。為使ACR(i)不會受到富含噪聲畫面的影響,較佳實施例利用了ACR(i)和ACR(i-l)的線性組合,例如if(I-畫面)ACRI(i)=ACRI(i-1)×(1-CW)+ACR(i)×CW]]>else if(P-畫面)ACRP(i)=ACRP(i-1)×(1-CW)+ACR(i)×CW]]>else if(B-畫面)ACRB(i)=ACRB(i)×(1-CW)+ACR(i)×CW]]>其中,CW是線性組合既定的加權(quán)系數(shù)。更新過的ACRI(i)、ACRP(i)及ACRB(i)會被傳送到復(fù)雜度估計器320,以便為下一張適當(dāng)型態(tài)的畫面估算其復(fù)雜度,此外,超用位元量EB以及統(tǒng)計復(fù)雜度STAT_C則送至目標(biāo)位元分派器330作為位分配之用。
雖然本發(fā)明已以一具體實施例揭露如上,然其僅為了易于說明本發(fā)明的技術(shù)內(nèi)容,而并非將本發(fā)明狹義地限定于該實施例,任何熟習(xí)此技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求
的界定為準(zhǔn)。
權(quán)利要求
1.一種動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,至少包含一移動估算單元,接收一視頻序列里的一組連續(xù)畫面中即將被編碼的一目前畫面,以計算該目前畫面的一全活動量;一復(fù)雜度估計器,基于該目前畫面的該全活動量以及該組連續(xù)畫面中一同型態(tài)的先前編碼畫面其活動量對復(fù)雜度之比,來估計該目前畫面的一復(fù)雜度;一目標(biāo)位元分派器,以該目前畫面的該復(fù)雜度更新該組連續(xù)畫面的一瞬間復(fù)雜度,并且基于該組連續(xù)畫面的一既定平均位元率、一統(tǒng)計復(fù)雜度及該瞬間復(fù)雜度來計算該組連續(xù)畫面的一瞬間位元率,而根據(jù)該目前畫面的該復(fù)雜度、該組連續(xù)畫面的該瞬間復(fù)雜度及該瞬間位元率,分配一目標(biāo)位元額度給該目前畫面;以及一參數(shù)更新器,根據(jù)該目前畫面的該全活動量、該目前畫面的一實際消耗位元數(shù)和編碼該目前畫面實際所用量化步長的一平均值,計算該目前畫面其活動量對復(fù)雜度之比,并且基于該目前畫面的該復(fù)雜度來計算該組連續(xù)畫面的該統(tǒng)計復(fù)雜度;其中,該目前畫面的該活動量對復(fù)雜度之比與該目前畫面的該全活動量成正比,而與該目前畫面的該實際消耗位元數(shù)以及該目前畫面實際所用量化步長的該平均值成反比。
2.根據(jù)權(quán)利要求
1所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,還至少包含一影像編碼器,依上述目前畫面的上述目標(biāo)位元額度而決定上述目前畫面所使用的多個量化步長,所述量化步長是作為上述目前畫面中的每一空間區(qū)域編碼之用,該影像編碼器根據(jù)量化步長編碼上述目前畫面,且將上述目前畫面的上述實際消耗位元數(shù)以及上述目前畫面實際所用量化步長的上述平均值回報給上述參數(shù)更新器。
3.根據(jù)權(quán)利要求
1所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述復(fù)雜度估計器所估計得到的上述目前畫面的上述復(fù)雜度,是依據(jù)一方程式Cest=K×AACR]]>其中,Cest是上述目前畫面預(yù)估的上述復(fù)雜度,K是一既定的加權(quán)值,其范圍在0到1之間,A是上述目前畫面的上述全活動量,ACR是上述同型態(tài)的先前編碼畫面其活動量對復(fù)雜度之比。
4.根據(jù)權(quán)利要求
2所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述參數(shù)更新器計算上述目前畫面其活動量對復(fù)雜度之比,是依據(jù)ACR=AAQ×UB]]>其中,ACR代表上述目前畫面其活動量對復(fù)雜度之比,A是上述目前畫面的上述全活動量,AQ是上述目前畫面實際所用量化步長的上述平均值,UB是上述目前畫面的上述實際消耗位元數(shù)。
5.根據(jù)權(quán)利要求
1所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述目標(biāo)位元分派器為上述一組連續(xù)畫面中的三種型態(tài)I-畫面、P-畫面及B-畫面分別儲存其復(fù)雜度CI、復(fù)雜度CP與復(fù)雜度CB,并且取上述目前畫面的上述復(fù)雜度來更新該三種型態(tài)中同型態(tài)畫面的復(fù)雜度。
6.根據(jù)權(quán)利要求
5所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述目標(biāo)位元分派器至少包含一瞬間位元率計算器,以上述目前畫面的上述復(fù)雜度為基礎(chǔ),來更新上述一組連續(xù)畫面的上述瞬間復(fù)雜度,并且根據(jù)一函數(shù)來計算上述一組連續(xù)畫面的上述瞬間位元率,其中該函數(shù)取決于上述一組連續(xù)畫面的上述既定平均位元率、上述瞬間復(fù)雜度及上述統(tǒng)計復(fù)雜度;一配額計算器,以上述目前畫面的上述復(fù)雜度、上述一組連續(xù)畫面的上述瞬間位元率及上述瞬間復(fù)雜度為基礎(chǔ),來分配上述目標(biāo)位元額度;以及一限度單元,用來將上述目標(biāo)位元額度限制在一既定上限之下。
7.根據(jù)權(quán)利要求
6所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述瞬間位元率計算器求得的上述一組連續(xù)畫面的上述瞬間復(fù)雜度,是根據(jù)INST_C=NI×CI+NP×CP+NB×CB其中,INST_C代表上述瞬間復(fù)雜度,NI、NP和NB分別是上述一組連續(xù)畫面之中上述I-、P-及B-畫面的數(shù)目。
8.根據(jù)權(quán)利要求
6所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述瞬間位元率計算器計算上述一組連續(xù)畫面的上述瞬間位元率,是根據(jù)INST_R=ERmean·(1+SF·(INST_CSTAT_C-1))]]>其中,ERmean是上述一組連續(xù)畫面的上述既定平均位元率,SF是一縮放因子,其范圍在0到1之間,INST_C、STAT_C分別是上述一組連續(xù)畫面的上述瞬間復(fù)雜度與上述統(tǒng)計復(fù)雜度,INST_R代表上述瞬間位元率。
9.根據(jù)權(quán)利要求
1所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述參數(shù)更新器為上述一組連續(xù)畫面中的三種型態(tài)I-畫面、P-畫面及B-畫面分別儲存其復(fù)雜度統(tǒng)計量SCI、復(fù)雜度統(tǒng)計量SCP與復(fù)雜度統(tǒng)計量SCB,并且取上述目前畫面的上述復(fù)雜度來更新該三種型態(tài)中同型態(tài)畫面的復(fù)雜度統(tǒng)計量,如下SCX=SCX·(WX-1)+CestWX]]>其中,該下標(biāo)x所代表的I、P及B型態(tài)端視上述目前畫面的型態(tài)而定,WI、WP和WB分別是I-畫面、P-畫面及B-畫面的既定加權(quán)系數(shù),Cest是上述目前畫面的上述復(fù)雜度。
10.根據(jù)權(quán)利要求
9所述的動態(tài)影像壓縮的可變位元率控制裝置,其特征在于,上述參數(shù)更新器計算上述一組連續(xù)畫面的上述統(tǒng)計復(fù)雜度,是根據(jù)STAT_C=NI×SCI+NP×SCP+NB×SCB其中,STAT_C代表上述統(tǒng)計復(fù)雜度,NI、NP和NB分別是上述一組連續(xù)畫面之中上述I-、P-及B-畫面的數(shù)目。
專利摘要
一種動態(tài)影像壓縮的可變位元率控制裝置。根據(jù)本發(fā)明,先計算一組連續(xù)畫面中即將被編碼的目前畫面的全活動量,然后基于全活動量以及該組連續(xù)畫面中同型態(tài)的先前編碼畫面其活動量對復(fù)雜度之比,估計目前畫面的復(fù)雜度,并且以此復(fù)雜度更新該組連續(xù)畫面的瞬間復(fù)雜度和統(tǒng)計復(fù)雜度,然后計算其瞬間位元率,而根據(jù)畫面復(fù)雜度、該組連續(xù)畫面的瞬間復(fù)雜度及瞬間位元率,分配目標(biāo)位元額度給目前畫面。在畫面編碼之后,根據(jù)目前畫面的全活動量、實際消耗位元數(shù)和實際所用量化步長的平均值,計算其活動量對復(fù)雜度之比。
文檔編號H04N7/26GKCN1245840SQ03153181
公開日2006年3月15日 申請日期2003年8月8日
發(fā)明者張永清, 姚若壇, 徐國平 申請人:矽統(tǒng)科技股份有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan