專利名稱:用于圖像或視頻處理的通用參考解碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像和視頻信號以及其他隨時間變化的信號(例如語音和音頻)信號的解碼。
背景技術(shù):
在視頻編碼標準中,至少從概念上講,如果位流可以通過連接到編碼器輸出的解碼器的數(shù)學模型進行解碼,那么,它是適應(yīng)的。這種模型解碼器在H.263編碼標準中被稱作“假設(shè)參考解碼器”(HRD),而在MPEG編碼標準中被稱作“視頻緩沖檢驗符”(VBV)。一般而言,真實的解碼器設(shè)備(或終端)包括一個解碼器緩沖器、一個解碼器和一個顯示單元。如果真實的解碼器設(shè)備根據(jù)解碼器的數(shù)學模型來構(gòu)制,并且適應(yīng)的位流在特殊條件下被傳輸?shù)皆撛O(shè)備,那么,解碼器緩沖器將不會溢出或下溢,并且解碼將得到正確的執(zhí)行。
前面的參考(模型)解碼器假設(shè)位流將以給定的恒定位速率通過信道傳輸,并且將由具有某給定的緩沖器大小的設(shè)備來進行解碼(在給定的緩沖延遲之后)。所以,這些模型非常固定,不能達到當今許多重要的視頻應(yīng)用的要求(例如,實況轉(zhuǎn)播視頻,或在具有各種峰值位速率的網(wǎng)絡(luò)路徑上提出需要時就將預先編碼過的視頻發(fā)送到具有各種緩沖器大小的設(shè)備。
在以前的參考解碼器中,按給定的恒定位速率(通常是用位/秒來表達的流平均速率)接收視頻位流,并在緩沖器達到某個所需的充滿度水平之前存儲在解碼器緩沖器中。例如,在解碼可以從其中重構(gòu)一個輸出幀之前,至少需要對應(yīng)于視頻信息的一個初始幀的數(shù)據(jù)。這個所需理想的水平表示作為初始的解碼器緩沖器充滿度,并且在恒定的位速率時,直接與傳輸或啟動(緩沖器)延遲成正比。一旦達到這個充滿度,解碼器就立即(本質(zhì)上)除去該序列的第一個視頻幀的各個位,并且為這些位解碼,以顯示該幀。后面各個幀的位也立即按隨后的時間間隔除去、解碼和顯示。
這種參考解碼器按固定的位速率、緩沖器大小和初始延遲進行工作。但是,在許多當代的視頻應(yīng)用(例如,通過互聯(lián)網(wǎng)或ATM網(wǎng)絡(luò)的視頻流)中,峰值帶寬根據(jù)網(wǎng)絡(luò)路徑而變化。例如,峰值帶寬根據(jù)與網(wǎng)絡(luò)的連接是否通過調(diào)制解調(diào)器、ISDN、DSL、電纜等而有所不同。而且,峰值帶寬也可能根據(jù)網(wǎng)絡(luò)條件(例如,根據(jù)網(wǎng)絡(luò)擁塞、所連接的用戶的數(shù)量和其他已知的因素)而發(fā)生及時的變動。此外,視頻位流被傳送到具有不同的緩沖器容量的各種設(shè)備(包括手機、“個人數(shù)字助手”(PDAs)、PCs、可放進口袋的計算設(shè)備、電視機頂盒、類似DVD的播放器等設(shè)備),并且為具有不同的延遲要求的情況(例如,低延遲流、漸進下載等類似的情況)而創(chuàng)建。
現(xiàn)存的參考解碼器不能對這些變數(shù)進行調(diào)整。同時,編碼器通常事先不知道,也無法知道對于給定的接受者有什么可變的條件。結(jié)果,資源和/或延遲時間經(jīng)常被不必要地浪費,或者在許多情況下并不合適。
發(fā)明內(nèi)容
簡而言之,本發(fā)明提供了一種改進的通用參考解碼器,該通用參考解碼器根據(jù)給定位流的任何數(shù)量的各組速率與緩沖器參數(shù)來進行操作。每組參數(shù)表現(xiàn)被稱作“漏桶模型”(leaky bucket model)或“參數(shù)組”的特征,并且包含三個值(R、B、F)——其中,R是傳輸位速率,B是緩沖器大小,F(xiàn)是初始的解碼器緩沖器充滿度。不言而喻,F(xiàn)/R是啟動或初始緩沖器延遲。
編碼器創(chuàng)建由某所需數(shù)量N個漏桶所包含的一個視頻位流,或者,在已生成該位流之后,編碼器可以只計算N組參數(shù)。編碼器將該數(shù)量和對應(yīng)數(shù)量的(R、B、F)組以某種方式(例如,在初始流頭部中或頻帶以外)傳送給解碼器(至少)一次。
當在解碼器處被接收時,如果至少有兩組參數(shù),則通用參考解碼器選擇一組參數(shù)或在各個漏桶參數(shù)之間內(nèi)插,由此可以按任何所需的峰值位速率、緩沖器大小或延遲進行操作。尤其是,在所給出的所需峰值傳輸速率R’(其在解碼器末端已知)的情況下,通用參考解碼器(根據(jù)可用的(R,B,F(xiàn))組,通過選擇一組參數(shù),或在兩組參數(shù)或多組參數(shù)之間內(nèi)插,或通過外插)選擇最小的緩沖器大小和延遲,這種選擇將能夠?qū)ξ涣鹘獯a,而不會遭受緩沖器下溢或溢出的困擾?;蛘?,關(guān)于給定的解碼器緩沖器大小B’,假設(shè)解碼器將選擇和在最小的所需峰值傳輸速率進行操作。
通用參考解碼器的好處包括內(nèi)容供應(yīng)商可以創(chuàng)建一個位流一次,而服務(wù)器可以使用不同峰值傳輸速率的各種信道來將它傳送到容量不同的多種設(shè)備?;蛘?,服務(wù)器和終端可以商議所給定的聯(lián)網(wǎng)條件的最佳漏桶參數(shù)(例如,將產(chǎn)生最低的啟動(緩沖器)延遲的參數(shù),或?qū)υO(shè)備的給定緩沖器大小要求最低的峰值傳輸速率的參數(shù))。在實際應(yīng)用中,一些終端的緩沖器大小和延遲可以減小一個數(shù)量級,或者,峰值傳輸速率可以減小一個大的倍數(shù)(例如,4倍),并且/或者,信號-噪聲比(SNR)也許可以提高幾個dB,而不會提高平均的位速率(除了傳達漏桶信息的可忽略數(shù)量的額外的位以外)。
因此,提供了一種計算機實現(xiàn)的方法,包括產(chǎn)生用于單個視頻位流的給定視頻的多組參考解碼器參數(shù),其中每組所述參考解碼器參數(shù)包括一個速率參數(shù)和一個解碼器的緩沖器大小參數(shù),以及提供所述多組參考解碼器參數(shù)和單個視頻位流,以便于使用所述多組參考解碼器參數(shù)中的任意組參數(shù)來確定一個操作條件,其中所述操作條件指示了用于對所述單個視頻位流的給定視頻的經(jīng)編碼數(shù)據(jù)進行解碼的峰值速率或解碼器的緩沖器大小,并且其中,所述多組參考解碼器參數(shù)可共同用于確定所述操作條件。
另外,本發(fā)明提供了一種計算機可實現(xiàn)方法,包括產(chǎn)生用于單個視頻位流的給定視頻的多組參考解碼器參數(shù),其中每組所述參考解碼器參數(shù)包括一個速率參數(shù)和一個解碼器的緩沖器大小參數(shù),發(fā)送所述多組參考解碼器參數(shù);以及使用所述多組參考解碼器參數(shù),以確定一個操作條件,所述操作條件指示了用于對給定視頻的經(jīng)編碼數(shù)據(jù)進行解碼的峰值速率或解碼器的緩沖器大小,并且其中,所述多組參考解碼器參數(shù)可共同用于確定所述操作條件。
通過以下詳細的描述并結(jié)合附圖,將明白其他的好處和優(yōu)點。在附圖中
圖1是方框圖,表現(xiàn)了可以包含本發(fā)明的一種示范的計算機系統(tǒng);圖2是方框圖,表現(xiàn)了增強的編碼器和通用參考解碼器及其它們各自的緩沖器,用于根據(jù)本發(fā)明的一個方面來為視頻或圖像數(shù)據(jù)進行編碼和解碼;圖3是當被包含在一個漏桶的參數(shù)(R,B,F(xiàn))中時緩沖器充滿度隨時間變化的圖表;
圖4表現(xiàn)了典型視頻剪切片斷的速率與緩沖器大小的曲線;圖5表現(xiàn)了根據(jù)本發(fā)明的一個方面的典型視頻剪切片斷的速率與緩沖器大小的曲線,將兩個漏桶模型(參數(shù)組)提供給通用參考解碼器,用于內(nèi)插和外插。
具體實施例方式
示范的操作環(huán)境圖1展示了可以在其中實現(xiàn)本發(fā)明的合適的操作環(huán)境120的一個例子,特別適用于對圖像和/或視頻數(shù)據(jù)進行解碼。操作環(huán)境120僅是一個合適的操作環(huán)境的實例,不是對本發(fā)明的使用或功能性的范圍方面提出任何限制。其他眾所周知的、可能適用于本發(fā)明的計算系統(tǒng)、環(huán)境和/或配置包括(但不局限于)個人計算機、服務(wù)器、計算機、手持設(shè)備或便攜式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程的消費電子產(chǎn)品、網(wǎng)絡(luò)PCs、微型計算機、主機計算機、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境和類似物。例如,有可能經(jīng)常在具有超越當代手持個人計算機處理能力的計算機上執(zhí)行對圖像和/或視頻圖像數(shù)據(jù)編碼,但是,沒有理由斷定無法在示范設(shè)備上執(zhí)行編碼或在功能更加強大的機器上執(zhí)行解碼。
可以在由一臺或多臺計算機或其他的設(shè)備所執(zhí)行的計算機可執(zhí)行指令(例如,程序模塊)的一般環(huán)境中描述本發(fā)明。一般而言,程序模塊包括實行特定任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型的例行程序、程序、對象、組成部分、數(shù)據(jù)結(jié)構(gòu)等。通常,程序模塊的功能性可以按各個實施例的需要來加以結(jié)合或分配。
計算設(shè)備120通常至少包括某種形式的計算機可讀媒體。計算機可讀媒體可以是可由計算設(shè)備120進行存取的任何可用的媒體。舉例來講(但不作限制),計算機可讀媒體可以包括計算機存儲媒體和通信媒體。計算機存儲媒體包括易失性與非易失性媒體,以及可移動與不可移動媒體,這些介質(zhì)媒體是采用可存儲信息(例如,計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù))的任何方法或技術(shù)來實現(xiàn)。計算機媒體包括(但不局限于)RAM、ROM、EEPROM、快閃存儲器或其他存儲器技術(shù)、CD-ROM、數(shù)字通用光盤(DVD)或其他光學存儲器、磁性盒式磁帶、磁帶、磁盤存儲器或其他磁性存儲設(shè)備,或任何可用來存儲所需的信息并可由計算設(shè)備120進行存取的任何其他的媒體。通信媒體通常包括計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或經(jīng)調(diào)制的數(shù)據(jù)信號(例如,載波或其他傳送機制)中的其他數(shù)據(jù),并且包括任何信息傳送媒體。術(shù)語“經(jīng)調(diào)制的數(shù)據(jù)信號”是指以對信號中的信息編碼的方式來設(shè)置或改變其一個或多個特征。舉例來講(不作限制),通信媒體包括有線媒體(例如,有線網(wǎng)絡(luò)或直接接線連接)和無線媒體(例如,聲音、RF、紅外線和其他無線媒體)。上述媒體的任意結(jié)合也應(yīng)包括在計算機可讀媒體的范圍中。
圖1表現(xiàn)了一個這樣的手持計算設(shè)備120的功能部件,包括處理器122、存儲器124、顯示器126和鍵盤128(可以是物理鍵盤,也可以是虛擬鍵盤)。存儲器124一般包括易失性存儲器(例如,RAM)和非易失性存儲器(例如,ROM、PCMCIA卡等)兩者。操作系統(tǒng)130駐留在存儲器124中,并在處理器122上加以執(zhí)行(例如,來自Microsoft公司的“Windows CE”操作系統(tǒng)或另一種操作系統(tǒng))。
一個或多個應(yīng)用程序132被載入存儲器124并在操作系統(tǒng)130上運行。應(yīng)用程序的例子包括電子郵件程序、調(diào)度程序、PIM(個人信息管理)程序、文字處理程序、電子表格程序、互聯(lián)網(wǎng)瀏覽器程序等。手持個人計算機120也可以包括加載在存儲器124中的通知管理器134,該通知管理器在處理器122上加以執(zhí)行。通知管理器134處理例如來自應(yīng)用程序132的通知請求。
手持個人計算機120具有由一節(jié)或多節(jié)電池構(gòu)成的電源136。電源136還可以包括使內(nèi)置電池無效或再充電的外部電源(例如,AC適配器或接通電源的連接底座)。
如圖1中所示的示范手持個人計算機120示出三種類型的外部通知機制一個或多個發(fā)光二極管(LEDs)140和聲頻發(fā)生器144。這些設(shè)備可以直接耦合到電源136,以便當它們被激活時,即使關(guān)閉手持個人計算機處理器122和其他部件以保存電池功率,它們也可在通知機制所指示的期限內(nèi)繼續(xù)運行。較佳的是,LED 140無限地繼續(xù)保持,直到用戶采取行動為止。注意,對于現(xiàn)今的手持個人計算機電池而言,聲頻發(fā)生器144的當代版本使用過多的功率,所以,當系統(tǒng)休眠時,或在激活之后的某段有限的時期,它被配置成關(guān)閉。
通用參考解碼器漏桶是作為時間函數(shù)的編碼器或解碼器緩沖器的狀態(tài)(或充滿度)的概念模型。圖2表現(xiàn)了這個概念,其中,輸入數(shù)據(jù)200被饋送到增強的編碼器202(在下文加以描述),該編碼器把數(shù)據(jù)編碼入編碼器緩沖器204。編碼數(shù)據(jù)通過某個傳輸媒體(輸送管)206傳輸?shù)浇獯a器緩沖器208,然后由解碼器210解碼成輸出數(shù)據(jù)212(例如,圖像或視頻幀)。為簡單起見,這里將主要描述解碼器緩沖器208,因為編碼器和解碼器緩沖器的充滿度從概念上講是互補的,即,解碼器緩沖器中的數(shù)據(jù)越多,編碼器緩沖器中的數(shù)據(jù)就越少,反之亦然。
漏桶模型的特征是一組共三個參數(shù)——R、B和F,其中,R是位進入解碼器緩沖器208的峰值位速率(用位/秒表示)。在位速率恒定的情況下,R經(jīng)常是視頻或聲頻片斷的信道位速率和平均位速率,從概念上講,可以認為它對應(yīng)于輸送管206的寬度。B是平穩(wěn)視頻位速率波動的桶或解碼器緩沖器208的大小(用位表示)。這個緩沖器大小不能大于解碼設(shè)備的物理緩沖器。F是初始的解碼器緩沖器充滿度(也用位表示),在解碼器開始從緩沖器中除去位之前需要其存在。F至少與代表初始幀的編碼數(shù)據(jù)的數(shù)量一樣多。如果不考慮處理時間(對于本例的來說,其目的在于可以認為它是瞬時的),F(xiàn)和R確定初始或啟動延遲D,其中,D=F/R秒。
這樣,在漏桶模型中,各個位以速率R進入解碼器緩沖器208,直到充滿度水平為F(即經(jīng)D秒),然后(在本例中為立即)除去第一幀所需要的位b0。各個位以速率R持續(xù)進入緩沖器,解碼器以某給定時間間隔除去后續(xù)幀的b1、b2…bn-1位,該間隔通常(但不一定)是每1/M秒,其中的M是視頻的幀速率。
圖3是說明位流的解碼器緩沖器充滿度與時間的圖表,該位流包含在漏桶的參數(shù)(R、B、F)中,如上所述,其中第i個幀的位的數(shù)量是bi。在圖3中,從緩沖器中除去經(jīng)編碼的視頻幀(通常根據(jù)視頻幀速率),如緩沖器充滿度降低所示。具體說,在時間ti除去bi位之前,立刻讓Bi成為解碼器緩沖器充滿度。一般的漏桶模型根據(jù)以下的公式來進行操作B0=FBi+1=min(B,Bi-bi+R(ti+1-ti)),i=0,1,2,…通常,ti+1-ti=1/M秒,其中的M是位流的幀速率(用幀/秒表示)。
如果解碼器緩沖器208不發(fā)生下溢(圖2),則具有參數(shù)(R,B,F(xiàn))的漏桶模型包含一個位流。由于編碼器與解碼器緩沖器充滿度彼此互補,因此,這等同于編碼器緩沖器204沒有溢出。但是,允許編碼器緩沖器204(漏桶)變空,或解碼器緩沖器208同樣可以變滿,這時,就沒有位進一步從編碼器緩沖器204被傳輸?shù)浇獯a器緩沖器208。這樣,當解碼器緩沖器208充滿時,它就停止接收位,這就是在以上第二個方程式公式中使用減運算符的原因。如以下關(guān)于可變的位速率(VBR)流的描述所述,由于它們是互補的,因此,充滿的解碼器緩沖器208意味著編碼器緩沖器204是空的。
注意,一個給定的視頻流可能包含在各種漏桶配置中。例如,如果視頻流包含在具有參數(shù)(R,B,F(xiàn))的漏桶中,那么,它也將被包含在具有一個更大的緩沖器(R,B’,F(xiàn))的漏桶中,其中,B’比B大;或者,它將被包含在具有更高的峰值傳輸速率(R’,B,F(xiàn))的漏桶中,其中,R’比R大。此外,對于任何位速率R’,存在一個緩沖器大小將包含(時限)視頻位流。在最差的情況下,即當R’接近零時,緩沖器大小將需要和位流本身一樣大。換言之,只要緩沖器大小足夠大,就可以按任何速率(不管片斷的平均位速率如何)來傳輸視頻位流。
圖4是關(guān)于一個給定的位流的最小緩沖器大小Bmin與峰值位速率Rmin的比較圖表,這采用了以上第二個公式,其中,將所需的初始緩沖器充滿度設(shè)定在總緩沖器大小的一個恒定部分。圖4中的曲線指出為了以峰值位速率r傳輸流,解碼器需要緩沖至少Bmin(r)個位。此外,從圖表中可以理解,更高的峰值速率要求較小的緩沖器大小,因此,縮短了啟動緩沖器延遲。或者,圖表指出如果解碼器緩沖器的大小是b,則傳輸位流所要求的最小的峰值速率是有關(guān)的Rmin(b)。而且,任何位流(例如,圖4中的位流)的(Rmin,Bmin)對的曲線呈分段線性和中凸。
根據(jù)本發(fā)明的一個方面,如果增強的編碼器202提供至少兩個曲線點,則通用參考編碼器210可以選擇一個點,或線性地在各個點之間內(nèi)插,或外插各個點,以達到略(但安全地)大于(Rmin,Bmin)的一些點(Rinterp,Binterp)。一個重要的結(jié)果是,在許多情況下,可以安全地減小緩沖器大小約相對于單個漏桶的一個數(shù)量級,該漏桶含有按其平均速率的位流,由此,同樣減少了延遲?;蛘撸瑢τ谙嗤难舆t,峰值傳輸速率可以減小(可能)4倍,或信號-噪聲比(SNR)可提高(可能)幾個dB。
為此,通過安排編碼器202生成至少兩組漏桶參數(shù)214(例如,(R1,B1,F(xiàn)1)、(R2,B2,F(xiàn)2)、…(RN,BN,F(xiàn)N)),來增強編碼器202,這些漏桶參數(shù)214對應(yīng)于速率-緩沖器曲線上的至少兩個點,它們對于給定的視頻或圖像片斷很有用(例如,相對于R和/或B的范圍方面可合理地分開)。然后,例如通過將這些漏桶參數(shù)設(shè)置內(nèi)插入初始流頭部中或利用某種頻帶以外的方式,增強的編碼器202將它們和其數(shù)量N一起提供給通用參考解碼器。注意,即使對于相對大的N(例如,幾十個桶,而2-4個桶通常將足以合理地代表R-B曲線)而言,當與典型的視頻或圖像數(shù)據(jù)進行比較時,也可以忽略提供該信息所必要的額外字節(jié)的數(shù)量(例如,N的一個字節(jié),加上8個字節(jié)/漏桶模型或參數(shù)設(shè)置)。
此外,注意,在較高的位速率下,內(nèi)容創(chuàng)建者可以決定在位流中的不同時間規(guī)定不同的漏桶模型,這在無論何時連接在傳輸期間失敗并在位流中間重新開始時都很有用。例如,可以在15分鐘的間隔提供漏桶模型,這樣,通過重新選擇、在合適的時間重新內(nèi)插或重新外插,解碼器可以按需要來改變其操作條件(例如,它的緩沖器大小或速率)。
可以由編碼器來選擇所需的值N(注意,如果N=1,則通用解碼器210將外插類似MPEG視頻緩沖檢驗符的點)。編碼器可以選擇預先選擇各個漏桶值并利用速率控制(確保符合各種漏桶限制)對位流進行編碼,先對位流編碼,然后使用上述公式來計算各組漏桶參數(shù)(包含處于R的N個不同值的位流),或進行這兩種操作。第一種方法可以被應(yīng)用于實況或即時(on-demand)傳輸,其他的方法可應(yīng)用于即時傳輸。
在執(zhí)行本發(fā)明的過程中,一旦在通用參考解碼器210處被接收,如果知道它可用的峰值位速率和/或它的物理緩沖器大小,解碼器210就可以確定它希望使用哪個漏桶?;蛘撸ㄓ脜⒖冀獯a器210可以線性地在其間內(nèi)插或線性地從這些點進行外插,以便為給定的配置找出一組合適的參數(shù)。圖5表現(xiàn)了兩種漏桶參數(shù)組及其線性內(nèi)插(R,B)值。為參考起見,經(jīng)計算的R-B曲線用細的虛線表示,而漏桶模型(RX,BX)和(RY,BY)中所提供的R和B值則用星號表示。從(RX,BX)到(RY,BY)的實線代表被插入的值。實線上所選的任何R或B配對將適當?shù)乇3?例如,不溢出或下溢)解碼器緩沖器208。也可以從這些點外插漏桶參數(shù),(由圖5中粗的虛線表示)并且,實線上所選的任何R或B配對還將適當?shù)乇3纸獯a器緩沖器208。
在點k與k+1之間內(nèi)插的緩沖器大小B遵從直線B=R-RkRk+1-RkBk+Rk+1-RRk+1-RkBk+1]]>其中,Rk<R<Rk+1。
同樣,可以線性地插入初始的解碼器緩沖器充滿度FF=R-RkRk+1-RkFk+Rk+1-RRk+1-RkFk+1]]>
其中,Rk<R<Rk+1。
保證所產(chǎn)生的具有參數(shù)(R,B,F(xiàn))的漏桶包含位流,因為(用數(shù)學方法可證明)最小的緩沖器大小Bmin在R和F中是中凸的,也就是說,對應(yīng)于任何中凸組合(R,F(xiàn))=a(Rk,F(xiàn)k)+(1-a)(Rk+1,F(xiàn)k+1)(其中,0<a<1)的最小的緩沖器大小Bmin小于或等于B=aBk+(1-a)Bk+1。
如上所述,當R大于RN時,漏桶(R,BN,F(xiàn)N)也將包含位流,從而當R≥RN時,BN和FN是所推薦的緩沖器大小和初始的解碼器緩沖器充滿度。如果R小于R1,則可以使用上限B=B1+(R1-R)T,其中T是用秒表示的流的時間長度??梢酝獠逶贜個點的范圍以外的這些(R,B)值。
應(yīng)該注意,解碼器不需要選擇、內(nèi)插或外插漏桶參數(shù),但另一個實體可以選擇用于將單個的設(shè)置發(fā)送到解碼器的各種參數(shù),然后,它將使用那一個設(shè)置。例如,通過提供諸如解碼器的要求等信息,服務(wù)器可以確定(通過選擇、內(nèi)插或外插)一組合適的漏桶參數(shù),以發(fā)送給解碼器,然后,解碼器可以只使用單個的一組參數(shù)來進行解碼。服務(wù)器或解碼器的代理也能夠選擇、內(nèi)插或外插漏桶信息,而解碼器無須查看一個以上的漏桶。換言之,服務(wù)器可以代替解碼器作決定,服務(wù)器和客戶解碼器可能會對各個參數(shù)進行商議。但是,一般而言,與本發(fā)明一致,根據(jù)至少兩個漏桶模型來事先或動態(tài)地確定一個合適的漏桶模型。
可以從最高和最低的充滿度值在解碼器緩沖器曲線中出現(xiàn)的時間,來計算關(guān)于給定位流的R-B曲線的各個值(例如圖3中所示的那些值)。具體說,對一個漏桶的參數(shù)(R,B,F(xiàn))漏桶中所包含的位流分別考慮解碼器緩沖器充滿度的最高值和最低值的兩個時間(tM,tm)??梢栽趲追N場合中達到充滿度的最高值和最低值,但要考慮tM<tm時的最大值(tM,tm)。假設(shè)適當?shù)赜嬎懵┩?,B是包含值R、F的位流的最小的緩沖器大小,那么,B=Σt=tMt=tm[b(t)-RM]=Σt=tMt=tmb(t)-nRM=-nRM+c,]]>其中,b(t)是在時間t時的幀的位的數(shù)量,M是用幀/秒表示的幀速率。在這個公式中,n是時間tM與tm之間的幀的數(shù)量,c是那些幀的位的總數(shù)。
這個公式可以作為一個點被插入直線B(r)中,其中,r=R,且-n/M是該線的斜度。有一個位速率范圍r∈[R-r1,R+r2],以便最大的一對值tM和tm將保持相同,從而以上的公式對應(yīng)于定義與位速率r有關(guān)的最小緩沖器大小B的一條直線。如果位速率r在以上的范圍以外,則值tM和/或tm中的至少一個值將發(fā)生變化,由此,如果r>R+r2,tM與tm之間的時間間隔將更小,定義B(r)的新直線中的值n也將更小,各條線的斜度將更大(較小負值)。如果r<R-r1,tM與tm之間的時間間隔將更大,定義B(r)的直線中的值n也將更大。于是,該線的斜度將更小(更大負值)。
位速率范圍的各個對(tM,tm)的值(或有關(guān)n的值)和c的一些值(對于給定的一對至少有一個值)可以存儲在位流的頭部中,這樣,可以使用以上公式來獲得分段線性B(r)曲線。此外,在編碼器已經(jīng)生成位流之后,這個公式可以用來簡化漏桶模型參數(shù)的計算。
在測試中,產(chǎn)生圖5中的位流,形成797Kbps的平均位速率。如一般在圖5中所示,在797Kbps的恒定傳輸速率下,解碼器將需要約18,000Kbits(RX,BX)的緩沖器大小,初始的解碼器緩沖器充滿度等于18,000Kbits,啟動延遲大約為22.5秒。這樣,該編碼(不利用速率控制器而產(chǎn)生)變換位直到22.5秒,以便對其整體的編碼長度本質(zhì)上實現(xiàn)最佳的、可能的質(zhì)量。
圖5也表現(xiàn)了在2,500Kbps的峰值傳輸速率(例如,2x CD的視頻位速率部分)下,解碼器將只需要2,272Kbits的緩沖器大小(Ry,By),這對于消費級硬件設(shè)備而言是合理的。當初始的緩沖器充滿度等于2,272Kbits時,啟動延遲將只有大約0.9秒。
這樣,對于這個編碼而言,兩個漏桶模型通??赡苁怯杏玫?,例如,(R=797Kbps,B=18,000Kbits,F(xiàn)=18,000Kbits)和(R=2,500Kbps,B=2,727Kbits,F(xiàn)=2,272Kbits)。這第一個漏桶參數(shù)組將允許視頻在一個恒定的位速率信道上傳輸,延遲大約為22.5秒。而這個延遲對于許多情況而言可能太大,但它對于例如互聯(lián)網(wǎng)的電影流而言也許可以接受。第二組漏桶參數(shù)將允許視頻在具有峰值速率為2,500Kbps的共享網(wǎng)絡(luò)上傳輸,或者將允許從2x CD進行本地重放(延遲約為0.9秒)。這種1秒之下的延遲對于通過類似VCR(盒式磁帶錄象機)的功能性的隨機存取重放而言是可接受的。
當考慮到在位流中只規(guī)定第一個漏桶而不是第二個漏桶時會發(fā)生什么情況,就會明白各種好處。在這種情況下,即使當在具有峰值位速率2,500Kbps的信道上進行重放時,解碼器也將使用大小為18,000Kbits的緩沖器,這樣,延遲將為F/R=18,000Kbits/2,500Kbps=7.2秒??梢岳斫?,對于隨機存取重放(例如,具有類似VCR的功能性)而言,這種延遲是不可接受的。但是,如上所述,如果附加地規(guī)定第二個漏桶,那么,在速率為2,500Kbps時,緩沖器大小下降到2,272Kbits,延遲下降到0.9秒。
另一方面,如果只規(guī)定第二個漏桶(而不是第一個漏桶),那么,在恒定的傳輸速率797Kbps下,即使是智能解碼器也會被迫使使用遠遠大于必要大小的緩沖器,以確保緩沖器不會溢出,即,B’=B+(R-R’)T=2,272Kbits+(2,500Kbps-797Kbps)×130秒=223,662Kbits。即使在給定設(shè)備中可獲得如此多的存儲器,但這對應(yīng)于282秒的初始延遲或接近5分鐘,這是無法接受的。但是,如上所述,如果也規(guī)定了第一個漏桶,那么,在797Kbps的速率下,緩沖器大小下降到18,000Kbits,延遲下降到22.5秒。
而且,當規(guī)定兩個漏桶時,對797Kbps到2,500Kbps之間的任何位速率,解碼器可以在兩個漏桶之間進行線性插入(使用以上的插入公式),從而在任何給定的速率都實現(xiàn)近似最小的緩沖器大小和延遲。與在797Kbps到2,500Kbps之間只具有單個的漏桶的外插相比,外插(在圖5中由粗虛線表示)在797Kbps以下和2,500Kbps以上也更加有效率。
如上述例子所示,甚至僅有兩組漏桶參數(shù)就可以提供緩沖器大小方面數(shù)量級的減小(例如,在一種情況下,從223,662到18,000Kbits;在另一種情況下,從18,000到2,272Kbits),并在給定的峰值傳輸速率時,可以提供使延遲有數(shù)量級的減少(例如,在一種情況下,從281到22.5秒;在另一種情況下,從7.2到0.9秒)。
或者,也可以對給定的解碼器緩沖器大小減小峰值傳輸速率。實際上,從圖5中顯而易見,如果可以通過內(nèi)插和/或外插多個漏桶來獲得R-B曲線,那么,具有固定的物理緩沖器大小的解碼器就可能選擇能安全地為位流解碼所需要的最小峰值傳輸速率,而不會發(fā)生解碼器緩沖器下溢。例如,如果解碼器有一個大小為18,000Kbits的固定的緩沖器,則用于編碼的峰值傳輸速率可以是低至797Kbps。但是,如果只規(guī)定第二個漏桶(而不是第一個漏桶),那么,解碼器可以將位速率減小到不小于R’=R-(B’-B)/T=2,500Kbps-(18,000Kbits-2,272Kbits)/130秒=2,379Kbps。在這種情況下,對于相同的解碼器緩沖器大小而言,與使用單個的漏桶相比,只使用兩個漏桶可將峰值傳輸速率減小4倍。
在相同的平均編碼速率下,具有多個漏桶參數(shù)也可以改善重建的視頻的質(zhì)量??紤]編碼過程可用兩個漏桶的情況。如上所述,利用解碼器處的該信息,就可以重放編碼過程,如果峰值傳輸速率是797Kbps,則延遲是22.5秒;如果峰值傳輸速率是2,500Kbps,則延遲是0.9秒。
但是,如果不具備第二個漏桶,則在2,500Kbps的條件下,延遲從0.9秒增加到7.2秒。在沒有第二個漏桶的條件下將延遲減回到0.9秒的一種方法是通過將(第一個漏桶的)緩沖器大小從18,000Kbits減少到(0.9秒)×(2,500Kbps)=2,250Kbits,來利用速率控制對片斷重新編碼。這將確保如果峰值傳輸速率是2,500Kbps,則延遲只有0.9秒,但797Kbps處的延遲也將從22.5秒減少到2.8秒。但是,結(jié)果是,質(zhì)量(SNR)也將下降一定量——估計是幾個dB,尤其是對具有大的動態(tài)范圍的片斷而言。
這樣,規(guī)定第二個漏桶可以將SNR增加(可能)幾個dB,除了規(guī)定第二個漏桶的可忽略數(shù)量的額外的位/片斷以外,平均位速率不會發(fā)生變化。在每個峰值傳輸速率的重放上可察覺這個SNR的增加。
當單個的編碼在具有不同峰值速率的信道上加以傳輸或傳輸?shù)骄哂胁煌奈锢砭彌_器大小的設(shè)備時,為廣義通用參考解碼器規(guī)定多個漏桶的好處便實現(xiàn)了。但是,在實際應(yīng)用中,這正在變得越來越普通。例如,被進行離線編碼并被存儲在磁盤上的內(nèi)容經(jīng)常被進行本地重放,也經(jīng)常在具有不同峰值速率的網(wǎng)絡(luò)上傳輸。即使對于本地重放來說,不同的驅(qū)動器速度(例如,1xCD~8xDVD)也會影響峰值傳送速率。而且,通過網(wǎng)絡(luò)連接的峰值傳輸速率也根據(jù)限制鏈路的速度而動態(tài)地發(fā)生變化,限制鏈路通常在最終用戶附近(例如,100或10baseT以太網(wǎng)、T1、DSL、ISDN、調(diào)制解調(diào)器等)。重放設(shè)備的緩沖器容量也有顯著的變化——從具有干兆字節(jié)的緩沖器空間的桌上型計算機,到具有小幾個數(shù)量級的緩沖器空間的小型消費電子設(shè)備。利用本發(fā)明的多個漏桶和所提議的通用參考解碼器,相同的位流可以在各種信道上以最少啟動延遲,最小解碼器緩沖器要求,最大可能的質(zhì)量進行傳輸。這不僅可應(yīng)用于離線編碼的視頻,而且可應(yīng)用于通過不同的信道同時向不同的設(shè)備廣播的實況視頻。簡而言之,所提議的廣義通用參考解碼器為現(xiàn)存的位流增添了顯著的靈活性。
從前面詳細的描述中可見,與原先標準中的解碼器相比,提供了一種改進的通用參考解碼器。該廣義通用參考解碼器僅從編碼器要求少量的信息(例如,在位流的頭部),以便為位流通過現(xiàn)今網(wǎng)絡(luò)(其中,帶寬是可變帶寬)和/或終端(具有各種位速率和緩沖容量)的傳輸提供了更高的靈活性。本發(fā)明的參考解碼器實現(xiàn)了這些新的方案,而為使對可用的帶寬的傳輸延遲減少到最小值,此外,實際上將傳送到設(shè)備(具有給定的物理緩沖器大小限制)的信道位速率要求減到最少。
本發(fā)明容許各種修改和替代構(gòu)造,其某些所展示的實施例在附圖中被示出并已經(jīng)在上文詳細地描述過。但是,應(yīng)該理解,這不是意在將本發(fā)明局限于所揭示的各種具體的形式,而相反,本發(fā)明包括其精神和范圍內(nèi)的所有修改、替代構(gòu)造和同等物。
權(quán)利要求
1.一種計算機實現(xiàn)的方法,其特征在于,包括產(chǎn)生用于單個視頻位流的給定視頻的多組參考解碼器參數(shù),其中每組所述參考解碼器參數(shù)包括一個速率參數(shù)和一個解碼器的緩沖器大小參數(shù),以及提供所述多組參考解碼器參數(shù)和單個視頻位流,以便于使用所述多組參考解碼器參數(shù)中的任意組參數(shù)來確定一個操作條件,其中所述操作條件指示了用于對所述單個視頻位流的給定視頻的經(jīng)編碼數(shù)據(jù)進行解碼的峰值速率或解碼器的緩沖器大小,并且其中,所述多組參考解碼器參數(shù)可共同用于確定所述操作條件。
2.如權(quán)利要求1所述的方法,其特征在于,進一步包括提供一個數(shù)量參數(shù)以指示所提供的多組參考解碼器參數(shù)的數(shù)量。
3.如權(quán)利要求1所述的方法,其特征在于,進一步包括產(chǎn)生多組附加的參考解碼器參數(shù);以及提供所述多組附加的參考解碼器參數(shù)和單個視頻位流,以便于使用所述多組附加的參考解碼器參數(shù)中的任意組參數(shù)來重新確定一個操作條件。
4.如權(quán)利要求1所述的方法,其特征在于,所述多組參考解碼器參數(shù)配置在給定視頻的流頭部。
5.如權(quán)利要求1所述的方法,其特征在于,所述多組參考解碼器參數(shù)配置在給定視頻的頻帶外。
6.一種計算機可實現(xiàn)方法,包括產(chǎn)生用于單個視頻位流的給定視頻的多組參考解碼器參數(shù),其中每組所述參考解碼器參數(shù)包括一個速率參數(shù)和一個解碼器的緩沖器大小參數(shù),發(fā)送所述多組參考解碼器參數(shù);以及使用所述多組參考解碼器參數(shù),以確定一個操作條件,所述操作條件指示了用于對給定視頻的經(jīng)編碼數(shù)據(jù)進行解碼的峰值速率或解碼器的緩沖器大小,并且其中,所述多組參考解碼器參數(shù)可共同用于確定所述操作條件。
7.如權(quán)利要求6所述的方法,其特征在于,進一步包括發(fā)送一個數(shù)量參數(shù)以指示所發(fā)送的多組參考解碼器參數(shù)的數(shù)量。
8.如權(quán)利要求6所述的方法,其特征在于,進一步包括產(chǎn)生多組附加的參考解碼器參數(shù);發(fā)送所述多組附加的參考解碼器參數(shù);以及使用所述多組附加的參考解碼器參數(shù)中的任意組參數(shù)來重新確定一個操作條件。
9.如權(quán)利要求6所述的方法,其特征在于,所述多組參考解碼器參數(shù)在所述單個視頻位流的給定視頻的流頭部發(fā)送。
10.如權(quán)利要求6所述的方法,其特征在于,所述多組參考解碼器參數(shù)在給定視頻的頻帶外發(fā)送。
11.如權(quán)利要求1-10中任一權(quán)利要求所述的方法,其特征在于,由一編碼器在對所述給定視頻編碼后執(zhí)行所述產(chǎn)生步驟。
12.如權(quán)利要求11所述的方法,其特征在于,所述編碼是離線編碼。
13.如權(quán)利要求1-10中任一權(quán)利要求所述的方法,其特征在于,由一編碼器在對所述給定視頻編碼之前執(zhí)行所述產(chǎn)生步驟。
14.如權(quán)利要求13所述的方法,其特征在于,所述編碼在對給定視頻的實況視頻傳輸期間進行。
15.如權(quán)利要求13所述的方法,其特征在于,所述編碼是離線編碼。
16.如權(quán)利要求1-10中任一權(quán)利要求所述的方法,其特征在于,所述峰值速率對應(yīng)于在解碼期間所使用的盤驅(qū)動器的驅(qū)動速度。
17.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述峰值速率對應(yīng)于在解碼期間的網(wǎng)絡(luò)連接的傳輸速率。
18.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述多組參考解碼器參數(shù)中至少一組的速率參數(shù)和解碼器緩沖器的大小參數(shù)被規(guī)定為支持給定視頻的互聯(lián)網(wǎng)流技術(shù)。
19.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述多組參考解碼器參數(shù)中至少一組的速率參數(shù)和解碼器緩沖器的大小參數(shù)被規(guī)定為支持給定視頻的隨機存取重放功能。
20.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述確定步驟包括從所述多組參考解碼器參數(shù)中選擇一參數(shù)。
21.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述確定步驟包括在所述多組參考解碼器參數(shù)的兩組中的參數(shù)之間進行內(nèi)插。
22.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述確定步驟包括在所述多組參考解碼器參數(shù)的一組中的參數(shù)之間進行外插。
23.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述峰值速率是最小峰值速率,且所述確定步驟包括根據(jù)所述多組參考解碼器參數(shù)中的一個或更多的解碼器緩沖器大小參數(shù)來設(shè)定所述最小峰值速率。
24.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述確定步驟包括根據(jù)所述多組參考解碼器參數(shù)中的一個或更多的速率參數(shù)設(shè)定所述解碼器緩沖器的大小。
25.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,每個所述多組參考解碼器參數(shù)進一步包括初始緩沖器的充滿度參數(shù)。
26.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,每個所述多組參考解碼器參數(shù)表示不同的給定視頻的漏桶模型。
27.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,每個所述多組參考解碼器參數(shù)表示沿給定視頻的速率-解碼器緩沖器大小曲線的不同的點。
28.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述給定視頻是完整的視頻序列。
29.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,所述給定視頻是視頻序列的一部分。
30.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,每個所述多組參考解碼器參數(shù)的解碼器的緩沖器大小參數(shù)是不同的。
31.如權(quán)利要求1-10任一權(quán)利要求所述的方法,其特征在于,每個所述多組參考解碼器參數(shù)的速率參數(shù)是不同的。
32.一種存儲計算機可執(zhí)行指令的計算機可讀媒體,所述指令使得經(jīng)編程的計算機系統(tǒng)執(zhí)行如權(quán)利要求1-10任一權(quán)利要求所述的方法。
33.一種計算機系統(tǒng),適用于執(zhí)行如權(quán)利要求1-10任一權(quán)利要求所述的方法。
全文摘要
一種方法和系統(tǒng)包括一個改進過的通用參考解碼器,該通用參考解碼器根據(jù)給定位流的任何數(shù)量的各組速率與緩沖器參數(shù)來進行操作。每組參數(shù)表現(xiàn)了漏桶模型的特征,并包含代表傳輸位速率、緩沖器大小和初始的解碼器緩沖器充滿度的三種參數(shù)。編碼器提供至少兩組這些參數(shù),由此,解碼器選擇一種參數(shù)或在它們之間內(nèi)插,以便以任何所需的峰值位速率、緩沖器大小或延遲進行操作。通用參考解碼器可以選擇對位流解碼而不發(fā)生緩沖器下溢或溢出的最小的緩沖器大小與對應(yīng)的延遲,或者,可以按所要求的最小峰值傳輸速率來進行選擇和操作,或介于兩者之間。在實際應(yīng)用中,緩沖器大小、延遲和/或峰值傳輸速率可以減小很多倍,并且/或者,可以提高信號-噪聲比(SNR)。
文檔編號G06T1/00GK1848964SQ200610079930
公開日2006年10月18日 申請日期2002年9月19日 優(yōu)先權(quán)日2001年9月19日
發(fā)明者P·A·周, J·R·科爾伯拉 申請人:微軟公司