欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于視頻編碼標準的改進的視頻速率控制的制作方法

文檔序號:7681156閱讀:245來源:國知局
專利名稱:用于視頻編碼標準的改進的視頻速率控制的制作方法
技術領域
本發(fā)明總地涉及視頻編碼。更具體地,本發(fā)明涉及視頻編碼中的^L頻速 率控制,例如用于但不是專門用于諸如H.263和MPEG-4(運動畫面專家組-4 ) 標準之類的一見頻編碼標準。
背景技術
在過去幾年人們見證了數(shù)字和在線視頻及其應用的很大程度的普及。利 用快速通信技術和多媒體應用的出現(xiàn),在許多領域和系統(tǒng)中使用了數(shù)字視頻 編解碼器,諸如在采用MPEG-2 (運動畫面專家組-2)格式的DVD (數(shù)字視 頻盤)中、在采用MPEG-1 (運動畫面專家組-l )格式的VCD 2 (視頻壓縮 盤)中、在新興的衛(wèi)星和地面廣播系統(tǒng)中、以及在因特網上。
更具體地,視頻應用的普及允許在壓縮和解壓縮視頻數(shù)據(jù)的視頻編解碼 器中的令人感興趣的開發(fā)。在視頻數(shù)據(jù)壓縮中,在視頻質量與壓縮率(即必 需的數(shù)據(jù)傳輸量,換言之,表現(xiàn)視頻所需的比特率)之間保持平衡。
另夕卜,還考慮編碼和解碼算法的復雜度、對于數(shù)據(jù)丟失和差錯的魯棒性、 壓縮算法設計的目前的技術水平、例如視頻會議應用中的端到端延遲,等等。
存在多個視頻編碼標準,針對特定類型的應用而對它們中的每一個進行 具體的設計。例如,由ITU (國際電信聯(lián)盟)公布的H.263標準是用于諸如 40-128 kbps (千比特/秒)的范圍內的低比特率的視頻編碼和壓縮標準。更具 體地,此標準支持視頻會議和:枧頻電話應用中的視頻編碼。
H.263標準指定編碼的數(shù)據(jù)流的格式和內容,因此H.263設置編碼器和 解碼器要滿足的要求,而不是具體提供編碼器和解碼器自身的設計或者結構。 類似的原理應用于諸如MPEG-4之類的其它視頻標準。
在^L頻壓縮中,每個畫面典型地由一4殳被稱為幀的兩種畫面、即幀內幀 (intra frame )以及幀間幀(inter frame )表示。此夕卜,S奪幀間幀分為兩個類 別,即P幀(預測幀)和B幀(雙向預測或者雙向幀)。幀內幀表示整個畫 面,由于必須編碼整個畫面的內容,因此幀內幀耗費帶寬。為了壓縮并且由此節(jié)省帶寬,僅僅對整個畫面(或者幀內幀)之間的差異進行編碼并且然后
將其發(fā)送。那些差異由P幀和B幀表示。例如,兩個連續(xù)畫面之間的背景通 常不改變,因此不需要再次編碼背景。B幀是雙向的并且由此執(zhí)行雙向預測、 即利用前面的畫面和后面的畫面進4于預測。
此外,在壓縮視頻時,為了處理的目的,將畫面分為宏塊。實際上,逐 個宏塊地應用處理。每個宏塊通常表示16x 16 4象素的塊。
視頻編碼器通常包括運動估計模塊、運動補償模塊、DCT(離散余弦變 換)模塊、以及量化模塊。
運動估計模塊允許預測前面的幀中的哪些區(qū)域已經被移動到當前幀中, 使得不需要重新編碼那些區(qū)域。
運動補償模塊允許對于區(qū)域從前面的幀到當前幀的移動進行補償。
DCT通常用于將像素塊轉換為"空間頻率系數(shù)"。DCT通常對于諸如宏 塊之類的二維像素塊進行操作。由于DCT在壓縮畫面的能量(或信息)方面 是有效的,因此通常幾個DCT系數(shù)足以重新創(chuàng)建原始畫面。
而且,提供量化模塊,用于量化DCT系數(shù)。例如,量化模塊將接近于零 的DCT系數(shù)設置為零,并且量化剩余的非零DCT系數(shù)。
視頻編碼中的限制之一來自于信道的容量。實際上,通信信道由他們每 秒能夠傳輸?shù)谋忍氐臄?shù)目而限制。在許多信道中,諸如在ISDN (集成服務數(shù) 字網絡)、POTS (普通傳統(tǒng)電話業(yè)務)、無線信道等中比特率是恒定的。
然而,取決于用于壓縮視頻的算法的效率以及那些視頻的運動復雜度, 編碼和傳輸所編碼的視頻所需的比特預算以及比特率可能變化或者增加。因 此,使用速率控制以將編碼各種復雜度的視頻所需的比特率調整為用于傳輸 那些所編碼的視頻的信道的比特率。
在H.263標準中使用的當前速率控制算法被稱為TMN8 (測試模型近期 版本8)。總地來說,此速率控制算法確保僅僅滿足平均比特率。
以下被稱為參考文獻1的Jordi Ribas-Corbera 1999年的標題為"Rate Control in DCT Video Coding for Low-Delay Communications"的i倉文公開了速 率控制TMN8所使用的、以確保每一幀都滿足與目標幀尺寸有關的目標比特 率的算法。更具體地,TMN8速率控制算法計算一些圖像統(tǒng)計值,以為每個 宏塊確定一些合適的QP (量化參數(shù))值,并且在每個幀間幀內更新QP值, 以便滿足目標幀尺寸。不幸的是,此控制是非常近似化的,并且作為結果的幀尺寸經??赡苓h高于或者遠低于目標幀尺寸。對于幀內幀,將固定的QP 用于整個視頻序列,無論視頻序列的特性如何。對于幀內幀的尺寸不具有控 制通常是導致超出期望的比特率的因素。
此外,速率控制TMN8不能控制平均目標比特率和最大比特率這兩者。 實際上,在H.263視頻編碼標準中使用的TMN8速率控制算法僅僅使用平均 比特率參數(shù)。然而,在許多視頻應用中,除了平均比特率之外,還應當考慮 最大比特率。
TMN8不能保證不超出給定的目標比特率,這是因為編碼器對于幀內幀 尺寸沒有控制,并且對于幀間幀尺寸也沒有足夠的控制。在超出給定的目標 比特率時,編碼器將跳過特定數(shù)目的幀,以便補償溢出(overflow)。然而, 通過這樣做,改變了通信和視頻的質量。
因此,存在對于克服與諸如H.263標準之類的、視頻編碼標準中當前速 率控制的限制有關的上述問題的需要。因此,尋求一種用于改進視頻編碼標 準中的速率控制的方法和系統(tǒng)。

發(fā)明內容
因此,本發(fā)明的一個目的是提供例如諸如H.263和MPEG-4標準之類的 視頻編碼標準中的、視頻編碼中的速率控制,以便通過確保遵守平均比特率 和最大比特率這兩者來增強視頻的質量。
更具體地,根據(jù)本發(fā)明,提供了一種用于視頻編碼中的速率控制的方法, 其包括指定最大比特率和平均比特率;計算幀間幀尺寸,以便滿足所指定 的最大比特率,該幀間幀尺寸與該幀間幀的位置相對于幀內幀的位置有關; 并且調整所計算的幀間幀尺寸,以滿足所指定的最大比特率和平均比特率這 兩者。
此外,本發(fā)明還涉及當考慮解碼延遲時、 一種用于改進包括由幀內幀分 開的一系列幀間幀的序列的視頻編碼中的速率控制的方法。該方法包括,對 于該系列中的每個幀間幀計算目標幀尺寸;計算與每個幀間幀相對于前面 的幀內頓和即將到來的幀內幀的位置有關的最大緩沖器等級;以及響應于所 計算的目標幀尺寸和所計算的最大緩沖器等級而優(yōu)化傳輸緩沖器等級。
本發(fā)明還涉及一種用于視頻編碼中的速率控制的設備,其包括用于滿 足所指定的最大比特率的幀間幀尺寸的第一計算器,該幀間幀尺寸與該幀間幀的位置相對于幀內幀的位置有關;以及除了所指定的最大比特率之外、還 用于滿足所指定的平均比特率的、由第 一計算器計算的幀間幀尺寸的第二計算器。
本發(fā)明還涉及當允許解碼延遲時、 一種用于改進包括由幀內幀分開的一 系列幀間幀的序列的視頻編碼中的速率控制的設備。該設備包括,對于每個 幀間幀目標幀尺寸的計算器;與每個幀間幀相對于前面的幀內幀和即將到 來的幀內幀的位置有關的最大緩沖器等級的計算器;以及響應于所計算的目 標幀尺寸和所計算的最大緩沖器等級的傳輸緩沖器等級的優(yōu)化器。
的非限制性描述時,本發(fā)明的前面的和其它的目的、優(yōu)點以及特性將變得更 加明顯。


在附圖中
圖1是視頻通信系統(tǒng)的示意圖2是用于圖1的通信系統(tǒng)中的^L頻編碼的編碼器的示意框圖3是才艮據(jù)本發(fā)明的非限制性說明性實施例的用于視頻編碼中的速率控
制的設備的示意框圖4是圖示用于R263視頻編碼標準中的速率控制的、根據(jù)本發(fā)明的非
限制性說明性實施例的方法的流程圖5是圖示用于計算幀間幀目標尺寸的方法的示例的流程圖; 圖6是圖示用于計算幀間幀目標尺寸的方法的另一示例的流程圖; 圖7是圖示用于更新所計算的幀間幀目標尺寸的方法的示例的流程圖; 圖8是圖示用于更新所計算的幀間幀目標尺寸的方法的另一示例的流程
圖;以及
圖9是圖示用于H.263視頻編碼標準中的速率控制的、根據(jù)本發(fā)明的另 一3夂限制性說明性實施例的方法的流程圖。
具體實施例方式
總的來說,根據(jù)本發(fā)明的非限制性說明性實施例的、用于改進速率控制 的設備允許致力于TMN8速率控制未滿足的以下要求
131. 能夠指定并且滿足幀內幀的目標幀尺寸
-通過這樣做,可以控制幀內幀的質量以及由幀內幀的出現(xiàn)導致的比特 率中的波動;并且
-QP (量化參數(shù))不是固定的,而是基于幀內幀特性而被計算,并且可 以對于幀內幀中的每個像素塊而改變,以便滿足所指定的幀內幀目標尺寸。
2. 除了平均比特率之外,還能夠指定并且滿足最大比特率
-此外,在已經對幀進行了編碼之后,執(zhí)行對于所編碼的幀的尺寸的驗 證;如果所編碼的幀的尺寸與最大比特率相比太大而不可接受,則需要利用 較小的目標尺寸重新編碼幀或者將其丟棄;
-相反,TMN8速率控制通過例如丟棄幀來試圖僅僅滿足平均比特率; 其不能滿足最大比特率。
3. 具有用于管理最大比特率的循環(huán)緩沖器以及用于平均比特率的另一緩 沖器;
-相反,TMN8僅僅使用一個傳輸緩沖器。
4. 估計和計算取決于幀內幀的定時和編碼的幀間幀目標尺寸如果最近 已經編碼了幀內幀或者如果馬上就將編碼幀內幀;
-而且,幀間幀目標尺寸的估計考慮各種參數(shù),諸如幀內幀的尺寸、兩 個幀內幀之間的時間段、低于或者高于平均比特率的比特的數(shù)目,等等。
-反之,TMN8使用僅僅基于傳輸緩沖器占用和比率的目標尺寸;其從 不預測即將到來的幀內幀并且在幀內幀的編碼之后典型地跳過許多幀,因此 導致視頻質量的降級。
5. 以主動(proactive)和預防的方式丟棄幀
-根據(jù)本發(fā)明的一個非限制性說明性實施例的設備確保從不超出最大比 特率,并且在傳輸幀之前在需要時丟棄幀;丟棄幀的決定基于所估計的與所 達到的、即所實際編碼的之間的差異;
-反之,TMN8在已經創(chuàng)建了并且傳輸了太大并且導致超出目標尺寸的 幀之后跳過帕;通過這樣做,已經對視頻的質量造成了損害;此外,丟棄幀 的決定基于傳輸緩沖器裝滿的程度。
I.系統(tǒng)
首先,將描述視頻通信系統(tǒng),以便定義其中發(fā)生視頻編碼的通信系統(tǒng)。然而,該通信系統(tǒng)不是本發(fā)明的一部分。
轉向圖l,將描述通信系統(tǒng)IO。
通信系統(tǒng)10包括用于捕捉視頻的、諸如攝像機或者網絡攝像頭之類的視 頻源12。然后,將那些視頻提供給視頻編碼器14。將視頻編碼器14連接到 網絡16。網絡16還可以包括用于將所編碼的視頻傳輸?shù)浇獯a器18的通信鏈 路。最后,將解碼器連接到視頻播放器20。視頻播放器20可以是計算機、 電視機、或者能夠顯示視頻的任何設備。
在例如在第一方與第二方之間的通信對話期間,通過編碼器14接收由第 一方的視頻源12捕捉的視頻,然后,編碼器14執(zhí)行視頻壓縮和編碼。 一旦 編碼器14完成了對視頻數(shù)據(jù)的編碼,就將所編碼的視頻通過網絡16或者簡 單地通過通信鏈路傳輸?shù)降诙健T诘诙揭欢?,解碼器18接收所編碼的視 頻并且開始對其進行解碼。 一旦解碼了所編碼的視頻,解碼器18就將經過解 碼的視頻數(shù)據(jù)發(fā)送到視頻播放器20,然后,視頻播放器20開始播放從第一 方接收到的視頻。
在圖2中詳細描述編碼器14。編碼器14包括一個或多個進程30!到30N, 其允許執(zhí)行如將在下文中描述的視頻編碼中的不同操作。編碼器14還包括運 動估計模塊32、運動補償模塊34、 DCT模塊36、量化模塊38、以及緩沖器 40。
應注意可以在諸如例如來自Vantrix公司的spot xde⑧之類的不同的平 臺中實施此編碼器14。視頻源可以是視頻文件或者攝像機。
如上文所述,運動估計模塊32允許預測可能已經被移動到當前幀中的前 面的幀的區(qū)域。
然后,運動補償模塊34針對對于由運動估計模塊32檢測到的運動的補償。
DCT模塊36對于像素塊執(zhí)行到空間頻率系數(shù)的DCT變換。 然后,將那些空間頻率系數(shù)供應給量化模塊,以便對所述空間頻率系數(shù) 進行量化。
可以將所編碼的幀存儲在編碼器14的緩沖器40中。因此,緩沖器40 允許接收所編碼的幀,然后,通過通信鏈路(網絡16)傳輸所述所編碼的幀。
最后,編碼器14還包括才艮據(jù)本申請的、用于控制視頻編碼中的比特率的 速率控制設備42。此速率控制設備確保不超出通信鏈路的最大容量,并且提供增強的視覺質量,特別是對于遠程監(jiān)視(tele-surveillance)應用以及其它呈 現(xiàn)連續(xù)視頻序列的應用。
II.設備
速率控制設備42實施編碼器14中的改進的速率控制。更具體地,設備 42實施用于控制H.263以及MPEG 43見頻編碼標準中的比特率的方法100, 以便滿足平均和最大比特率限制。在下文中將描述方法100。
如圖3所圖示的設備42包括預測器50,用于指定幀內幀的目標尺寸并 且預測在量化模塊38中使用的所需要的QP,以滿足所指定的幀內幀目標尺 寸。由于在控制比特率時幀內幀的尺寸可以影響比特率中的質量和突發(fā) (burst)這兩者,因此確定目標尺寸以適當?shù)卦O置用于編碼幀內幀的比特預 算(budget)。
設備42還包括幀間幀尺寸的第 一計算器52。第一計算器52允許計算不 同情況下的幀間幀的目標尺寸,以便滿足最大比特率限制,如在下文中將要 描述的。
此外,設備42包括用于重新計算由第一計算器52提供的幀間幀目標尺 寸的第二計算器54,以便滿足最大比特率以及平均比特率限制這兩者。
而且,設備42包括用于確保所編碼的幀的尺寸不超出所計算的幀間幀目 標尺寸以及最大比特率所允許的最大尺寸的驗證器(validator) 56。
最后,為了滿足最大和平均比特率的限制,圖2中的進程302具有循環(huán) 緩沖器(未示出),用于包含在上一 (1)秒內傳輸?shù)膸某叽纭@?,?10幀/秒時,這樣的緩沖器將保持上IO個所編碼的幀的尺寸。
總的來說,用于滿足最大和平均比特率限制的、根據(jù)本發(fā)明的非限制性 說明性實施例的方法100使用兩個控制進程,諸如302和303。例如,可以連 同第一和第二計算器52和54 —起使用進程302,用于計算所需的目標幀尺寸 以避免超出最大比特率。連同驗證器56—起使用進程303,以在對幀進行編 碼之后,檢查是否可以傳輸所編碼的幀、即未達到最大比特率。在已經超出 了最大比特率的情況下,丟棄所編碼的幀,或者編碼器14試圖利用不同的編 碼參數(shù)再次編碼相同的幀。
III.方法下面,將結合圖4描述用于控制諸如H.263標準之類的視頻編碼標準中 的比特率的、根據(jù)本發(fā)明的非限制性說明性實施例的方法100。
然而,應注意還可以在諸如H.261、 MPEG-4、 H.264等之類的其它視 頻編碼標準中使用此速率控制。
如上文所述,由于頓內幀的尺寸可以影響比特率中的質量和突發(fā)這兩者, 因此在控制比特率時設置用于編碼幀內幀的第一比特預算是重要的。
在操作101中,指定最大比特率RMAX和平均比特率Ravg。
然后,在操作102中,指定幀內幀的目標尺寸B!(以比特為單位)。
在方法100的操作103中,執(zhí)行QP的預測,其允許在編碼幀內幀時更 好地滿足在操作102中指定的幀內幀目標尺寸??梢岳缭趫D3的預測器50 中執(zhí)行操作102和103。
然后,在操作104中,基于在操作102中指定的幀內幀的目標尺寸來計 算幀間幀的目標尺寸,以便滿足所指定的最大比特率Rmax??梢杂衫鐖D3 中的第一計算器52執(zhí)行此操作104。
在操作106中,重新計算所計算的幀間幀目標尺寸,以便滿足所指定的 最大比特率和平均比特率這兩者??梢杂衫鐖D3中的第二計算器54執(zhí)行此 操作。
最后,在:f喿作108中,針對由最大和平均比特率允許的所計算的幀尺寸, 驗證所編碼的幀的尺寸。
現(xiàn)在,更具體地,將更詳細地描述圖4的方法100的每個操作。
操作101:最大比特率和平均比特率的指定
為了獲得視頻編碼中的改進的視頻質量,設置被表示為Rmax的最大比 特率,不應當超出該最大比特率的值。將最大比特率定義為可以在任^f可一(1) 秒的時間段內通過信道傳輸?shù)淖畲髷?shù)目的比特。利用此定義,最大尺寸等效 于最大比特率。應注意可以可應用最大速率的其它定義。根據(jù)每個應用指 定和定義最大比特率在本領域普通^t術人員的能力和知識內。如何在幀的時 間段上指定平均比特率也是本領域中已知的。
操作102:幀內幀目標尺寸的指定
知曉如何基于視頻編碼的特定應用以及基于所指定的最大和平均比特率來指定幀內幀目標尺寸是在本領域普通技術人員的知識和所及的范圍內的。 例如,可以將幀內幀目標尺寸設置為最大比特率Rmax或平均比特率Ravg的百分數(shù)。
操作103:預測QP以便滿足所指定的幀內幀目標尺寸
為了這樣做,基于在下文中被稱為參考文獻2的、Pan等人2004年的 "Adaptive intra-frame quantization for very low bit rate video coding"中公開的 估計算法,已經開發(fā)了在量化模塊38中使用的用于預測QP (量化參數(shù))的 估計算法。
由圖3中的預測器50使用此算法,用于估計在量化模塊中所需的QP, 以便滿足基于幀內幀的統(tǒng)計值的給定的幀內幀目標尺寸。然而,與其中對于 幀內幀的整個持續(xù)時間考慮恒定的QP的參考文獻2的教導不同,在已經開 發(fā)的估計算法中,可以對于幀內幀的每個GOB (塊組)更新QP值,以便更 精確地滿足所指定的目標幀尺寸。而且,參考文獻2考慮灰度級圖像,而所 開發(fā)的估計算法支持彩色圖像。
根據(jù)參考文獻2,可以由下式來描述QP和其它幀統(tǒng)計值之間的關系
w=^m^c°; (i)
m4 k/xt =丄y 5>5s(F(w, v)) 其中 'x層^^ , F(u,v)包含尺寸NxM的畫面的所有
像素塊的8x8DCT系數(shù),B:是所指定的幀內幀目標尺寸(以比特為單位)。 項MAVdct表示DCT系數(shù)的平均絕對值,并且指示畫面復雜度量度 (measure)。項ABS()是絕對值函數(shù)。
應注意等式(l)僅僅考慮畫面的亮度的統(tǒng)計值,并且忽略畫面的色度。
因此,需要新的等式以便也考慮色度,與亮度相比,色度通常通過因數(shù)(factor)
四(4)而二次采樣(subsample),并且通過下式給出
:2 204輝。("'v)) +順尸c2(",力)) 4譜、^ ^
(2)
其中Fl(u,v)包含用于亮度的塊的8x8 DCT系數(shù),Fd(u,v)和Fc2(u,v)包含 用于色度的塊的8x8DCT系數(shù)。
如上文所述,為了更精確地滿足所指定的幀內幀目標尺寸對于幀內幀的每個GOB調整QP。此外,修改等式(2),以便考慮編碼幀內幀的剩余 的塊所需要的比特。則修改后的用于預測QP的等式如下
其中'—W"細+'U,其中Br加ain是從用于編碼幀的所指定的幀內幀目標 尺寸中剩余的比特的數(shù)目,Nt。^是幀中的宏塊的總數(shù)目,Nremain是幀中要編碼 的剩余的宏塊的數(shù)目,Nb^是在接近要編碼的幀的結尾時用于使得QP估計更
保守(conservative)的偏移;典型地,Nbias=4。
在已經計算了 QP以便滿足所指定的幀內幀目標尺寸B!之后,方法100 繼續(xù)前進到操作104。
搡作104'.計算幀間幀尺寸以便滿足最大比特率限制
作為非限制性的示例,在操作101中指定的幀內幀目標尺寸被認為為恒 定的;然而,幀間幀目標尺寸取決于情形。需要考慮兩種情況
0情況l:當在上一秒內已經編碼了幀內幀或者將在即將到來的一秒中 編石馬幀內幀時;以及
ii)情況2:在不受來自幀內幀的任何影響的情況下,在上一秒內僅僅已 經編碼了幀間幀或者將在即將到來的一秒中僅僅編碼幀間幀。
因此,操作104需要考慮上述兩(2)種情況,即情況1和情況2,以計 算幀間幀目標尺寸。通過操作104,在情況1下使用方法200,在情況2下使 用方法250。
用于其中在上一秒內編碼幀內幀或者將在即將到來的一秒中編碼幀內幀的情
況(情況1 )下、計算幀間幀目標尺寸的方法200
參照圖5,將描述用于在情況1下計算幀間幀目標尺寸的方法200。 首先,在操作202中,基于RMAx計算理想的幀間幀目標尺寸B2。為了
這樣做,作為非限制性的示例,假設所有的幀間幀具有相同的尺寸,則最大
比特率由下式給出
R鵬x二 8/ + ^—(4)
其中B!是幀內幀目標尺寸,B2是在情況1下的理想的幀間幀目標尺寸,
情況1即為其中在上一秒內編碼幀內幀或者要在即將到來的一秒中編碼幀內
19幀,F(xiàn)是每秒要編碼的幀的數(shù)目、即幀速率。
然后,由等式(4),理想的幀間幀目標尺寸B2由下式給出
5 _ w鹿-J,
(f-i) (5) 通過定義,如等式(5)中所示,F(xiàn)大于1幀/秒。
首先,通過在操作202中計算的理想的幀間幀目標尺寸B2給出被表示為 BPI的對于情況1的幀間幀目標尺寸
然而,調整上面的幀間幀目標尺寸BP1以考慮過去所編碼的幀、特別是 幀內幀的影響。實際上,通常所編碼的幀不具有完全等于目標尺寸的尺寸。 因此,調整以后的幀間幀尺寸,使得處理(accountfor)所編碼的幀的實際尺 寸與目標尺寸之間的差異,以便確保在以后的幀內幀的編碼中分配足夠的比 特,而不超出最大比特率Rmax。
因此,在操作204中,例如通過圖3的第一計算器52,基于過去所編碼 的幀來計算經過調整的幀間幀目標尺寸。為了這樣做,考慮兩(2)種情況
i)如果已經在上一秒內對幀內幀進行了編碼,則將通過使用下面的等式
來調整和限制接下來的幀間幀Bw的尺寸
5/v = max(0,min(£/v ,/7wp)) ( g )
*腦'-§>涵'加4]
,(')=-
其中 f-(「w) (7)
其中SizeHistoy[k]是所編碼的幀k的尺寸,t是要編碼的當前幀的索引, T是兩個幀內幀之間的時間段(以幀數(shù)為單位),N是在接下來的幀內幀之 前剩余的幀數(shù)。tmp(t)表示幀t時的比特預算的緩沖。而且,在等式(6)中, 最大值函數(shù)內的零(0)允許避免緩沖器的下溢(underflow)。
應注意等式(6)和(7)允許在要在幀內幀后面的一秒內編碼的剩余 的幀間幀之間、從用于編碼巾貞的比特預算中基本上均等地劃分任何額外的比 特。而且,應注意時刻t-(T-N)的幀是被幀內編碼的幀。
ii )如果要在即將到來的一秒內編碼幀內幀,則將如下限制接下來的幀 間幀的目標尺寸
5W = max(0,min(5尸,,加p)) ( g )
w駆—A- 2幼e州加^W
其中,廣 w (9)其中,SizeHistory[k]是所編碼的幀k的尺寸,t是要編碼的當前幀的索引, N是在接下來的幀內幀之前剩余的幀數(shù)。
應注意在等式(9)中,已經添加了 F-(N-1)項。因此,在其中作為幀 內幀的一幀的時間段中計算(N-1)個剩余幀的尺寸。因此,表示比特預算緩沖 tmp(t)的等式包含除以N。
最后,在操作206中,重新計算經過調整的幀間幀目標尺寸,以^更確保 其不超出由最大比特率Rmax所允許的最大尺寸,同時保持差錯的較小容限并 且考慮已經被用于編碼過去的幀的比特。
因此,通過使用下面的等式來限制幀間幀目標尺寸
Bw = max(O, min(Sw ,加; 2) ( 10 )
鄉(xiāng)2(,) = / 魔-i 呼-5廣XS^w加7W 其中 i w (11)
其中,Rma—是用于確保幀間幀目標尺寸不超出最大比特率R皿所允許 的最大尺寸的差錯的容限。
在對應于情況2的、不存在上一秒內被編碼或者要在即將到來的一秒中
編碼的幀內幀的情況下,操作104使用方法250用于計算幀間幀目標尺寸。
用于在其中沒有幀內幀在上一秒內被編碼或者要在即將到來的 一秒中被編碼
的情況下(情況2)、計算幀間幀目標尺寸的方法250
現(xiàn)在轉向圖6,將描述用于在情況2下計算幀間幀目標尺寸的方法250。 首先,在操作252中,基于最大比特率計算幀間幀的理想目標尺寸B3。
在此情況下,由于假設不存在幀內幀,因此通過下式給出在任一秒期間的最
大比特率Rmax:
《瞎-尺A (12)
其中B3是在沒有任何幀內幀在上一秒內被編碼或者要在即將到來的一 秒中被編碼的情況下的理想的幀間幀目標尺寸。
因此,通過下式給出理想的幀間幀目標尺寸B3:
3_7 (13) 首先,在情況2下的被表示為Bp的幀間幀目標尺寸釆取所計算的理想幀 間幀尺寸B3的值,即,BP=B3。
在此情況下,不需要基于過去所編碼的幀內幀來調整目標尺寸Bp,這是因為假設幀間幀不凈皮幀內幀影響。
然后,在操作254中,重新計算幀間幀目標尺寸Bp,以便確保其不超出 最大比特率所允許的最大尺寸,同時保持差錯的4交小容限并且考慮用于編碼
過去的幀的比特。
為了這樣做,使用下面的公式
<formula>formula see original document page 22</formula>
其中 "一 ,其中,Rmargin是目標尺寸與
最大比特率所允許的最大尺寸之間的差錯的容限;例如,Rmargi, 1000比特。 一旦已經在情況1或者情況2下計算了幀間幀目標尺寸以滿足最大比特
率限制時,圖4中的方法100就繼續(xù)前進到操作106,以更新和調整所計算 的幀間幀尺寸,以便滿足在操作101中指定的最大比特率和平均比特率這兩 者。可以例如在圖3的第二計算器54中執(zhí)行此操作106。
操作106:重新計算所計算的幀間幀尺寸以便滿足平均和最大比特率限制這 兩者
操作106使用允許滿足平均和最大比特率限制這兩者的方法。這些方法 具有兩個組成部分i )計算幀間幀目標尺寸以便滿足平均和最大比特率限 制;以及ii )管理未在過去的幀的編碼中使用的、并且可以在以后的幀的編 碼中使用的另外的比特。
將再次考慮如在操作104中描述的兩種情況情況1和情況2。因此, 操作106在情況1下使用方法300,并且在情況2下使用方法350。
用于其中在上一秒內編碼幀內幀或者將在即將到來的一秒中編碼幀內幀的情 況(情況l)下、重新計算幀間幀尺寸的方法300
現(xiàn)在參照圖7,將描述在情況1下用于重新計算在操作104中計算的幀 間幀目標尺寸的方法300。
首先,在操作302中,基于所指定的平均比特率來計算理想的幀間幀目 標尺寸B。
理想地,幀間幀具有相同的尺寸,使得在兩個幀內幀之間的時間段T上, 通過下式給出平均比特率Ravg:。'廣 (15)
由此,可以如下地表示理想的幀間幀目標尺寸B: U降s,
~~^~~ (16)
為了確保幀間幀尺寸不超出平均比特率R^和最大比特率Rmax,將幀間
幀目標尺寸Bw重新計算如下
= min(S, &) = min〔 S, ) (17)
操作302可以在首次初始化編碼器14時或者在每次比特率參數(shù)改變時僅 僅計算一次;所述參數(shù)包括例如所指定的最大比特率。
然后,在操作304中,調整所計算的目標幀尺寸Bw,以便考慮過去所編
碼的幀、更具體地說是幀內幀。為了這樣做,計算類似于等式(6)或(8)
的等式,以基于過去所編碼的幀來獲得更新后的幀間幀目標尺寸BPI: 丑尸,=max(0,min(5w ,Zmp))
其中如在等式(7)和(9)中定義的tmp取決于以下情況i)如果已經 在上一秒內編碼了幀內幀,則使用等式(7);以及ii)如果要在即將到來的 一秒中編碼幀內幀,則使用等式(9)。
下面,在操作306中,計算經過調整的目標幀尺寸與實際幀尺寸之間的 差異,這是因為如上文所迷,所編碼的幀通常不具有與目標尺寸完全相同的 尺寸。
為了這樣做,使用變量Be自來通過使用例如圖2的進程30,來監(jiān)視這些 差異。在通信對話的開始時將此變量初始化為零。變量Be自逐幀累積高于目
標尺寸或者低于目標尺寸的比特的數(shù)目。如果Bextra大于零,則實際比特率低 于所指定的平均比特率;如果Bex加是負的,則實際比特率高于所指定的平均 比特率。對于每個所編碼的幀執(zhí)行如下的Be咖的更新
(18)
其中B加get是目標尺寸,其對應于用于幀間幀的Bw以及用于幀內幀的 B" Be,ded是所編碼的幀的尺寸。
如果Be加a是正的、意味著實際比特率低于所指定的平均比特率,則在接 下來的幀上分發(fā)未使用的比特,以在所述接下來的幀的編碼中使用;因此, 對于接下來的幀,目標尺寸增大。在其中Bextra是負的情況下,對于接下來的幀,目標尺寸減小。所使用的算法如下
如果B^a〉0 (這對應于其中實際比特率低于平均比特率的情況),則 Aa^,=萬,豐(如果a&的^ y^farg"),或者
Aa^, = + y^,一 (如果^幽> >^,arge,) 在其它情況下'&一=5,^,+^, 。
其中,a表示在當前幀中使用的另外的比特的一部分,p表示可以被添 加的目標尺寸的最大部分。例如,在仿真中,使用《 = 0.6和》=0.15。然而, 可以修改這些值以進一步改進編碼器14的性能。調整a和p的值以便獲得各 種性能在本領域普通技術人員的能力和知識內。此外,還可以在不偏離此速 率控制方法的主要構思的情況下修改或者改變上述用于更新目標尺寸B目標的 方法。
應注意根據(jù)實施的觀點,可以丟棄導致負的Bextm的所編碼的幀。在這 樣的情況下,所編碼的幀的實際平均比特率將高于所指定的平均比特率。而 且,可以決定丟棄在某一閾值以下的所編碼的幀。例如, 一實施方案可以使
用-500比特的閾值。
最后,操作308確定用于要編碼的當前幀的經過調整的幀間幀目標尺寸
未超出最大比特率RMAX所允許的最大尺寸。為了這樣做,使用類似于等式
(10)的等式來獲得有效的幀間幀目標尺寸 =max(0,min(5w,fmp2)
其中tmp2是如在等式(11 )中定義的那樣。
還可以修改方法300,以便恰好在操作306之前處理Bextra。這是在不偏 離此速率控制方法的主要思想的情況下、將導致行為和性能中的一些其它的 折衷的實施方案選擇。
在沒有幀內幀在上一秒內被編碼或者將在即將到來的一秒中被編碼的情 況下,搡作106使用用于更新所計算的幀間幀目標尺寸的方法350,以便滿 足平均和最大比特率這兩者。
用于在其中沒有幀內幀在上一秒內凈皮編碼或者將在即將到來的一秒中被編碼 的情況(情況2)下、重新計算幀間幀尺寸的方法350
如上文所述,僅僅在理想的情況下,幀間幀具有相同的尺寸。實際上, 最大比特率限制可以顯著地減小位于幀內幀附近的幀間幀的目標尺寸。為了
24補償尺寸中的這些差異,將重新評估不受幀內幀影響的幀間幀的尺寸。
現(xiàn)在參照圖8,將描述用于在情況2下重新計算幀間幀目標尺寸的方法
350。
首先,在操作352中,基于平均比特率計算理想的幀間幀目標尺寸Ba。 在理想的情形下,假設幀間幀的尺寸為相同的長度。因此,在該情況下,
在兩個幀內幀之間的整個時間段T上,通過下式給出平均比特率Ravg:
"丑,
。"'〔 J ( 19)
根據(jù)等式(19),可以導出通過下式給出的幀間幀的理想尺寸Ba:
"-r-(2尸-1) (20) 操作352可以在初始化編碼器14時或者在每次比特率參數(shù)改變時僅僅計 算一次。
為了確保幀間幀目標尺寸Bp不超出基于平均比特率的理想幀間幀目標 尺寸以及在方法250的操作252中計算的、不超出最大比特率的幀間幀尺寸, 如下限制幀間幀的目標尺寸Bp:
B,, = min(£。,i 3) = min(s。D
然后,在操作354中,計算在操作352中計算的幀間幀尺寸Bp與實際的 所編碼的幀的尺寸之間的差異。對于每個幀執(zhí)行此操作。
跟蹤由在操作354中計算的差異產生的比特的數(shù)目,并將其存儲在變量 Bextra中。此變量允許確定實際的所編碼的幀是高于還是低于所指定的平均比 特率,并且允許基于情形補償該差異。這是利用根據(jù)等式(21)計算的目標 尺寸、如在圖7的方法300的操作306中所述的那樣完成的。
最后,在操作356中,限制Bp,以便不超出最大比特率,同時保持差錯
的容限并且考慮用于編碼過去的幀的比特。通過以下的等式給出BP:
5P = max(0,min(5w ,加p2)) ( )
其中—--U—-'氣R—n是比特率的差錯的容限。
例如,Rmargin=1000比特。
一旦計算了幀間幀目標尺寸,在圖4的搮:作108中,通過例如圖3的驗 證器56執(zhí)行驗證操作。實際上,所編碼的幀經常不具有與所計算的幀間幀相 同的尺寸。因此,如果與所計算的目標尺寸和最大比特率相比所編碼的幀的 尺寸過大,則激活重新編碼或者丟棄機制。那些機制是本領域公知的并且因此將不在本說明書中進一步描述。
IV.數(shù)值示例
在此部分中,將描述根據(jù)用于視頻編碼中的速率控制的方法100的一些
數(shù)值示例。
例如,才艮據(jù)方法200和方法250,如果最大比特率是Rmax = 48000 bps (比特/秒),幀內幀目標尺寸是B! = 40000比特,并且?guī)俾适荈 = 10 fj)s (幀/秒),貝'h
通過分別在操作202中使用等式(5 )以及在操作252中使用等式(12 ),
可以得到
5,-40000
欄0-4畫=888比特 w 9
5,,=垂匕特
' 10
再次,操作202和252可以在初始化編碼器14時或者在每次比特率參數(shù) 改變時僅僅計算一次。然而,基于實際的所編碼的幀的尺寸,每次、即為每 個幀計算操作204、 206以及254。
另一示例涉及方法300和方法350。在此情況下,如果最大比特率Rmax =48000 bps,平均比特率是Ravg = 32000 bps,幀內幀目標尺寸B! = 40000比 特,幀內幀的時間段是丁 = 4秒、即每40幀,幀速率是F:10fys,貝'j:
通過在操作302中使用等式(17)并且在操作354中使用等式(20), 可以得到
<formula>formula see original document page 26</formula>
再次,#:作302和352可以在初始化編碼器14時或者在每次比特率參數(shù) 改變時僅僅計算一次。然而,基于實際的所編碼的幀的尺寸為每個幀計算操 作304、 306、 308、 354以及356。
然后,利用BP=3429比特使用等式(19),來計算在通過使用所計算的目標尺寸來如所計劃的那樣編碼所有的幀的情況下可以獲得的平均比特率:
,g, + (2F - 2)4, + (7 - (2F - l肌、 廣40000 + (18)(888) + (40 - (19))(3429))
10
40

=32000比特
因此,獲得了所期望的理想結果。在某些情況下,最大比特率和幀內幀 目標尺寸可能限制平均比特率,特別是如果最大比特率接近平均比特率的情 況下、以及如果目標幀內幀尺寸較大的情況下。例如,如果在前面的示例中 平均比特率是48000 bps,則
「卩48000.40、
、
5,v =min
10
:—4000
39
48000-40000
:min(3897,888)-888比特
48000.40'
10
-40000 —(20 —2X888)
40 — 19
48000 10
min(6476,4800)= 4800比特
利用BP= 4800比特來如下地計算在如所計劃的那樣編碼所有的幀的情
況下可以獲得的平均比特率
;— r p, + (2尸-2)B + (r - (2F -1)) ' 一 I T
=10
40000 + (18)(888) + (40 - (19))(4800)、
=39196比特
但是,實際上,觀察較小的平均比特率,因為所編碼的幀的尺寸將圍繞 目標尺寸波動。因此,由等式(19)給出的結果對應于理論最大值。
應注意方法100中的幀間幀目標尺寸的計算取決于幀間幀相對于幀內 幀的位置。
V.關于導致超出所計算的目標尺寸的所編碼的幀的管理
在TMN8速率控制中,傳輸所有的所編碼的幀,即使它們的傳輸將導致 其中超出所指定的平均比特率的情形。在傳輸幀之后,如果超出了所指定的 平均比特率,則在需要時編碼器將跳過一個或者若干個幀,直到再次遵守所 指定的平均比特率為止。因此,此控制是反應性的而不是主動的。
上面的機制對于滿足平均比特率是可接受的。然而,如果如在使用物理傳輸信道的許多現(xiàn)實生活中的應用中的情況下那樣、必須從不超出最大比特 率,則其是不可接受的。
實際上,由于任何幀的尺寸都潛在地超出目標尺寸,因此應當實施其中 在傳輸導致超出最大比特率的所編碼的幀之前將其丟棄的機制。此途徑的問 題是視頻編碼使用逐幀的預測(時間預測編碼)。因此,如果丟棄幀,則需 要在對所丟棄的幀進行重新編碼之前恢復編碼器的狀態(tài),否則編碼器和解碼 器將不同步。
因此,根據(jù)本發(fā)明的非限制性實施例的設備42在編碼幀之前存儲編碼器 狀態(tài)變量。如果所編碼的幀的尺寸導致超出最大比特率,則其被丟棄,并且 為接下來編碼的幀恢復狀態(tài)變量。否則,傳輸所編碼的幀并且編碼器以新的 狀態(tài)變量繼續(xù)。
此特性還可以用于諸如其中可以對一幀執(zhí)行多次編碼迭代直到滿足尺寸 和/或質量上的目標的多程(multipass)編碼之類的其它應用。
編碼器14可以在兩種狀況下丟棄或者跳過幀。首先,如果所編碼的幀超 出最大比特率,則其將被自動丟棄。第二,如果所傳輸?shù)谋忍氐臄?shù)目超出所 指定的平均比特率,則可以跳過以后的幀-不是剛剛被編碼的幀而是跟隨的各 幀,直到再次遵守平均比特率為止。更具體地,如果超出了所指定的平均比 特率的某一閾值,則可以跳過以后的幀,并且將僅僅在其中保持當前幀將導 致超出最大比特率的情況下丟棄該當前幀。
此外,編碼器14允許在任一時刻請求幀內幀,導致實施"按要求的幀內 幀,,的特性。明顯地,在這樣的情況下,在不超出最大比特率的情況下,可 以不遵守幀內幀目標尺寸。如果發(fā)生此種情況,則編碼器14將計算并且^f吏用 最大幀內幀目標尺寸,而不超出最大比特率。如果所編碼的幀內幀的尺寸超 出最大比特率,則其將被丟棄,并且編碼器14將在再次試圖編碼該幀內幀之 前等待某一時間段。編碼器14將繼續(xù)等待并且試圖編碼該幀內幀,直到所編 碼的幀內幀遵守最大比特率。在每次失敗的嘗試時,減小幀內幀目標尺寸, 以便避免無限循環(huán),其中所編碼的幀的尺寸總是高于最大比特率。
通常,編碼器14在編碼視頻數(shù)據(jù)和幀時請求以下的參數(shù)
如在方法100的操作102中指定的幀內幀目標尺寸;
如在方法100的操:作101中指定的平均比特率;
如在方法100的操作101中指定的最大比特率。應注意編碼器14可以執(zhí)行上面給出的參數(shù)的若干驗證,并且如果不可 能使用所述參數(shù)則可以改變參數(shù)值。例如,利用給定的幀內幀目標尺寸和最 大比特率,可能達不到平均比特率。因此,將改變這些參數(shù),并且重新計算 平均速率。
VI.基于緩沖器的用于H.263的速率控制的第二非限制性實施例
在前面的實施例中,將最大比特率RMAx定義為在一 (1)秒的時間段期
間可以^L傳輸?shù)淖畲髷?shù)目的比特。
然而,在諸如視頻流傳輸之類的應用中,考慮最大比特率的不同的定義, 其考慮在那些應用中存在的實際限制。
在視頻流中,通過容量有限的信道發(fā)送視頻分組;因此比特率是有限的。 如果在圖1中的播放器20開始播放接收的第一幀內幀之前、認為一 (1)秒 的延遲是可接受的,則幀內幀目標尺寸應當?shù)陀?inferior) RMAX,在下文中 將進行解釋。
在播放器開始播放接收的第一幀之前,解碼器18必須等待一 (1)秒。 然而,這不意味著不能在此一 (1)秒的延遲期間傳輸另外的幀?,F(xiàn)在,假定 Bj = Rmax并且不超出最大比特率RMAx等效于傳輸緩沖器40不超出Rmax的
狀況。則在時刻t二0時,因為剛剛已經插入了尺寸為RMAX的幀,圖2的H
沖器40被裝滿。如果F = 10 fps并且RMAx-48000 bps,則在t-0.1秒時, 緩沖器40被騰空了 Rmax/F-4800比特,因為通過信道傳輸了該4800比特。 因此,4800比特變得可用于在給定的t= 0.1秒的時刻編碼幀,而不溢出傳輸 緩沖器40。相同的途徑應用于之后的幀。因此,對于幀內幀之后的每個幀, 可以傳輸另外的4800比特的量。由此,利用此途徑,可以總共傳輸 48000+(10-1)(4800) = 91200比特,而不是如上文所示以及描述的48000比特。
那些另外的可用的比特允許改進幀內幀之后的幀的質量,這是因為將所 述另外的可用的比特來增加用于編碼幀內幀之后的幀間幀的比特的數(shù)目。
然而,應注意不是在一 (1 )秒期間發(fā)送前面計算的91200比特,而是 由于由接收所傳輸?shù)膸瑑葞膽盟鶎е碌难舆t,占據(jù)那些比特的時間為1.9 秒1秒的延遲以及從時刻1.1秒到1.9秒的9幀,其給出了對應于最大比特 率Rmax的比特率(91200比特/1.9秒)=48000比特/秒。
為了例示的目的,將考慮最大緩沖器尺寸將對應于最大比特率RMAx。然而,可以利用不同的值來設置最大緩沖器尺寸。本領域普通技術人員將知 道如何相應地^修改7>式。
現(xiàn)在,將考慮其中接下來的幀內幀到來的情況。由于接下來的幀的到來,
緩沖器必須凈皮逐步騰空,以便在按日程的時刻(scheduled time)具有用于該 即將到來的幀內幀的足夠的空間。
即使用于幀內幀的目標尺寸是Bp為了實際的目的,也期望具有空的緩 沖器40,以便將更多的可用比特分配給幀內幀之后的幀,乂人而改進該幀內幀 之后的幀的質量。
因此,在實際應用中,B^R,。因此,在開始騰空緩沖器40之前,增 大被分配給幀內幀之后的幀的比特的數(shù)目,以便獲得對那些幀的改進的質量。
令零(0)為幀內幀的到達的時刻。然后,將N定義為在其上分發(fā)來自 幀內幀的編碼的未使用的比特的幀內幀之后的幀的數(shù)目。而且,將L定義為 在其上優(yōu)化緩沖器等級的幀間幀的數(shù)目。應注意在t-L時,緩沖器40被 裝滿,并且0^iV"。
總的來說,可以采用的可能的策略如下。
緩沖器等級一直不超出Rmax,意味著將丟棄生成溢出的所編碼的幀。在
器等級最大化并且增加視頻的整體質量,這是因為在幀內幀之后的視頻的質 量經常是最差的。直到幀編號L為止,通過利用目標尺寸RMAx/F來編碼幀使 得緩沖器40保持裝滿。此外,在之后的幀上重新分發(fā)已經被計算但是未在前 面的幀中使用的比特;然而,目標尺寸必須不超出某一值,該值取決于目標 緩沖器等級,而該目標緩沖器等級自身取決于時間上的幀索引。應注意對
于幀內幀之后的第一個幀,目標緩沖器等級為RMAX,并且目標緩沖器等級逐
漸減小為零(0),直到接下來的幀內幀的到來。
現(xiàn)在參照圖9,將描述用于視頻編碼中的改進的速率控制的方法400。
在操作402中,在時刻t = 0時,通過傳輸緩沖器40接收幀內幀。因此, 在時刻1 = 0時,目標幀尺寸是Bp(t):B!。
在操作404中,執(zhí)行新的緩沖器等級(其是前面的緩沖器等級與實際的 所編碼的幀內幀的尺寸的和)與最大緩沖器尺寸Rmax之間的比較。
如果新的緩沖器等級大于如在操作406中測試的最大緩沖器尺寸RMAX, 則在搡作408中,丟棄實際的所編碼的幀。而且,將恢復在編碼該幀之前的編碼器狀態(tài)變量(包括緩沖器等級,其將被恢復為編碼之前的緩沖器等級值)。
如果新的緩沖器等級小于最大緩沖器尺寸Rmax,則在操作410中,通過使用以下公式在兩個幀內幀之間的時間段T內的時刻t時對于每個幀計算幀間幀目標尺寸BP(t):
= (如果f- f,2,3,…,L )
^ (0 = 尸(r-£」「)' (如果f = L乂+7,…,"M )
其中W々)是任意數(shù),但是條件是緩沖器40必須不溢出,即,緩沖器等級s&i,并且必須在t:L時接近裝滿。
然后,在操作412中,計算最大緩沖器等級,不能超出該最大緩沖器等級。實際上,對于每個幀,應當計算最大緩沖器等級,以便確保在緩沖器40中—有足夠的空間用于插入接下來的幀內幀。幀內幀的尺寸不能超出Rmax。因此,對于T-1時的幀,緩沖器等級不能超出RMAX-B!+Rmax/F,使得在接下來的幀內幀的開始處緩沖器等級不超出Rmax-B!。
然而,如上文中所述的,出于實際的原因,緩沖器40的尺寸應當為Rmax/F而不是RMAX - Bz + R,/F。這是因為實際上難以精確地預測所編碼的幀內幀的實際尺寸。當前的現(xiàn)有算法的魯棒性不夠。因此,更安全的是在幀T-l時使得緩沖器40騰空,使得可以為幀內幀之后的幀使用更多的比特。
因此,如下計算最大緩沖器等級
<formula>formula see original document page 31</formula>
如果<formula>formula see original document page 31</formula>
然后,在操作
414中,更新在搮:作410中計算的幀間幀目標尺寸,以^f更合并來自幀內幀的編碼中的未使用的比特。
在幀L后,應當裝滿緩沖器40,以便優(yōu)化幀內幀之后的視頻的質量。
例如為了在之后的N個幀上均等地分發(fā)未使用的比特,通過下式給出時刻t時的目標幀尺寸
<formula>formula see original document page 31</formula>
(如果CXf^A/)(如果AMf-L)<formula>formula see original document page 32</formula>
應注意如果L-N,則不出現(xiàn)為RMAx/F的目標幀尺寸。而且,T>F +L,使得緩沖器40將具有足夠的時間來在兩個幀內幀之間騰空其自身。
在操作416中,計算被分配給每個以后的幀的緩沖器等級,使得考慮經過更新的幀間幀目標尺寸。
因此,通過下式給出緩沖器等級
<formula>formula see original document page 32</formula>
意在開始時,傳輸緩沖器是空的,然后,根據(jù)尺寸為B!和Bp(t)的幀的計算連續(xù)地插入所述尺寸為B!和Bp(t)的幀。
然后,在操作418中,計算用于編碼幀的容限A(t):
<formula>formula see original document page 32</formula>
使得
<formula>formula see original document page 32</formula>
通常,在編碼器14編碼幀時,所編碼的幀的尺寸與目標尺寸略有不同;在目標尺寸大于所編碼的幀的情況下,在接下來的幀上重新分發(fā)未使用的比特,只要未超出最大緩沖器等級即可。因此,在編碼幀之后,在操作420中計算指示可能的另外的比特的數(shù)目的E(t)??梢詫膸木幋a中產生的那些未使用的比特用于編碼接下來的幀。將E(t)定義為<formula>formula see original document page 32</formula>其中,BufferLevelactual (t)是在實際編碼幀之后的緩沖器等級。應注意通常將另外的比特的一部分用于確保不超出最大緩沖器等級。本領域普通技術人員將知道如何指定另外的比特的所述部分以便確保不超出最大緩沖器等級。
然而,可以發(fā)生所編碼的幀大于目標幀尺寸的情況。在此情況下,E(t)是負的,或者低于某一給定的閾值。因此,在操作422中,對于所編碼的幀執(zhí)行驗證進程。如果所編碼的幀已經超出了目標幀尺寸,則丟棄此所編碼的幀。而且,在此情況下,將編碼器狀態(tài)變量恢復到在編碼該幀之前它們的值。值得注意的是例如,可以通過圖3的第一計算器52來執(zhí)行方法400的操作410,并且可以通過圖3的第二計算器54來執(zhí)行方法400的操作412。而且,由例如圖2中的進.程3(h提供的優(yōu)化器(未示出)來允許在L個幀上優(yōu)化傳輸緩沖器40。
VII. It值示例
例如,可以使用與在前面的數(shù)值示例中給出的值相同的值RMAX = 48000比特,Bj = 40000比特,F(xiàn) = 10 fys, T = 40、即4秒。此外,假設N = 3并且L-F-l-9,則
(如果t = 0 )(如果O"siV )(J(口果W〈t^丄)
(i口果f二丄,i:+i,…,r一i)
Bp(t) = 40000Bp(t) = 7466BP(t) = 4800BP(t) = 3360
使用上面計算的值,可以如下計算最大比特率:
40000 + (3)(7466) + (9 — 3)(4800) + (39 — 9)(3360)
=48000比特

此結果比由方法100給出的39.2kbps更令人感興趣。而且,由于在幀內幀之后的幀間幀上分發(fā)另外的比特,因此改進了幀的視覺質量。
盡管已經借助非限制性說明性實施例在前面的說明書中描述了本發(fā)明,但是可以在不背離本主題發(fā)明的精神和本質的情況下、在所附的權利要求的范圍內隨意修改這些說明性實施例。
權利要求
1.一種用于視頻編碼中的速率控制的方法,包括指定最大比特率和平均比特率;計算幀間幀尺寸,以滿足所指定的最大比特率,該幀間幀尺寸與該幀間幀的位置相對于幀內幀的位置有關;以及調整所計算的幀間幀尺寸,以滿足所指定的最大比特率和平均比特率這兩者。
2. 如權利要求l所述的方法,還包括指定幀內幀的尺寸。
3. 如權利要求2所述的方法,還包括估計用于編碼幀內幀的幀內幀的量化參數(shù),以滿足所指定的幀內幀尺寸。
4. 如權利要求2所述的方法,其中計算幀間幀尺寸以滿足所指定的最大比特率包括基于所指定的最大比特率來計算理想的幀間幀尺寸。
5. 如權利要求4所述的方法,其中計算理想的幀間幀尺寸包括在幀間幀的位置指示在最近發(fā)生的時間段期間已經編碼了幀內幀、或者在即將到來的時間段期間將編碼幀內幀時,使用下面的等式"—一其中B2是理想的幀間幀尺寸,RMAX是所指定的最大比特率,F(xiàn)是幀速率,Bj是幀內幀尺寸。
6. 如權利要求4所述的方法,其中計算理想的幀間幀尺寸還包括在幀間幀的位置指示最近發(fā)生的時間段期間沒有編碼幀內幀或者在即將到來的時間段期間將不編碼幀內幀時,使用下面的等式3 F其中B3是理想的幀間幀尺寸,Rmax是所指定的最大比特率,F(xiàn)是幀速率。
7. 如權利要求5所述的方法,其中計算幀間幀尺寸以滿足所指定的最大比特率還包括考慮過去所編碼的幀。
8. 如權利要求7所述的方法,其中在最近發(fā)生的時間段內已經編碼了幀內幀時、考慮過去所編碼的幀來計算幀間幀尺寸Bp!包括使用下面的等式5/v = max(0,min(5n ,加/ ))其中 f-(r-ao其中,SizeHistory[k]是所編碼的幀k的尺寸,t是要編碼的當前幀的索引,T是兩個幀內幀之間的時間段,N是在在接下來的幀內幀之前剩余的幀數(shù)。
9. 如權利要求8所述的方法,其中在即將到來的時間段中需要編碼幀內幀時、考慮過去所編碼的幀來計算幀間幀尺寸Bp!還包括使用下面的等式5W = max(0,min(Sw ,加; ))=----其中 w 。
10. 如權利要求7所述的方法,其中考慮過去所編碼的幀來計算幀間幀尺寸包括考慮過去的幀內幀。
11. 如權利要求9所述的方法,其中計算幀間幀尺寸以滿足所指定的最大比特率還包括將幀間幀尺寸限制為所指定的最大比特率所允許的最大尺寸。
12. 如權利要求11所述的方法,其中限制幀間幀尺寸Bw包括使用下面的等式S尸,=max(O, min(5w ,/m; 2)(-i其中加p2(/) = W聽.—i arg, -ZS'ze州加0'W其中,Rmargin是用于確保幀間幀尺寸BP1不超出所指定的最大比特率RMAX所允許的最大尺寸的差錯的容限。
13. 如權利要求6所述的方法,其中計算幀間幀尺寸以滿足所指定的最大比特率還包括通過使用下面的等式將幀間幀尺寸限制為所指定的最大比特率所允許的最大尺寸= max(0,min(5,,,加/ 2)) ( 14 )其中,Bp是幀間幀尺寸,加P2(0 = W認- &,, - 卄& dF ,再T Rmargin是幀間幀尺寸與最大比特率RMAX所允許的最大尺寸之間的差錯容限,SizeHistory[k]是所編碼的幀k的尺寸,t是要編碼的當前幀的索引。
14. 如權利要求l所述的方法,其中調整所計算的幀間幀尺寸以滿足所指定的最大比特率和平均比特率這兩者包括基于所指定的平均比特率來計算理想的幀間幀尺寸。
15.如權利要求14所述的方法,其中在幀間幀的位置指示在最近發(fā)生的時間段期間已經編碼了幀內幀、或者在即將到來的時間段期間將編碼幀內幀時,基于所指定的平均比特率來計算理想的幀間幀尺寸包括使用下面的等式3 =r-i其中B是理想的幀間幀尺寸,Ravg是平均比特率,B!是幀內幀的尺寸,T是兩個幀內幀之間的時間段,F(xiàn)是幀速率。
16. 如權利要求14所述的方法,其中在幀間幀的位置指示在最近發(fā)生的時間段期間沒有編碼幀內幀或者在即將到來的時間段期間將不編碼幀內幀時,基于所指定的平均比特率來計算理想的幀間幀尺寸還包括使用下面的等式^= r-(2F-1)其中,Ba是理想的幀間幀尺寸,Ravg是平均比特率,Br是幀內幀的尺寸,Bw是幀間幀尺寸,T是兩個幀內幀之間的時間l殳,F(xiàn)是幀速率。
17. 如權利要求15所述的方法,其中調整所計算的幀間幀尺寸以滿足所指定的最大比特率和平均比特率這兩者包括考慮過去所編碼的幀。
18. 如權利要求17所述的方法,其中調整所計算的幀間幀尺寸以滿足所指定的最大比特率和平均比特率這兩者還包括比較所計算的幀間幀尺寸與對應的所編碼的幀的尺寸。
19. 如權利要求18所述的方法,其中比較所計算的幀間幀尺寸與對應的所編碼的幀的尺寸包括將來自比較的結果存儲在變量中。
20. 如權利要求19所述的方法,其中將來自比較的結果存儲在變量中包括使用下面的等式更新該變量其中,Be咖是所述變量,Btarget是所計算的幀間幀尺寸,Benc。ded是對應的所編碼的幀的尺寸。
21. 如權利要求20所述的方法,其中更新變量Be咖包括在變量Be咖比特。
22. 如權利要求20所述的方法,其中更新所述變量包括在變量Be自是負的時,為接下來的幀間幀減小所計算的幀間幀尺寸。
23. 如權利要求20所述的方法,其中更新所述變量包括在所述變量Bextra低于給定的閾值時,丟棄所編碼的幀間幀。
24. 如權利要求14所述的方法,其中調整所計算的幀間幀尺寸以滿足所指定的最大比特率和平均比特率這兩者還包括將幀間幀尺寸限制為所指定的最大比特率所允許的最大尺寸。
25. 如權利要求l所述的方法,還包括在傳輸之前驗證所編碼的幀的尺寸小于所調整的幀間幀尺寸。
26. 如權利要求1所述的方法,還包括在編碼幀之前存儲編碼器狀態(tài)變量,并且在已經丟棄了所編碼的幀之后恢復該狀態(tài)變量。
27. 如權利要求l所述的方法,還包括丟棄具有導致超出所指定的最大比特率的尺寸的所編碼的幀。
28. 如權利要求27所述的方法,還包括丟棄具有導致超出所指定的平均比特率的尺寸的所編碼的幀。
29. 如權利要求28所述的方法,還包括利用不同的編碼參^t重新編碼具有導致超出所指定的平均比特率和最大比特率的尺寸的所編碼的幀。
30. —種用于在考慮解碼延遲時、改進包括由幀內幀分開的一系列幀間幀的序列的視頻編碼中的速率控制的方法,該方法包括對于該系列中的每個幀間幀,計算目標幀尺寸;對于該系列中的每個幀間幀,計算與每個幀間幀相對于前面的幀內幀和即將到來的幀內幀的位置有關的最大緩沖器等級;以及響應于所計算的目標幀尺寸和所計算的最大緩沖器等級來優(yōu)化傳輸緩沖器等級。
31. 如權利要求30所述的方法,還包括在所編碼的幀超出最大緩沖等級時,丟棄幀。
32. 如權利要求30所述的方法,還包括在編碼幀之前存儲編碼器狀態(tài)變量。
33. 如權利要求32所述的方法,還包括在編碼接下來的幀之前,在已經丟棄了所編碼的幀之后恢復所述編碼器狀態(tài)變量。
34. 如權利要求30所述的方法,還包括確保所傳輸?shù)膸叽缧∮谒o定的最大限制。
35. 如權利要求34所述的方法,其中所述最大限制是最大比特率。
36.如權利要求30所述的方法,其中對于該系列中的每個幀間幀計算目標幀,p 4 A "4f下面的等式&(/) = WW如果f-7,2,3,…,L其中,Bp(t)是時刻t時的幀間幀的目標幀尺寸,T是兩個幀內幀之間的時間段,《(O是時刻t時的任意幀間幀目標尺寸,Bt是幀內幀尺寸,F(xiàn)是幀速率,k是求和函數(shù)中的索引,L是在其上優(yōu)化傳輸緩沖器等級的幀的數(shù)目,Rmax是最大比特率。
37. 如權利要求36所述的方法,其中對于該系列中的每個幀間幀計算目標幀尺寸還包括確定在編碼巾貞內幀中未使用的多個比特;以及在幀內幀之后的N個幀間幀的目標幀尺寸上分發(fā)所述未^f吏用的多個比特。
38. 如權利要求37所述的方法,其中確定在編碼幀內幀中未使用的多個
39. 如權利要求38所述的方法,其中在N個幀間幀的目標幀尺寸上分發(fā)所述未使用的多個比特包括在L個幀間幀上優(yōu)化傳輸緩沖器等級,其中
40. 如權利要求37所述的方法,其中在N個幀間幀的目標幀尺寸上分發(fā)所述未使用的多個比特包括在N個幀間幀尺寸的目標幀尺寸上基本上均等地分發(fā)所述多個未使用的比特。
41. 如權利要求30所述的方法,其中當在N個幀間幀尺寸的目標幀尺寸上基本上均等地分發(fā)多個未使用的比特時,對于該系列中的每個幀間幀計算目標幀尺寸還包括計算下面的等式<formula>formula see original document page 6</formula>如果f = /_, L+7,…,T陽7<formula>formula see original document page 6</formula>^ (O二 —F —丄)p F(r-丄一1) 如果f = /_,…,T"其中,Bp(t)是時刻t時的幀間幀的目標幀尺寸,B!是幀內幀尺寸,T是兩個幀內幀之間的時間段,《是任意幀間幀目標尺寸,F(xiàn)是幀速率,L是在其上優(yōu)化傳輸緩沖器等級的幀的數(shù)目,Rmax是最大比特率。
42. 如權利要求30所述的方法,其中對于該系列中的每個幀間幀計算與每個幀間幀相對于前面的和即將到來的幀內幀的位置有關的最大緩沖器等級以確保所述傳輸緩沖器能夠容納即將到來的幀內幀。
43. 如權利要求42所述的方法,其中對于該系列中的每個幀間幀計算最大緩沖器等級包括在要編碼的幀間幀在前面的幀內幀附近時計算接近最大緩沖器尺寸的最大緩沖器等級,并且在該幀間幀在即將到來的幀內幀附近時計算接近零的最大緩沖器等級。
44. 如權利要求30所述的方法,其中對于該系列中的每個幀間幀計算最大緩沖器等級BufferLevelI,(t)包括使用下面的等式S",由ve/纖,(/) = / 證 如-裂W "《S"何麼/贈(0 = ^^^^ + / ^麗(1 一 F)如萊f = L+f,…T4其中,T是兩個幀內幀之間的時間段,F(xiàn)是幀速率,Rmax是最大比特率,L是在其上優(yōu)化傳輸緩沖器等級的幀的數(shù)目,B!是幀內幀尺寸,N是在其上分發(fā)多個未使用的比特的幀間幀的數(shù)目,t是時間索引。
45. 如權利要求30所述的方法,其中響應于所計算的目標幀尺寸和最大緩沖器等級來優(yōu)化傳輸緩沖器等級包括計算所計算的目標幀尺寸與所計算的最大緩沖器等級之間的差異。
46. 如權利要求45所述的方法,其中計算所計算的目標幀尺寸與所計算的最大緩沖器等級之間的差異包括計算用于編碼幀的容限。
47. 如權利要求46所述的方法,其中計算用于編碼幀的容限包括計算下面的等式A(t) = BufferLevel薩(t) —BufferLevel(t)其中A(t)是所述容限,BufferLevelMAx(t)是所計算的時刻t時的最大緩沖器等級,BufferLevel (t)是時刻t時的傳輸緩沖器等級。
48. 如權利要求47所述的方法,還包括更新每個幀間幀目標尺寸。
49. 如權利要求48所述的方法,其中更新每個幀間幀目標尺寸包括計算在編碼前面的幀中未使用的比特的數(shù)目。
50. 如權利要求49所述的方法,其中計算在編碼前面的幀中未使用的比特的數(shù)目包括計算下面的等式卯)=St^"稱(聰(/) — fit#"e w/秦,(,)—A(/)其中,BufferLevel齒"t)是在實際編碼幀之后的傳輸緩沖器等級。
51. —種用于視頻編碼中的速率控制的設備,該設備包括用于計算幀間幀尺寸以滿足所指定的最大比特率的部件,該幀間幀尺寸與該幀間幀的位置相對于幀內幀的位置有關;以及除了滿足所指定的最大比特率之外,用于調整所計算的幀間幀尺寸以滿足所指定的平均比特率的部件。
52. —種用于視頻編碼中的速率控制的設備,該設備包括用于滿足所指定的最大比特率的幀間幀尺寸的第一計算器,該幀間幀尺寸與該幀間幀的位置相對于幀內幀的位置有關;以及除了所指定的最大比特率之外、用于滿足所指定的平均比特率的由第一計算器計算的幀間幀尺寸的第二計算器。
53. 如權利要求52所述的設備,還包括幀內幀尺寸以及該幀內幀的量化參數(shù)的預測器。
54. 如權利要求52所述的設備,還包括驗證器,其使得在傳輸之前所編碼的幀的尺寸小于所調整的幀間幀尺寸。
55. 如權利要求52所述的設備,還包括用于包含所傳輸?shù)膸难h(huán)緩沖器。
56. 如權利要求52所述的設備,還包括具有狀態(tài)變量的編碼器,在編碼幀之前存儲這些狀態(tài)變量,并且在已經丟棄了所編碼的幀之后恢復這些狀態(tài)變量。
57. —種用于在允許解碼延遲時、改進包括由幀內幀分開的一系列幀間幀的序列的視頻編碼中的速率控制的設備,該設備包括用于對于每個幀間幀計算目標幀尺寸的部件;用于對于每個幀間幀計算與每個幀間幀相對于前面的幀內幀和即將到來的幀內幀的位置有關的最大緩沖器等級的部件;以及用于響應于所計算的目標幀尺寸和所計算的最大緩沖器等級而優(yōu)化傳輸緩沖器等級的部件。
58. —種用于在允許解碼延遲時、改進包括由幀內幀分開的一系列幀間幀的序列的視頻編碼中的速率控制的設備,該設備包括對于每個幀間幀的、目標幀尺寸的計算器;對于每個幀間幀的、與每個幀間幀相對于前面的幀內幀和即將到來的幀內幀的位置有關的最大緩沖器等級的計算器;以及響應于所計算的目標幀尺寸和所計算的最大緩沖器等級的、傳輸緩沖器等級的優(yōu)化器。
59. 如權利要求58所述的設備,還包括具有狀態(tài)變量的編碼器,在編碼幀之前存儲這些狀態(tài)變量,并且在已經丟棄了所編碼的幀之后恢復這些狀態(tài)變量。
全文摘要
一種方法和設備,其用于在考慮解碼延遲時、改進包括由幀內幀分開的一系列幀間幀的序列的視頻編碼中的速率控制,包括對于該系列中的每個幀間幀計算目標幀尺寸,計算有關于每個幀間幀相對于前面的幀內幀和即將到來的幀內幀的位置的最大緩沖器等級,以及響應于所計算的目標幀尺寸和所計算的最大緩沖器等級而優(yōu)化傳輸緩沖器等級。
文檔編號H04N7/24GK101647278SQ200780051251
公開日2010年2月10日 申請日期2007年12月11日 優(yōu)先權日2006年12月12日
發(fā)明者斯蒂芬妮·庫洛姆比 申請人:梵提克斯公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
公主岭市| 大同县| 梓潼县| 尚志市| 余姚市| 石楼县| 邵武市| 田东县| 嫩江县| 稷山县| 哈巴河县| 吐鲁番市| 安丘市| 赤城县| 元谋县| 唐河县| 漳浦县| 岳阳市| 馆陶县| 禄丰县| 武定县| 天门市| 囊谦县| 定西市| 壤塘县| 邛崃市| 孟津县| 乌苏市| 金寨县| 宜兰市| 高邮市| 阿克陶县| 新化县| 民县| 冷水江市| 章丘市| 和龙市| 高密市| 富蕴县| 托克托县| 夏邑县|