專利名稱:動態(tài)圖像編碼中的緩沖器管理方法
技術領域:
本發(fā)明涉及動態(tài)圖像編碼技術,特別是涉及動態(tài)圖像編碼中的緩沖器管理方法。
背景技術:
請參照圖1,其示出了動態(tài)圖像編碼的圖像編碼器(Video Encoder)示意圖。一般來說,多個畫面(Picture)10依序輸入圖像編碼器100后,圖像編碼器會將這些畫面區(qū)分為多個畫面群(Group Of Picture,GOP)。而每個畫面群中的畫面皆可再被區(qū)分為I畫面(Intra Picture)、P畫面(Predictive Picture)、或者B畫面(Bidirectionally Predictive Picture)其中之一。隨后,這些畫面即進行離散余弦轉換(Discrete Cosine Transfer,DCT)20,并進行量化(Quantization,Q)30的操作,之后即可完成每個畫面的畫面編碼,并且輸出每個畫面的編碼數(shù)據(jù)至緩沖器。而在進行B畫面以及P畫面壓縮編碼之前必須與參考的畫面經(jīng)過反量化(Inverse Quantization,IQ)40、反離散余弦轉換(Inverse Discrete CosineTransfer,IDCT)50后并進行位移補償(Motion Compensation,MC)60的結果進行運算后才可執(zhí)行離散余弦轉換。
根據(jù)活動圖像專家組(Moving Picture Expert Group,以下簡稱MPEG)的規(guī)格。在編碼過程中每個畫面會被區(qū)分為多個區(qū)塊(Block),并且依照區(qū)塊之間的相似度來依序進行離散余弦轉換。簡單地說,區(qū)塊即為畫面編碼的基本單位。在畫面編碼的過程,I畫面直接進行畫面編碼,其可作為其它畫面編碼的基礎。而P畫面是經(jīng)單向參考所產生的畫面,亦即,P畫面是以參考的I畫面為基礎再加上二畫面之間的差異來進行畫面編碼所形成。同理,B畫面是經(jīng)雙向參考所產生,亦即,B畫面的畫面編碼是參考其前后的畫面(I畫面與P畫面或者P畫面與P畫面)來進行畫面編碼。因此,就每種畫面壓縮后的失真程度對圖像質量而言,I畫面最劇烈,P畫面次之,而B畫面最不劇烈。
再者,當圖像編碼器100畫面編碼完成之后,這些經(jīng)過畫面編碼之后所產生的編碼數(shù)據(jù)皆會被儲存在緩沖器200內。由于每個畫面經(jīng)過畫面編碼之后所產生的編碼數(shù)據(jù)量不盡相同,因此,必須暫時儲存在緩沖器200內,并且緩沖器200以一固定的數(shù)據(jù)傳輸率輸出編碼數(shù)據(jù)。一般來說緩沖器200為一存儲器。
由于輸入緩沖器200編碼數(shù)據(jù)數(shù)量不確定,并且緩沖器200必須輸出固定的數(shù)據(jù)傳輸率。如此,很有可能發(fā)生緩沖器200內已經(jīng)沒有足夠的空間儲存輸入的編碼數(shù)據(jù)。因此,這些即將輸入緩沖器200的部分編碼數(shù)據(jù)就可能由于緩沖器的溢滿(Overflow)而被拋棄。然而,如果被拋棄的編碼數(shù)據(jù)為I畫面,則會導致后續(xù)的P畫面或者B畫面沒辦法執(zhí)行畫面譯碼。因為在執(zhí)行畫面編碼時,P畫面或者B畫面的參考畫面(I畫面)已經(jīng)被拋棄。
因此,緩沖器200的管理是MPEG畫面編碼過程中的重要因素,如何設計緩沖器監(jiān)測單元使得所有的圖像編碼器輸出的編碼數(shù)據(jù)皆可順利地儲存至緩沖器200,并且不會使緩沖器200溢滿,是所有研發(fā)人員想解決的問題。
發(fā)明內容
本發(fā)明的目的是提供一種動態(tài)圖像編碼中的緩沖器管理方法,用以使得緩沖器不會發(fā)生溢滿的情形。
本發(fā)明提出一種動態(tài)圖像編碼中的緩沖器管理方法,該方法是首先,判斷緩沖器的儲存狀況;在緩沖器為可能溢滿時,對I畫面進行過濾操作的畫面編碼,對P畫面與B畫面進行剩余不編碼操作的畫面編碼;以及,在緩沖器僅剩一個特定容量時,對I畫面進行過濾操作的畫面編碼,對P畫面與B畫面進行舍棄操作的畫面編碼。
本發(fā)明還提出一種動態(tài)圖像編碼中的緩沖器管理方法,該方法是首先,判斷緩沖器的儲存狀況;在緩沖器為可能溢滿時,對I畫面進行過濾操作的畫面編碼;以及,在緩沖器為可能溢滿時對P畫面與B畫面進行剩余不編碼操作的畫面編碼。
本發(fā)明提出一種動態(tài)圖像編碼中的緩沖器管理方法,該方法是首先,判斷緩沖器的儲存狀況;在緩沖器僅剩一個特定容量時,對I畫面進行過濾操作的畫面編碼;以及,在緩沖器僅剩一個特定容量時,對P畫面與B畫面進行舍棄操作的畫面編碼。
本發(fā)明所提出的一種動態(tài)圖像編碼中的緩沖器管理方法的優(yōu)點,是利用緩沖器監(jiān)測單元來監(jiān)測緩沖器的狀態(tài)并針對各種不同的畫面選擇性地予以過濾、剩余不編碼、舍棄操作,有效地防止了緩沖器溢滿的情況。
為了更進一步了解本發(fā)明特征及技術內容,請參閱以下有關本發(fā)明的詳細說明與附圖,然而該附圖僅提供參考與說明之用,并非用來對本發(fā)明加以限制。
圖1示出了動態(tài)圖像編碼的圖像編碼器示意圖;圖2示出了一畫面群的示意圖;圖3示出了本發(fā)明動態(tài)圖像編碼中的緩沖器管理方塊圖;以及圖4示出了本發(fā)明動態(tài)圖像編碼中的緩沖器管理方法的操作流程。
附圖標記說明10畫面 20離散余弦轉換30量化 40反量化50反離散余弦轉換 60位移補償70緩沖器監(jiān)測單元 100 圖像編碼器200 緩沖器具體實施方式
請參照圖2,其示出了一畫面群的示意圖。假設緩沖器的數(shù)據(jù)傳輸率(BitRate,bits/s)為50Mbit/s,且每秒顯示的畫面速率(Frame rate,frame/s)為30。因此,如圖2共12個畫面的畫面群可算出畫面群總位數(shù)(Bit In One GOP,BGOP)為BGOP=12*50M/30=20M(bits)亦即,畫面群中所有的畫面經(jīng)過畫面編碼后產生的編碼數(shù)據(jù)必須在20Mbits上下一定范圍之內。
再者,由于I畫面、P畫面、與B畫面經(jīng)過畫面編碼后的編碼數(shù)據(jù)量并不相同。一般來說,I畫面的編碼數(shù)據(jù)量最多,P畫面的編碼數(shù)據(jù)量次之,B畫面的編碼數(shù)據(jù)量最少。亦即,B(I)>B(P)>B(B),其中,B(I)代表一個I畫面的編碼數(shù)據(jù)量,B(P)代表一個P畫面的編碼數(shù)據(jù)量,B(B)代表一個B畫面的編碼數(shù)據(jù)量。
接著定義活動指標(Activity),I畫面的活動指標以Activity(I)表示,其定義為Activity(I)=∑|pi-pmean|,其為I畫面中所有像素(Pixel)值與所有I畫面的像素平均值之間的差異總和。而P畫面與B畫面的活動指標以Activity(P)與Activity(B)表示,其定義為Activity(P或B)=∑|pi-pref|,其為P畫面或是B畫面中所有像素(Pixel)與其參考畫面中個別位置的像素值的差異總和。亦即,僅提供一個I畫面即可計算出活動指標。而P畫面或者B畫面活動指標必須加入?yún)⒖籍嬅娌趴捎嬎?。一般來說,活動指標的值以I畫面最大,P畫面次之,B畫面最小。
在動態(tài)圖像編碼的過程,不論I畫面、P畫面、B畫面可計算其個別的活動指標與復雜度比(Activity to Complexity ratio,ACR),定義為ACR(I)、ACR(P)、與ACR(B)。一般來說,在動態(tài)圖像編碼的過程中ACR(I)、ACR(P)、與ACR(B)可維持在一穩(wěn)定值附近,變動不大。因此,當每個畫面的活動指標計算出來后,利用活動指標與活動指標與復雜度比即可求出每個畫面的復雜度(Complexity)。
CI=Activity(I)/ACR(I)CP=Activity(P)/ACR(P)CB=Activity(B)/ACR(B)而運用復雜度即可估計每個畫面經(jīng)過畫面編碼后編碼數(shù)據(jù)的量(B(I)、B(P)、B(B))。亦即B(I)=BGOP*(NI*CI)/(NI*CI+NP*CP+NB*CB)B(P)=BGOP*(NP*CP)/(NI*CI+NP*CP+NB*CB)B(B)=BGOP*(NB*CB)/(NI*CI+NP*CP+NB*CB)其中、NI、NP、NB代表在一個畫面群中I畫面的總數(shù)、P畫面的總數(shù)、及B畫面的總數(shù)。
請參照圖3,其示出了本發(fā)明動態(tài)圖像編碼中的緩沖器管理方塊圖。在圖像編碼器100中加入一個緩沖器監(jiān)測單元70,緩沖器監(jiān)測單元70是根據(jù)緩沖器內的儲存狀態(tài)來改變畫面編碼的控制。舉例來說,圖像編碼器在進行量化的操作時是以一量化振幅來進行量化的操作,而改變此量化振幅可改變編碼數(shù)據(jù)的量。簡單的說,利用緩沖器監(jiān)測單元70提高此量化振幅可以使得編碼數(shù)據(jù)的量變小,降低此量化振幅可使得編碼數(shù)據(jù)量變大。
因此,當每個畫面的編碼數(shù)據(jù)輸出至緩沖器時,緩沖器監(jiān)測單元70可以比較預估的編碼數(shù)據(jù)量B(I)、B(P)、B(B))與實際的編碼數(shù)據(jù)量(B(Ireal)、B(Preal)、B(Breal))來動態(tài)的調整量化振幅,使得所有畫面編碼數(shù)據(jù)量的總和符合預估編碼數(shù)據(jù)量的總和。
再者,當緩沖器快到達溢滿時,緩沖器監(jiān)測單元70必須判斷圖像編碼器現(xiàn)在正在處理何種畫面。舉例來說,由于在畫面編碼之前已經(jīng)可以預估此畫面編碼后的編碼數(shù)據(jù)。因此,以下二個條件成立時,第一控制機制必須啟動。
(1)B(Ireal)>B(I)*(total_blk-remain_blk)/total_blkB(Preal)>B(P)*(total_blk-remain_blk)/total_blkB(Breal)>B(B)*(total_blk-remain_blk)/total_blk由于畫面編碼是以區(qū)塊為單位來進行編碼,以I畫面為例,當I畫面正在進行畫面編碼,任何時間點I畫面實際產生的編碼數(shù)據(jù)量B(Ireal)大于預估的編碼數(shù)據(jù)量時,則第一條件成立。其中,total_blk為此畫面被劃分的區(qū)塊總數(shù),而remain_blk為尚未進行編碼的區(qū)塊總數(shù)。
(2)緩沖器剩余的空間<B(I)*(remain_blk/total_blk)緩沖器剩余的空間<B(P)*(remain_blk/total_blk)緩沖器剩余的空間<B(B)*(remain_blk/total_blk)以I畫面為例,當I畫面正在進行畫面編碼,任何時間點緩沖器剩余的空間小于預估I畫面尚未進行編碼的編碼數(shù)據(jù)量時,則第二條件成立。
當(1)、(2)條件皆成立時,第一控制機制啟動。亦即,如果I畫面正在進行畫面編碼,則將I畫面進行過濾(Filter)操作后儲存至緩沖器。如果P或B畫面正在進行畫面編碼,則將P或B畫面進行剩余不編碼(Not_Coded)操作后儲存至緩沖器。所謂過濾操作,即將I畫面編碼數(shù)據(jù)中較重要的系數(shù)(Coefficient)儲存至緩沖器,較不重要的系數(shù)不儲存至緩沖器。所謂剩余不編碼操作即是將剩余區(qū)塊位移補償后的剩余值(residuals)不進行編碼,直接舍棄,而已經(jīng)進行編碼的區(qū)塊則直接儲存至緩沖器。因此可以有效地確保緩沖器不會溢滿。
再者,當緩沖器已經(jīng)達到95%的飽和狀況時,緩沖器監(jiān)測單元70必須啟動第二控制機制,此第二控制機制是根據(jù)現(xiàn)在正在處理的畫面進行一過濾(Filter)操作、或者舍棄(Skip)操作。亦即,在緩沖器已經(jīng)達到95%的飽和狀況時,當處理的畫面為I畫面時則進行過濾操作;當處理的畫面為P畫面或者B畫面時則進行舍棄操作。由于I畫面可為P畫面與B畫面的參考畫面,因此,將I畫面進行過濾操作后儲存至緩沖器,可有效的降低I畫面編碼數(shù)據(jù)的量并可防止緩沖器溢滿。再者,由于P畫面與B畫面的失真對于整體動態(tài)圖像較不重要,因此,當緩沖器已經(jīng)達到95%的飽和狀況時,P畫面或者B畫面不進行畫面編碼并直接舍棄防止緩沖器溢滿。
因此,請參照圖4,其示出了本發(fā)明動態(tài)圖像編碼中的緩沖器管理方法的操作流程。
步驟S1檢測緩沖器的剩余空間;步驟S2判斷剩余空間是否僅剩5%;若是,進行步驟S3,若否,進行步驟S4;步驟S3I畫面進行過濾操作,P畫面與B畫面進行剩余不編碼操作;步驟S4判斷緩沖器是否可能溢滿;若是,進行步驟S5,若否,進行步驟S6;步驟S5I畫面進行過濾操作,P畫面與B畫面進行舍棄操作;步驟S6執(zhí)行正常畫面編碼。
本發(fā)明提出二種控制機制,用以監(jiān)測緩沖器的儲存狀況。當?shù)谝豢刂茩C制成立時,代表緩沖器可能會有溢滿的情形發(fā)生。因此,若是畫面編碼的畫面為I畫面,則進行過濾操作;若是畫面編碼的畫面為P或B畫面,則進行剩余不編碼操作。再者,當?shù)诙C制成立時,代表緩沖器已接近溢滿。因此,若是畫面編碼的畫面為I畫面,則進行過濾操作;若是畫面編碼的畫面為P或B畫面,則直接進行舍棄操作。
綜上所述,雖然本發(fā)明已以較佳實施例披露如上,然其并非用以限定本發(fā)明,本領域技術人員在不脫離本發(fā)明的精神和范圍內,可作各種的更動與潤飾,因此本發(fā)明的保護范圍視后附的權利要求為準。
權利要求
1.一種動態(tài)圖像編碼中的緩沖器管理方法,包括下列步驟判斷一緩沖器的儲存狀況;在該緩沖器為可能溢滿時,對一I畫面進行一過濾操作的畫面編碼,對一P畫面與一B畫面進行一剩余不編碼操作的畫面編碼;以及在緩沖器僅剩一特定容量時,對一I畫面進行一過濾操作的畫面編碼,對一P畫面與一B畫面進行一舍棄操作的畫面編碼。
2.如權利要求1所述的動態(tài)圖像編碼中的緩沖器管理方法,其中該緩沖器為可能溢滿的判斷,是進行畫面編碼時一特定畫面所產生的一實際編碼數(shù)據(jù)量大于一預估的編碼數(shù)據(jù)量,且該特定畫面尚未進行畫面編碼的部分進行畫面編碼后產生的編碼數(shù)據(jù)量會大于該緩沖器的一剩余空間。
3.一種動態(tài)圖像編碼中的緩沖器管理方法,包括下列步驟判斷一緩沖器的儲存狀況;在該緩沖器為可能溢滿時,對一I畫面進行一過濾操作的畫面編碼;以及在該緩沖器為可能溢滿時,對一P畫面與一B畫面進行一剩余不編碼操作的畫面編碼。
4.如權利要求3所述的動態(tài)圖像編碼中的緩沖器管理方法,其中該緩沖器為可能溢滿的判斷,是進行畫面編碼時一特定畫面所產生的一實際編碼數(shù)據(jù)量大于一預估的編碼數(shù)據(jù)量,且該特定畫面尚未進行畫面編碼的部分進行畫面編碼后產生的編碼數(shù)據(jù)量會大于該緩沖器的一剩余空間。
5.一種動態(tài)圖像編碼中的緩沖器管理方法,包括下列步驟判斷一緩沖器的儲存狀況;在緩沖器僅剩一特定容量時,對一I畫面進行一過濾操作的畫面編碼;以及在緩沖器僅剩一特定容量時,對一P畫面與一B畫面進行一舍棄操作的畫面編碼。
全文摘要
本發(fā)明為一種動態(tài)圖像編碼中的緩沖器管理方法。當緩沖器可能會有溢滿的情形發(fā)生時,若是畫面編碼的畫面為I畫面,則進行過濾操作;若是畫面編碼的畫面為P或B畫面,則進行剩余不編碼操作。再者,當緩沖器已接近溢滿,若是畫面編碼的畫面為I畫面,則進行過濾操作;若是畫面編碼的畫面為P或B畫面,則直接進行舍棄操作。
文檔編號G06T9/00GK1584934SQ0315490
公開日2005年2月23日 申請日期2003年8月22日 優(yōu)先權日2003年8月22日
發(fā)明者沈志強, 葉梅珍 申請人:建興電子科技股份有限公司