專利名稱:可變碼率的視頻編碼方法和裝置的制作方法
技術領域:
本發明涉及一種可變碼率的視頻編碼方法,為了對幀序列進行編碼該方法至少包括,輸入碼流的量化步驟,對所述量化后的碼流編碼的步驟,和在所述編碼步驟的輸出根據緩沖器的占有量和相應的編碼裝置控制量化步長的步驟。本發明主要應用在MPEG-2編碼器中。
背景技術:
例如在BBC研究與發展報告,BBC-RD-1996/3中由S.R.Ely所寫的“MPEG視頻編碼基本指導介紹”所述的,MPEG-2數據壓縮標準并不僅僅是適用于數字視頻廣播的標準,還是適用于數字視頻光盤(DVD)的存儲標準。在傳統的壓縮光盤(CD)中,比特的傳輸是固定的,圖像可以被CBR(固定碼率)編碼。但是,為了使圖像以給定的質量被編碼,兩個不同的圖像組并不需要相同數量的比特。因此,當對視頻序列編碼時,盡管簡單的圖像會有很好的質量,但是復雜的圖像會有很大的失真。
對于記錄時要求最好質量的DVD來說必須避免這種對于同一序列質量變化的問題。因此,DVD標準允許數據的VBR(可變碼率)傳輸,從而可適應圖像的復雜性由于復雜的圖像要用到比其它圖像更多的比特,因此在序列期間碼率是變化的,但圖像質量保持穩定。
但是,考慮到對視頻序列的編碼,保持穩定的質量還存在另一個困難編碼序列必須與固定的比特預算相適應。為了考慮該附加的限制,如1998年7月6日提交的國際專利申請PCT/IB-98/01031(PHF98560)所述,已經提出確定VBR編碼器在最終編碼之前,先經過一個或數個預分析通道,在此期間涉及圖像復雜性的許多信息被收集并在最后一個通道中被用于比特預算分配的最優化。這意味著為了最終記錄的最優化,視頻源(例如電影)被完全編碼數次,而這需要許多時間(對于每個序列VBR通道數量X序列持續時間)。
發明概述本發明的第一目的是提供一種實時的編碼方法,能夠以比前述VBR編碼器更快的方式進行可變碼率的編碼。
為此,本發明涉及一種如本說明書開頭段落所描述的一種方法,其進一步的特征在于還包括分析步驟,用于根據與輸入碼流相關的參數來確定的每一幀周期地更新的預留比特,和附加的控制步驟,用于根據所述的預留比特的狀態保證、增加或減少量化步長值。
此方法的主要優點在于可用已知的持續時間對視頻序列執行實時編碼,同時該編碼與預定容量相適應。
本發明的另一目的是提供一種執行所述編碼方法的編碼裝置。
附圖的簡要說明本發明將以舉例的方式參照相應的附
圖1進行說明,圖1表示根據本發明的編碼方法和裝置。
發明的詳細描述如上所述,實時VBR編碼器的難題之一即是,編碼后的序列(具有已知的持續時間)必須與有限的比特預算相適應。最好假設對于一個足夠長的序列,待編碼的難的和容易的畫面所占比例基本相同,現在描述的本發明基于MPEG-2編碼處理的量化步驟的修正以常規比率執行的事實。
參照圖1描述的本發明提出的編碼方法和裝置,是基于以下兩個操作的。第一步驟(分析步驟)用于確定預留比特,此預留比特在每一幀都要更新,并用于指示所使用的比特數是否過多。該預留確定步驟11還包括如下分步驟分步驟111,可在平均比特率ABR(可認為,例如,相關的視頻序列應以5Mb/s的平均比特率進行編碼)的基礎上計算總的固定比特預算TFBB,以及分步驟112,用于計算所述預留比特數ROB(當前的)。第二步驟(控制步驟)用于對預留值執行測試并由此修正量化步長值。總的固定比特預算TFBB可由以下關系式(1)得到TFBB+ABR×FR×NB_FRAME (1)其中FR=幀速率;NB_FRAME=形成待編碼的序列的幀的總數(即序列持續時間)。
在每個幀的編碼操作結束時計算(操作1122)的預留比特數,可由以下關系(2)得到
ROBC=ROBP+ANBF-NBCF (2)其中ROBC=與剛完成編碼的當前幀相關的新的(或當前的)預留值,;ROBP=與前一個編碼的幀相關的預留值;ANBF=應當被用于每一幀的平均比特數(通過操作1121得到,并等于總的比特預算除以幀數TFBB/NB_FRAME);NBCF=用于對當前幀編碼的比特數(該信息由編碼器輸出接收)。
若所述預留值大于0,則意味著直到當前幀,這個序列都在以低于ABR(在序列應以平均碼率ABR=5Mb/s進行編碼的現情況下,若已知此序列的持續時間,則有可能推知應當用于以所述碼率5Mb/s編碼整個序列的總的固定比特預算)的碼率被編碼。相反,若所述預留值小于0,則意味著已使用了過多的比特,以致所編碼的序列可能會與固定比特預算總數TFBB不相符合。
確定步驟11之后是控制步驟12,控制步驟12包括比較分步驟121和量化步長值修正分步驟122。已知調整對幀進行編碼所使用的比特數的主要方式是修正量化步長值。根據本發明,提出了動態地改變所述的值,即Q,考慮此預留狀態以保證序列的編碼與比特預算相適應。量化步驟并不對每個幀都進行修正(這將變成一種恒定碼率的編碼器),而只在預留值達到臨界值時才進行修正會更好。若Q_INIT是量化步長的初始值,本實施例中量化步長Q是以以下這種方式(這里給出的閾值顯然是可以調整的)取的若(ROBC<0)且(0.07<-ROBC/TFBB<0.15)則Q=Q_INIT+2若(ROBC<0)且(0.15<-ROBC/TFBB<0.27)則Q=Q_INIT+4若(ROBC<0)且(0.27<-ROBC/TFBB<0.4)則Q=Q_INIT+6若(ROBC<0)且(0.4<-ROBC/TFBB<0.5)則Q=Q_INIT+8若(ROBC<0)且(0.5<-ROBC/TFBB<0.6)則Q=Q_INIT+10若(ROBC<0)且(0.6<-ROBC/TFBB<0.7)
則Q=Q_INIT+12若(ROBC<0)且(0.7<-ROBC/TFBB)則Q=Q_INIT+14若(ROBC>0)且(0.1<-ROBC/TFBB)則Q=Q_INIT-1否則ROBC=Q_INIT若預留直ROBC等于0,Q值就不進行修正。若預留值是正的,Q可被減少以使用更多的比特(預留值的正值越大,減少的就越多)。相反,若預留值是負的,量化步長就增加(Q_INIT+2,Q_INIT+4,...),Q的增加與閾值為x%相關,比率ROBC/TFBB與該閾值相比較。這種情況表示,對以前所有幀編碼所用的超出比特數大于總的固定比特預算TFBB的x%(在上述例子中,可看出預留值極少超過所述比特預算的27到30%)。
所有這些規則確定了一個總的規范,即為了在編碼處理結束時使預留值盡可能地接近0而設計。這將意味著實際使用的比特數等于TFBB。即使此量化步長處理不能保證如此編碼的序列的最佳質量,但是基于執行本編碼方法的單通道編碼器,看起來與已知的其它編碼器在已檢測的序列的主觀質量上很相近。
權利要求
1.一種可變碼率的視頻編碼方法,為了對一系列幀進行編碼,至少包括對輸入碼流的量化步驟,對所述量化后的碼流編碼的步驟,在所述編碼步驟的輸出根據緩沖器的占用量控制量化步長的步驟,所述方法其特征在于還包括分析步驟,用于根據與輸入碼流相關的參數來確定預留比特(ROBC)并在每一幀進行周期地更新,和附加的控制步驟,用于根據所述預留比特的狀態保證、增加或減少量化步長值。
2.根據權利要求1所述的編碼方法,其特征在于所述量化步長值只在所述預留比特達到臨界值時進行修正。
3.根據權利要求2所述的編碼方法,其特征在于所述量化步長的初始值Q_INIT根據給定的預留狀態(ROBC)由以下關系得到的若(ROBC<0)且(S1<-ROBC/TFBB<S2)則Q=Q_INIT+V1若(ROBC<0)且(S2<-ROBC/TFBB<S3)則Q=Q_INIT+V2若(ROBC<0)且(S3<-ROBC/TFBB<S4)則Q=Q_INIT+V3若(ROBC<0)且(S4<-ROBC/TFBB<S5)則Q=Q_INIT+V4若(ROBC<0)且(S5<-ROBC/TFBB<S6)則Q=Q_INIT+V5若(ROBC<0)且(S6<-ROBC/TFBB<S7)則Q=Q_INIT+V6若(ROBC<0)且(S7<-ROBC/TFBB)則Q=Q_INIT+V7若(ROBC>0)且(T1<-ROBC/TFBB)則Q=Q_INIT-V8否則ROBC=Q_INIT其中S1至S7是增加值的閾值,T1也是一個閾值,且V1到V8都是所述初始量化步長的變化量。
4.如權利要求3所述的編碼方法,其特征在于所述閾值S1至S7分別等于(0.07;0.15;0.27;0.4;0.5;0.6;0.7),T1等于(0,1)且所述變量V1至V8分別等于2,4,6,8,10,12,14和1。
5.一種可執行如權利要求1至4所述的編碼方法的編碼裝置。
全文摘要
在記錄步驟中始終要求非常好的質量的一種DVD標準,它允許數據的可變碼率傳輸,因此當圖像更復雜時需使用更多的比特。由于編碼的序列必須與固定比特預算相適應,本發明涉及這樣一種編碼方法,其中包括第一分析步驟,對編碼處理的量化步長進行校正在第二控制步驟期間以規律的間隔執行。這些變化是根據比特的預留狀態執行的,并周期地計算和更新,但最好只在所述預留值達到臨界值時進行,并從而保證所述預留值盡可能地接近0。
文檔編號H03M7/40GK1365576SQ01800577
公開日2002年8月21日 申請日期2001年3月6日 優先權日2000年3月21日
發明者P·戈蒂爾, T·萊德魯 申請人:皇家菲利浦電子有限公司