專利名稱:視頻傳輸?shù)闹谱鞣椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及例如在電信網(wǎng)絡(luò)上的數(shù)字編碼視頻信號的傳輸,更具體地,涉及使用壓縮算法進(jìn)行了編碼的視頻信號的傳輸。
背景技術(shù):
壓縮算法的基本原理是利用原始視頻信號的固有冗余性來減少需要傳輸?shù)谋忍財(cái)?shù)。在諸如ITU H.263和ISO MPEG標(biāo)準(zhǔn)的國際標(biāo)準(zhǔn)中定義了許多這樣的算法。Ghanbari,M.,Video Coding,an introduction to standardcodecs,IEE,London,1999中給出了對這些算法的有用評論。
冗余度通常隨著圖像內(nèi)容而變化,結(jié)果壓縮效率也是如此,這造成每幀中的編碼比特?cái)?shù)的變化。一種選擇是如在所謂的可變比特率(VBR)系統(tǒng)(其中傳輸比特率隨時(shí)間顯著變化)中那樣,將比特以其產(chǎn)生時(shí)的狀態(tài)進(jìn)行傳輸。另一種選擇,即恒定比特率(CBR)系統(tǒng),是在發(fā)送方和接收方處均采用緩沖器,以消除這些波動(dòng),并且將比特以恒定速率從發(fā)送緩沖器傳輸?shù)浇邮站彌_器。CBR系統(tǒng)利用反饋機(jī)制來改變產(chǎn)生數(shù)據(jù)的速率(例如,通過調(diào)整所使用的量化粗度,或者減少幀),以防止緩沖器溢出。緩沖的使用必然引起延遲的引入、開始等待時(shí)間(LOSlatencyof start)的增加,即在能夠開始解碼并顯示圖像之前,用戶不得不等待直到將接收緩沖器填充到所需水平。反饋機(jī)制使圖像質(zhì)量降低。
已經(jīng)提議采用緩沖度來降低(而不是完全消除)比特率變化(例如參見Furini,M.and Towsley,D.F.,“Real-Time Traffic transmissions over theInternet”,IEEE Transactions on Multimedia,Vol.3,No.1,March 2001)。
當(dāng)在電信網(wǎng)絡(luò)、特別是諸如因特網(wǎng)的分組網(wǎng)絡(luò)上傳輸時(shí)主要考慮的是網(wǎng)絡(luò)擁塞的影響,其中丟包和不可預(yù)知的延遲可能引起問題。這使得出現(xiàn)了采用預(yù)留系統(tǒng)的建議,其中發(fā)送方能夠請求網(wǎng)絡(luò)對于其一時(shí)間段的傳輸分配指定的保證比特率。在因特網(wǎng)工程任務(wù)組(IETFInternetEngineering Task Force)文獻(xiàn)RFC 2205中描述了稱為“RSVP”的這樣一種系統(tǒng)。然而,也可以使用其他系統(tǒng),如差分業(yè)務(wù)加速轉(zhuǎn)發(fā)(ExpeditedForwarding of Differentiated Service)或CR-LDP。
在現(xiàn)場視頻饋送的情況下,正在編碼的比特流的未來特性是未知的;但是利用已記錄的資料,則能使它們成為已知的。預(yù)留系統(tǒng)允許改變預(yù)留比特率的大小,這提供了基于所獲知的編碼資料來判定在任何時(shí)候應(yīng)該預(yù)留多少網(wǎng)絡(luò)容量的策略。一種簡單的方法是計(jì)算峰值(VBR,未緩沖的)比特率,并且在整個(gè)傳輸期間都請求該比特率,但是這浪費(fèi)了網(wǎng)絡(luò)容量,當(dāng)然,所請求的容量越高,網(wǎng)絡(luò)無法提供該容量從而拒絕預(yù)留請求的可能性就越大。另一種使待請求比特率最小的簡單方法是計(jì)算整個(gè)傳輸?shù)钠骄忍芈?,并請求該比特率;然而這將導(dǎo)致在接收方處需要非常大的緩沖器,更加重要的是(假定現(xiàn)今大量的存儲器相對便宜)導(dǎo)致大的LOS。在上面引用的Furini和Towsley的文章中考慮了修改峰值速率的方法。他們的方案包括識別視頻序列中的峰值速率達(dá)到最大值的點(diǎn),并且對于該點(diǎn)之前的時(shí)間段請求該速率。然后找出該序列剩余部分上的最大峰值速率,同時(shí)請求該(較低)速率。在整個(gè)序列上以相同方式繼續(xù)進(jìn)行該處理。該文章還建議可以采用緩沖度,從而在采用預(yù)留算法之前降低有效的峰值速率。雖然與單峰值速率系統(tǒng)相比,該系統(tǒng)提高了網(wǎng)絡(luò)使用效率,但是仍然存在很多被浪費(fèi)(即被預(yù)留而未使用)的網(wǎng)絡(luò)容量,并且當(dāng)然,如果最大峰值速率接近序列末端而出現(xiàn),則益處很小。但它的確具有如下優(yōu)點(diǎn),即所請求網(wǎng)絡(luò)容量下降,特別是預(yù)留請求從來不會要求超過在先請求比特率的比特率,從而降低了預(yù)留請求被拒絕的風(fēng)險(xiǎn)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,提供了一種傳輸視頻信號的數(shù)字序列的方法,所述視頻信號已被使用壓縮算法編碼為使得每幀的編碼比特?cái)?shù)不是恒定的,所述方法包括以下步驟
(a)將所述序列劃分為多段,其中第一段是序列開始處的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的序列開始處部分的每幀平均編碼比特?cái)?shù),并且其中各個(gè)隨后段是緊接前一段的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的緊接前一段的部分的每幀平均編碼比特?cái)?shù);(b)確定各段的比特率;(c)以所確定的比特率傳輸信號。
另一方面,本發(fā)明提供了一種傳輸視頻信號的數(shù)字序列的方法,所述視頻信號已被使用壓縮算法編碼為使得每幀的編碼比特?cái)?shù)不是恒定的,其中源視頻被編碼為分別具有不同壓縮比的第一序列和第二序列,所述方法包括以下步驟(a)分析多個(gè)流中的至少一個(gè)以將其劃分為多段;(b)在步驟(a)中所標(biāo)識出的段間過渡附近選擇一個(gè)轉(zhuǎn)換點(diǎn);(c)如果在步驟(a)中沒有分析所述第一序列,則分析所述第一序列以將其劃分為多段;(d)對于直到所述切換點(diǎn)為止的所述第一序列的該段或各段確定比特率;(e)以所確定的比特率來傳送直到所述轉(zhuǎn)換點(diǎn)為止的所述第一序列的信號;(f)分析從所述轉(zhuǎn)換點(diǎn)開始的包括所述第二序列的已修改序列,以將其劃分為多段;(g)對于所述已修改序列的各段確定比特率;(h)以所確定的比特率來傳送所述已修改序列的信號;其中,通過將所述相關(guān)序列劃分為多段來逐個(gè)執(zhí)行所述分析,其中,所述第一段是序列開始處的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的序列開始處部分的每幀平均編碼比特?cái)?shù),并且其中,各個(gè)隨后段是緊接前一段的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的緊接前一段的部分的每幀平均編碼比特?cái)?shù)。
本發(fā)明的其他方面將在下面的從屬權(quán)利要求中進(jìn)行闡述。
現(xiàn)在將參考附圖借助于示例來描述本發(fā)明的某些實(shí)施例,其中圖1A到3C的曲線圖示出了執(zhí)行測試的結(jié)果;圖4是用于實(shí)現(xiàn)本發(fā)明的裝置的一種形式的框圖;圖5是示出圖4裝置的操作的流程圖;以及圖6到10是示出進(jìn)一步測試的結(jié)果的曲線圖。
具體實(shí)施例方式
考慮接收方處的從接收方開始解碼幀g的時(shí)刻tg到接收方開始解碼幀h的時(shí)刻th的某個(gè)任意時(shí)間段(但是等于幀周期的整數(shù)倍)。該段的持續(xù)時(shí)間是h-g。此外,假定在該時(shí)間段內(nèi)的傳輸速率為A比特/幀周期。
很顯然,在時(shí)刻tg,接收方一定已接收了直到并包括幀g的所有幀的比特,即 個(gè)比特。
其中dj是由編碼器對于幀j產(chǎn)生的編碼比特?cái)?shù)。
但是假定接收方在時(shí)刻g之前已接收了p個(gè)額外的比特,即總數(shù)為 個(gè)比特。
在接收方開始解碼幀k的任意時(shí)刻tk(tg≤tk≤th),接收方又接收了(k-g)A個(gè)比特,因此在時(shí)刻tk所接收的所有比特等于Σj=0gdj+p+(k-g)A.]]>此時(shí),接收方需要具有直到并包括幀k的所有幀的所有比特,即在時(shí)刻tk所需的總比特等于 由于所接收的比特?cái)?shù)必須至少等于所需數(shù)目,所以需要滿足以下條件來避免緩沖器下溢Σj=0gdj+p+(k-g)A≥Σj=0kdj]]>或者
p+(k-g)A≥Σj=g+1kdj.]]>如果無需傳輸預(yù)載比特p來實(shí)現(xiàn)該目的,則要求(k-g)A≥Σj=g+1kdj]]>或者A≥1(k-g)Σj=g+1kdj.]]>因此,對于k(g+1≤k≤h)的任何值來說,傳輸速率A一定要大于或者等于幀g+1到k中的每幀的平均產(chǎn)生比特,如果A≥=Maxk=g+1h{1(k-g)Σj=g+1kdj}]]>則可以實(shí)現(xiàn)該條件。
該速率的使用意味著在該段內(nèi)傳送的比特?cái)?shù)(h-g)A將超過該段內(nèi)產(chǎn)生的比特?cái)?shù),除非出現(xiàn)最大值k=h,即在該段的末尾。假設(shè)在經(jīng)過了最大速率之后仍繼續(xù)使用由此計(jì)算出的傳輸速率似乎遠(yuǎn)非絕對必要的,下面要描述的本發(fā)明的第一版本旨在以這些最大值總在段末端出現(xiàn)的方式將要傳輸?shù)臄?shù)據(jù)劃分為多段。
將要描述的第一方法用于在諸如因特網(wǎng)的分組網(wǎng)絡(luò)上傳輸已經(jīng)利用壓縮算法(諸如MPEG)進(jìn)行了編碼的存儲視頻資料。預(yù)先假定該網(wǎng)絡(luò)具有用于預(yù)留比特率容量的設(shè)置。本發(fā)明旨在以這種方式確定要用作時(shí)間函數(shù)的比特率,以實(shí)現(xiàn)-小的開始等待時(shí)間;-低傳輸比特率;以及-高傳輸效率(即低損耗);但是由于存在需求沖突,所以任何解決方案都必須是折衷的。
在該實(shí)例中,假定對可選擇的比特率不存在約束,并且假定傳輸所用的比特率和網(wǎng)絡(luò)上預(yù)留的比特率是相同的。
該第一版本還受到所請求的比特率不能增加的約束,即其是時(shí)間的單調(diào)遞減函數(shù);正如上面所示,這對降低預(yù)留故障的風(fēng)險(xiǎn)是希望的。
由于在該解決方案中,巨大的存儲器硬件對于當(dāng)前的使用者不是問題,所以減少解碼器中所需的緩沖器大小不是主要關(guān)心的問題,盡管事實(shí)上,與使用平均比特率來實(shí)現(xiàn)VBR視頻傳輸相比,該方法也極大地降低了所需的緩沖器大小。甚至在實(shí)際中很少遇到的最不利情況下,所需的緩沖器大小也不會大于在以平均比特率傳輸VBR視頻流時(shí)所需的緩沖器大小。
下面的算法確定要使用的“傳輸函數(shù)(“FOT”)”。
我們假定在視頻序列中存在N個(gè)幀,各幀的編碼比特?cái)?shù)分別是d0、d1、……、dN-1。
正如上面所述,將該算法約束為傳輸函數(shù)決不能增加,而只能降低。
從概念上講,在FOT中的任何幀間隔處都可能出現(xiàn)傳輸速率的變化。實(shí)際上,可能根據(jù)所使用的特定預(yù)留系統(tǒng)的約束來限制可改變速率的頻度;然而,利用單調(diào)遞減FOT,由于速率變化延遲的影響僅在于預(yù)留比實(shí)際需要的容量更多的容量,所以速率變化延遲(盡管浪費(fèi)了網(wǎng)絡(luò)容量)不會導(dǎo)致任何質(zhì)量損失。該算法的第一步驟是找出FOT具有多少“臺階”,并且各臺階何時(shí)出現(xiàn)。
首先,我們定義Ai=Σj=0idj(i+1)]]>其表示從開始到幀i且包括幀i的視頻序列的平均比特率。然后,計(jì)算A0、A1、……、AN-1,這些值中值i具有最大的Ai值。假定該值是k0。將第一“臺階”邊界定義為出現(xiàn)在幀k0的末端。這意味著直到幀k0末端為止,F(xiàn)OT需要其最高的傳輸速率。
在找出第一“臺階”之后,將幀(k0+1)視為隨后多幀的“第一”幀,并且對于i=k0+1,k0+2,...N-1計(jì)算Ai+1(1)。計(jì)算該值的公式是Ai(1)=Σj=k0+1idj(i-k0)]]>或者,在一般情況下
Ai(q)=Σj=kq-1+1idj(i-kq-1)]]>再次,將幀k1末端(k1是相應(yīng)的值i)處的最大值選擇為第二“臺階”邊界。重復(fù)上述過程直至到達(dá)幀N-1處的最后“臺階”邊界。一般來說,這會產(chǎn)生M個(gè)值km(m=0,…M-1)(其中kM-1總是等于N-1),這可以視為將視頻序列劃分為M-1個(gè)段段0包括幀0到k0;其它各段m包括幀km-1+1到km。
該算法第二階段的目的是為各個(gè)“臺階”的“級別”選擇適當(dāng)?shù)膫鬏斔俾?。這樣,理論上講,能夠確保在各個(gè)“臺階”末端之前傳遞所有所需比特(即使不包括任何預(yù)載比特)的最低速率是組成該段的幀的比特率的平均。更低速率必然需要預(yù)載比特,結(jié)果導(dǎo)致更高的LOS,而更高速率則可能浪費(fèi)網(wǎng)絡(luò)容量。同時(shí),更高速率一定會導(dǎo)致無法預(yù)留資源的更大風(fēng)險(xiǎn)。
存在M個(gè)段,m=0,1,…M-1。同時(shí),定義Si是段i中產(chǎn)生的比特總數(shù),即 Ri是段i中FOT的傳輸速率;(注意k0=k0+1)Ki是段i中的幀數(shù),即ki-ki-1;在這種情況下,所需速率僅僅是平均速率Ri=Si/Ki;i=1,2...M-1。
如果我們定義K-1=-1,則該方法也可以用于計(jì)算段0的速率R0。
應(yīng)當(dāng)注意,在MPEG視頻編碼中,第一幀總是I幀,而且其產(chǎn)生比P或B幀更多的比特。因此,通常計(jì)算結(jié)果顯示第一段僅包括一個(gè)幀,并且傳輸速率R0遠(yuǎn)大于R1。由于用戶可以容易地等待幾幀間隔,以具有更高的資源預(yù)留成功的機(jī)會,所以最好設(shè)置R0=R1。
第三步驟在確定了整個(gè)FOT之后,可以確定解碼器處所需的緩沖器大小。
下面描述可選速率受到約束的經(jīng)修改的第二版本。例如,該約束可以是速率一定是每幀比特的整數(shù)倍,或者更一般地,該速率可以是多個(gè)離散速率之一。在分析過程中,我們將使用如下定義的量化算符
Q+(X)表示大于或等于X的最低允許速率(也稱為“上限”速率);Q-(X)表示小于或等于X的最高允許速率(也稱為“下限”速率)。
下面將討論這兩個(gè)選項(xiàng)(a)上舍入到上限速率在這種情況下,所使用的速率可以變得高于特定段的絕對必要速率,這可以提供機(jī)會來對于隨后段使用較低速率;(b)下舍入到下限速率在這種情況下,所使用的速率可以變得低于特定段的必要速率,這導(dǎo)致需要對于前一段使用較高速率。
首先考慮上限選項(xiàng)。我們首先將原始FOT中的第一“臺階”的“高度”的上限值定義為新FOT中的經(jīng)過改進(jìn)(refined)的第一“臺階”的“高度”。應(yīng)當(dāng)注意,這樣,在第一“臺階”之后,將多于屬于第一“臺階”的幀比特總數(shù)的比特傳送到接收方。因此,當(dāng)我們改進(jìn)第二“臺階”時(shí),我們應(yīng)當(dāng)將屬于后續(xù)“臺階”的、但已在先前“臺階”中傳輸?shù)谋忍財(cái)?shù)除外,并且重新計(jì)算第二“臺階”的平均速率。如果新的平均比特率的“上限值”不小于舊的第三“臺階”的平均比特率的“上限值”,就將其規(guī)定為經(jīng)過改進(jìn)的第二“臺階”的“高度”。否則,我們將舊的第三“臺階”的平均比特率的“上限值”規(guī)定為經(jīng)過改進(jìn)的第二“臺階”的“高度”。遵循該過程直到固定了經(jīng)過改進(jìn)的最后“臺階”的“高度”為止。由于其總是采用各個(gè)“臺階”的“上限值”,所以可以將VBR視頻流傳輸實(shí)現(xiàn)為比視頻序列持續(xù)時(shí)間短幾幀間隔。通過對基于新FOT的傳輸進(jìn)行模擬,可以確切地指定FOT的生存期。一旦實(shí)現(xiàn)了VBR視頻流傳輸,就可以立即釋放預(yù)留的網(wǎng)絡(luò)資源。因此,仍然保證了100%的帶寬利用率。利用經(jīng)過改進(jìn)的第一“臺階”的“高度”,可以精確地重新計(jì)算LOS。最后,通過對于該傳輸過程的模擬,還可以固定防止下溢的所需緩沖器大小。
所采用的處理過程如下。如前所述,繼續(xù)劃分為多段。
除了上面定義的量Si、Ri、Ki之外,我們還引入Ri1,即段i中的傳輸速率的臨時(shí)值。
I.計(jì)算所有平均速率Ri1=Si/Ki;i=0,1...M-1]]>II.將段0的速率設(shè)置為R0=Q+(R01)]]>
(應(yīng)當(dāng)注意如果如前所述希望對于第一段使用較低速率,則可以以段1開始)III.通過在量化之前減去在前一段中傳輸?shù)念~外比特來設(shè)置段1的速率R1=Q+{R11-(R0-R01)}]]>或者=Q+{R21}]]>哪個(gè)較大選哪個(gè)。
IV.對于剩余的段i=2,...M-1Ri=Q+{Ri1-(Ri-1-Ri-11)}]]>或者=Q+{Ri+1l}]]>哪個(gè)較大選哪個(gè)。自然地,對于i=M-1不會出現(xiàn)第二選擇。
將要描述的第三版本使用下限速率。在這種情況下,必須以從最后一個(gè)“臺階”開始的相反順序來執(zhí)行該處理。這是必須的,以使得不能在特定段中傳輸?shù)谋忍乜梢栽谙惹岸沃刑崆皞鬏?。具體過程為首先將最后“臺階”的平均比特率的下限值定義為新FOT中的經(jīng)過改進(jìn)的最后“臺階”的新傳輸速率。然后可以確定經(jīng)過改進(jìn)的最后“臺階”所需的、但無法傳輸?shù)谋忍財(cái)?shù)。先前“臺階”應(yīng)當(dāng)保證在新的最后“臺階”的FOT開始之前傳輸該數(shù)目的額外比特。因此,當(dāng)我們改進(jìn)倒數(shù)第二“臺階”時(shí),為此目的必須承載該臺階自身所需的比特加上最后“臺階”所需的額外比特?cái)?shù)。因此,必須為倒數(shù)第二“臺階”重新計(jì)算新的平均比特率。如果倒數(shù)第二“臺階”的新平均比特率的下限值不大于原始FOT中的倒數(shù)第三“臺階”的平均比特率的下限值,則將其定義為新的倒數(shù)第二“臺階”的“高度”。否則,將舊的倒數(shù)第三“臺階”的平均比特率下限值定義為新的倒數(shù)第二“臺階”的“高度”。遵循該過程直到第一“臺階”為止,由此實(shí)現(xiàn)了改進(jìn),并獲得了經(jīng)過改進(jìn)的FOT。在“上限”情況下利用預(yù)先取出的比特?cái)?shù)和經(jīng)過改進(jìn)的第一“臺階”的“高度”,可以精確地重新計(jì)算LOS;最后,通過模擬該傳輸過程,也可以固定防止溢出所需的緩沖器大小。
如前所述,存在M個(gè)段m=0,1,…M-1。同樣,我們定義
Si是段i中產(chǎn)生的比特總數(shù),即 Ri是段i中FOT的傳輸速率;Ki是段i中的幀數(shù),即ki-ki-1;Ri1是段i中假定的臨時(shí)傳輸速率;I.計(jì)算所有平均速率Ri1=Si/Ki;i=0,1...M-1。
II.將段M-1的傳輸速率RM-1設(shè)置為等于該段的平均速率的下限值,即RM-1=Q-{RM-11}]]>II.計(jì)算預(yù)載比特?cái)?shù)PM-1,其需要在段M-1開始時(shí)存在于接收方緩沖器中,以防止段M-1中的下溢。
PM-1=(RM-11-RM-1)*KM-1]]>III.然后可以如下來計(jì)算下一段的速率RM-2=Q-{RM-11+PM-1}]]>或者=Q-{RM-31}]]>哪個(gè)較低選哪個(gè)。
其中PM-2=(RM-21-RM-2)*KM-2.]]>IV.然后使用以下通式來重復(fù)該處理,m=M-3,……,0Rm=Q-{Rm1+Pm+1}]]>或者=Q-{Rm-11}]]>哪個(gè)較低選哪個(gè)。
并且Pm=Rm1-Rm.]]>另外,如果希望,則可以在對于段0的m=1及R1處停止該迭代。
該過程得到了P0值,該P(yáng)0是第一段的預(yù)載,并且需要首先傳輸。實(shí)際上,定義預(yù)載b0是方便的,該預(yù)載b0包括接收方在t=0時(shí)開始解碼第一幀之前所傳輸?shù)乃斜忍亍?br>
假定如上所述來計(jì)算R0,則b0=P0+R0
然而,如果將速率R1用于段0,則在t=0和該段末端之間僅可以傳輸(K0-1)R1個(gè)比特,從而總預(yù)載為P0+K0R0-(K0-1)R1假定使用了R1,則開始等待時(shí)間(LOS)為b0/R1。
下面將討論緩沖器大小的問題。毫無疑問,利用得到的FOT,可以得到合理的傳輸速率和LOS。網(wǎng)絡(luò)傳輸?shù)男蕩缀蹩梢允?00%,并且其所需要的緩沖器大小比直接使用固定平均速率帶寬的小。然而,在某些情況下,該大小仍然遠(yuǎn)大于預(yù)留峰值速率帶寬所需的大小。在預(yù)留峰值速率帶寬的方案中,如果解碼器的緩沖器大小僅與最復(fù)雜幀所用的比特?cái)?shù)一樣多就足夠了。然而,在我們的方案中,我們需要比這種情況更大的緩沖器大小。雖然與恒定平均比特率相比,我們的方案在大多數(shù)情況下可以獲得小很多的緩沖器大小,但是應(yīng)當(dāng)承認(rèn),在最差的情形中,我們的方案所需的緩沖器大小接近恒定平均比特率所需的緩沖器大小。當(dāng)最大Ai在視頻序列的最后幀中出現(xiàn)時(shí),會發(fā)生這種情況。在這種情況下,我們的“下降”曲線僅有一個(gè)“臺階”。因此,通過“臺階”的變化無法有效地使緩沖器大小最小。然而,這種情況幾乎不會出現(xiàn),因?yàn)椤胺逯当忍亍背霈F(xiàn)的越晚,對于Ai的影響就越小。除非在該序列的末端,反常地出現(xiàn)了相當(dāng)多的異常復(fù)雜的幀,否則該情況永遠(yuǎn)不會發(fā)生。無論出現(xiàn)什么情況,LOS決不會是利用我們方案而產(chǎn)生的問題。我們相信,現(xiàn)今對于用戶來說,擁有一些具有較大存儲器的硬件應(yīng)當(dāng)不是一個(gè)問題。小LOS和良好的網(wǎng)絡(luò)傳輸效率應(yīng)當(dāng)是用戶更為關(guān)心的。
另外,即使用戶不能提供我們方案所需的大緩沖器大小,也可以在傳輸效率和所需的解碼器緩沖器大小之間采取一種折衷。利用這種折衷,可以進(jìn)一步將所需的緩沖器大小減小為用戶所希望的大小。
順便提及,盡管我們當(dāng)前的算法描述僅僅基于將每幀的比特作為基本單位,但是,該單位當(dāng)然也可以被定義為GOP或者一定數(shù)量的圖像或分組。無論我們在該算法中定義什么單位,原理是通用的而且應(yīng)當(dāng)是共同的。
下面我們將使用“下限”方法來描述編碼測試視頻序列的某些示例。對于(a)上述算法、(b)使用Furini和Towsley方法,以及(c)使用單一的平均比特率,給出了各個(gè)情況下的傳輸函數(shù)f(t)(或Ri)的值、b0值、以及b0的建議傳輸速率。
例1.“JacknBox”(a)通過步長為16的使用H.263+的量化器對通用中間格式(CIF)的測試序列(稱為Jacknbox)(其間有140個(gè)幀)進(jìn)行編碼,并且利用我們的算法導(dǎo)出FOT函數(shù)。
f(t)=5100 0<t<=T48;3645 T48<t<=T51;3058 T51<t<=T52;2830 T52<t<=T61;2682 T61<t<=T70;2651 T70<t<=T71;2464 T71<t<=T90;2447 T90<t<=T108;2321 T108<t。
在這些文獻(xiàn)中,我們將Ti定義為解碼器顯示幀i的時(shí)間。
我們將該文獻(xiàn)中的所有測量速率的測量單位定義為每幀間隔的比特。b0=39824比特;b0的建議傳輸速率為每幀間隔5100比特。
(b)使用Furini和Towsley方法,我們得到f(t)=9896 T0<t<=T29;9432 T29<t<=T40;7272 T40<t<=T41;6552 T41<t<=T46;6184 T46<t<=T47;5328 T47<t<=T48;3696 T48<t<=T51;
3632T51<t<=T106;3552T106<t<=T138;2896T138<t。
b0=39824比特。
在他們的傳輸方案中,b0將達(dá)到每幀間隔39824比特。
(c)利用恒定平均比特率,該函數(shù)將是f(t)=3669。
b0=108488比特;b0將達(dá)到每幀間隔3669比特。
圖1示出了以曲線圖形式繪制的這些結(jié)果。
表1中列出了這些分析結(jié)果
表1JacknBox 140幀,H.263+我們還利用CBR速率控制來對同一視頻序列進(jìn)行編碼。在這種情況下,LOS將是29656/3735=7.94幀。然而,利用常規(guī)CBR速率控制將漏掉10個(gè)幀,并且我們給出的比特預(yù)算與VBR編碼中的平均比特?cái)?shù)相同。
例2.使用H.263+的8400幀TV節(jié)目該測試使用具有8400幀的常規(guī)TV節(jié)目QCIF(四分之一CIF),其通過步長16的使用H.263+的固定量化器進(jìn)行編碼。圖像類型為IPPPP……,根據(jù)H.263+建議,每132幀進(jìn)行一次強(qiáng)制更新。
(a)f(t)=4977 T0<t<=T3173;4218 T3173<t<=T3679;3968 T3679<t<=T3680;3848 T3680<t<=T3681;3844 T3681<t<=T4752;3090 T4752<t<=T8392;992T8392<t<=T8393;816T8393<t<=T8394;644T8394<t<=T8396;544T8396<t<=T8397;384t>T8397;b0=13944比特。
如上所述,b0可以達(dá)到每幀間隔4977比特的第一速率。
(b)f(x)=27672 T0<t<=T8339; 21952 T8358<t<=T8359;26704 T8339<t<=T8340; 21744 T8359<t<=T8369;26560 T8340<t<=T8341; 20448 T8369<t<=T8373;26488 T8341<t<=T8342; 20344 T8373<t<=T8384;26240 T8342<t<=T8344; 19960 T8384<t<=T8385;25832 T8344<t<=T8345; 19016 T8385<t<=T8391;25136 T8345<t<=T8346; 11656 T8391<t<=T8392;24168 T8346<t<=T8347; 992T8392<t<=T8393;23816 T8347<t<=T8352; 816T8393<t<=T8394;23760 T8352<t<=T8353; 648T8394<t<=T8396;23616 T8353<t<=T8356; 544T8396<t<=T8397;22824 T8356<t<=T8357; 384T8397<t<=T8399。
22528 T8357<t<=T8358;b0=13944比特;可以以每幀間隔29762比特來傳輸b0。
(c)利用恒定的平均比特率,F(xiàn)OT將是f(t)=3966。
b0=33485844比特;可以按每幀間隔3669比特來設(shè)置b0。
圖2示出了利用H.263+進(jìn)行編碼的8400幀TV節(jié)目的FOT曲線。
表2列出了分析結(jié)果
表228400幀H.263+例3.利用MPEG4編碼的8400幀的TV QCIF節(jié)目利用步長為10的固定量化器,使用MPEG4對同一8400幀的TV節(jié)目QCIF序列進(jìn)行編碼。該圖像類型是IBBPBBPBBPBB(N=12,M=3)。應(yīng)當(dāng)注意,對于B圖像,圖像的編碼序列不同于圖像的顯示序列。所以必須在B圖像之前傳輸相關(guān)的I或者P圖像。在使用我們的算法之前需要某種預(yù)處理。
(a)最后,F(xiàn)OT是
f(t)=7426T0<t<=T4750;6938T4750<t<=T4786;66470 T4786<t<=T4798;6309T4798<t<=T4870;6190T4870<t<=T4900;6083T4900<t<=T4918;6026T4918<t<=T8398;168 T8398<t。
b0=16548比特。
可以使用每幀間隔7426比特來發(fā)送b0。
(b)f(x)=57472 T0<t<=T8338;50616 T8338<t<=T8350;49504 T8350<t<=T8368;48608 T8368<t<=T8371;48536 T8371<t<=T8383;44968 T8383<t<=T8386;31752 T8386<t<=T8389;28696 T8389<t<=T8398168 T8398<t。
b0=16040比特。
可以按每幀間隔57472比特來設(shè)置b0。
(c)利用恒定平均比特率,F(xiàn)OT將是f(x)=6825。
b0=2874758比特;可以按每幀間隔6825比特來設(shè)置b0。
圖3示出了利用MPEG4編碼的8400幀TV節(jié)目的FOT曲線(N=12,M=3)。
表3中列出了分析結(jié)果
表38400幀,MPEG4從上述實(shí)驗(yàn)結(jié)果中,可以看出LOS極大減少,同時(shí)仍然保持100%的傳輸效率。沒有浪費(fèi)網(wǎng)絡(luò)資源。唯一仍需進(jìn)一步改善的是進(jìn)一步縮小解碼器處所需的緩沖器大小。
圖4是可根據(jù)本發(fā)明進(jìn)行操作的服務(wù)器的框圖。其包括通常的計(jì)算機(jī)組件,即處理器10、存儲器11、盤存儲器12、鍵盤13、顯示器14以及用于連接電信網(wǎng)絡(luò)16的網(wǎng)絡(luò)接口15。以編碼文件20的形式按照傳統(tǒng)方式將可傳輸?shù)囊曨l序列存儲到盤存儲器12中。
在盤存儲器12中還存儲有用于實(shí)現(xiàn)對服務(wù)器操作進(jìn)行控制的計(jì)算機(jī)程序21。下面將參考圖5示出的流程圖來描述使用“下限”方法的該程序的操作。
步驟100經(jīng)由接口15從遠(yuǎn)端接收用于傳輸希望視頻序列的請求;該請求包括含有該序列的一個(gè)文件20的文件名。
步驟101處理器10從盤存儲器12中讀取所關(guān)注的文件,并且確定該文件中的對于所存儲序列中的N個(gè)幀中的每一個(gè)的編碼比特dj的數(shù)目j同時(shí)將N和dj(j=0...N-1)的值存儲在存儲器11中。
步驟102處理器如上所述計(jì)算k0...kM-1,并且將M和k0...kM-1存儲在存儲器11中。
步驟103 對于所有i計(jì)算 步驟104 設(shè)置RM-1=Q-{RM-11}]]>并計(jì)算PM-1步驟106 設(shè)置指針m=M-2步驟107 計(jì)算Rm和Pm步驟109 將m減1。如果m≥0,轉(zhuǎn)到步驟107步驟111 計(jì)算b0=P0+R0步驟112 計(jì)算該段持續(xù)時(shí)間,在本實(shí)施過程中,將預(yù)載和段0視為要傳輸?shù)膯为?dú)段。因此,τ0=(b0/R0+k0+1)*ττi=(ki-ki-1)*τ i=1,...,M-1其中,τ是幀周期的長度。
步驟113 將i設(shè)為0。
步驟114 傳輸對速率Ri和至少τi的持續(xù)時(shí)間進(jìn)行指定的預(yù)留請求。
步驟115 以速率Ri傳輸段i(當(dāng)i=0時(shí),之前傳輸P0個(gè)預(yù)載比特)。
步驟116 如果所有段都已傳輸,則停止;否則,在步驟117將i加1并且轉(zhuǎn)到步驟114。
為了適應(yīng)組播,諸如先前提到的RSVP系統(tǒng)的某些預(yù)留系統(tǒng)要求由接收端發(fā)出預(yù)留請求。在這種情況下,將步驟113修改為規(guī)定將消息傳送到指定Ri和τi的接收端。由此,終端將所需的預(yù)留請求發(fā)送到網(wǎng)絡(luò)。
在某些網(wǎng)絡(luò)中,可能對可以改變預(yù)留速率的次數(shù)存在某種約束。然而,上面采用的方法對于這些問題來說是健壯地,因?yàn)槌说谝徽埱笾獾拿總€(gè)預(yù)留請求都請求比先前速率低的一個(gè)速率。由此得出一個(gè)結(jié)論,即處理這些請求時(shí)的延遲導(dǎo)致了在實(shí)際傳輸速率減少之后,所預(yù)留的速率仍保持較高。在這種情況下,網(wǎng)絡(luò)利用率降低,但是傳輸質(zhì)量卻不受影響。
基于絕不增加預(yù)留比特率的約束來構(gòu)建上述預(yù)留算法。然而,這不是至關(guān)重要,所以下面將描述不受該約束的本發(fā)明的第二實(shí)施例。
在這種情況下,可以以這樣一種方式來選擇各個(gè)段,即如前所述,對于各段的平均產(chǎn)生比特率∑dj大于或等于在該段開始處開始的任何較短視頻序列部分的平均比特率,但是現(xiàn)在其可以小于在同一點(diǎn)開始的某個(gè)較長部分的平均比特率。
下面針對通用段q(=0...M-1)描述該過程。
使用Ai(q)=Σj=kq+1idji-kq-1]]>為所有kq-1+1≤i≤kq-1+H(或者kq-1+1≤i≤N-1,如果此范圍較短)計(jì)算Ai(q)。
其中,H是某一允許定義的最大長度。
找出使Ai(q)最大的i值,并且將kq設(shè)置為等于i的值。
除了將檢索最大平均速率限制在其范圍內(nèi)之外,這與先前描述的過程相同。
一旦確定了kq(q=0,...,M-1),則可以如上所述精確地確定實(shí)際的傳輸速率,除了省去為了防止速率超過前一段的速率、或者防止其低于下一段的速率而定義的任何限制之外。
本發(fā)明的第二實(shí)施例研究了進(jìn)行視頻速率轉(zhuǎn)換的可能性。這里,產(chǎn)生兩個(gè)(或者更多個(gè))具有不同圖像質(zhì)量、從而數(shù)據(jù)速率也不同的視頻流。典型地,可以通過使用不同的量化粗度來產(chǎn)生這些視頻流,低質(zhì)量、低數(shù)據(jù)速率流使用粗量化器,而具有較高數(shù)據(jù)速率的較高質(zhì)量的流使用不太粗糙的量化器。
在開始傳輸時(shí)可能出現(xiàn)速率預(yù)留失敗的情況下,進(jìn)行視頻速率轉(zhuǎn)換的可能性特別受關(guān)注,可以通過首先傳輸較差質(zhì)量的流、并且隨后轉(zhuǎn)換到較高質(zhì)量的流來在信號特性和/或網(wǎng)絡(luò)條件允許時(shí)對這種情況進(jìn)行補(bǔ)救。然而,將要描述的系統(tǒng)在因某些其他原因而使用視頻速率轉(zhuǎn)換的情況下也是有用的。
當(dāng)使用幀間編碼時(shí),在兩個(gè)不同流之間的轉(zhuǎn)換可能由于編碼器和解碼器處的預(yù)測器(predictor)的錯(cuò)誤跟蹤而引起圖像質(zhì)量的嚴(yán)重惡化然而,通過不時(shí)地產(chǎn)生過渡編碼幀(transitional coded frame),可以調(diào)節(jié)這種轉(zhuǎn)換而不會引起圖像質(zhì)量的任何下降,該過渡編碼幀實(shí)質(zhì)上是對轉(zhuǎn)換到的流的幀與從中轉(zhuǎn)換出的流的幀之間的差值進(jìn)行編碼。所以在傳輸了第一個(gè)流的幀之后,傳輸一個(gè)或更多個(gè)過渡幀、以及來自第二個(gè)流的幀。這種過渡幀的產(chǎn)生不是新技術(shù),所以不對其進(jìn)行進(jìn)一步的描述。為了描述該系統(tǒng),參見國際專利申請WO 98/26604(和對應(yīng)的美國專利6,002,440)。在下面的文獻(xiàn)中描述了使用稱為“SP-幀”的另一個(gè)這種系統(tǒng)Marta Karczewicz and Ragip Kurceren,“A Proposal for SP-frames”,document VCEG-L-27,ITU-T Video Coding Experts Group Meeting,Eibsee,Germany,09-12January 2001,以及Ragip Kurceren and Marta Karczewicz.“SP-frame demonstrations”,document VCEG-N42,ITU-T Video CodingExperts Group Meeting,Santa Barbara,CA,USA,24-27Sep,2001。
在上述“FOT”方法的情景下,在兩個(gè)流之間進(jìn)行轉(zhuǎn)換帶來的問題引出了某些需要解決的問題。如果考慮在任意點(diǎn)及時(shí)地從第一個(gè)流轉(zhuǎn)換到第二個(gè)流,則一般來說,解碼器緩沖器將包含第一個(gè)流中的對于解碼第二個(gè)流不起作用的幀。因此,假定解碼器將立即進(jìn)行轉(zhuǎn)換以對第二個(gè)流進(jìn)行解碼,則這些幀將無用且代表被浪費(fèi)的傳輸容量。更壞的是,對第二個(gè)流進(jìn)行解碼所需的幀將不會出現(xiàn)在緩沖器中。理論上,如果考慮將實(shí)際要傳輸?shù)脑摰诙鞑糠值钠鹗甲鳛樵摿鞯钠鹗?,而重新?jì)算第二個(gè)流的FOT,則可以解決該問題;但是實(shí)際上如果要避免顯示圖像的中斷,則就可能導(dǎo)致極高的傳輸數(shù)據(jù)速率需求。
可以通過允許解碼器繼續(xù)對緩沖器中剩余的該第一個(gè)流的幀進(jìn)行解碼來避免浪費(fèi)比特的問題,并且在此期間,緩沖器可以累積對第二個(gè)流進(jìn)行解碼所需的一些幀(即過渡幀和第二個(gè)流的幀),然而仍然存在對于過大傳輸比特率的需求。
理想地,一出現(xiàn)可用帶寬就應(yīng)當(dāng)進(jìn)行比特流轉(zhuǎn)換。但是,由于上面討論的問題,這是不切實(shí)際的。同時(shí),如果要產(chǎn)生過渡幀(一般僅在選擇點(diǎn)產(chǎn)生而不是對于每一幀都產(chǎn)生),則優(yōu)選地應(yīng)當(dāng)提前安排要產(chǎn)生這些過渡幀的點(diǎn)(轉(zhuǎn)換點(diǎn))。
基于這些考慮,我們首先要考慮在與FOT的“臺階”的“邊界”一致的時(shí)刻進(jìn)行轉(zhuǎn)換的可能性。本方案的特征在于在各“臺階”的“邊界”處,當(dāng)所有已傳輸比特被解碼為圖像時(shí),接收方緩沖器中不存儲任何比特。因此,如果在原始流的“邊界”處進(jìn)行轉(zhuǎn)換,則所有已傳輸比特將從接收方緩沖器中清空,并且不會由于比特流的轉(zhuǎn)換而浪費(fèi)任何比特。
盡管在原始比特流的“臺階邊界”處設(shè)置轉(zhuǎn)換點(diǎn)可能不浪費(fèi)傳輸比特,但如果新的流中的切換點(diǎn)不在“臺階邊界”處,則仍然存在問題。原因是如果所述轉(zhuǎn)換點(diǎn)不在新的流的“臺階邊界”處,則為了在接收方連續(xù)地播放視頻,就可能必須在非常短的時(shí)間間隔內(nèi)傳輸某些為所述新的流預(yù)先累積的比特。這可能引起極高速率的預(yù)留請求,甚至可能比所述新的流所包含的預(yù)留速率還要高。如果所述新的比特流中的轉(zhuǎn)換點(diǎn)在“臺階”中間,則累積比特的缺陷導(dǎo)致高速率預(yù)留。因此,理想地,所述新的視頻流中的轉(zhuǎn)換點(diǎn)也應(yīng)當(dāng)在“臺階邊界”處。
根據(jù)上述分析,具有所述兩個(gè)流的最佳轉(zhuǎn)換點(diǎn)的唯一機(jī)會可能是這兩個(gè)流具有相同“邊界點(diǎn)”。否則,要么浪費(fèi)比特,要么在比特流轉(zhuǎn)換之后要求非常高的比特率。幸運(yùn)的是,根據(jù)進(jìn)一步調(diào)查研究,我們發(fā)現(xiàn),對于從不同量化器產(chǎn)生的FOT曲線來說,確有同樣位置的“臺階邊界”,盡管它們不是絕對相同。原因在于,在視頻序列中,不管選擇什么量化器,復(fù)雜圖像一定要比普通圖像耗費(fèi)更多的比特。
我們已經(jīng)用某些實(shí)例驗(yàn)證了這一點(diǎn)。在所述實(shí)例中,選擇了140CIFJacknbox視頻序列。
在第一實(shí)例中,我們希望弄清楚基于同一視頻序列的不同視頻流是否在它們的FOT中共同逼近它們的“臺階邊界”。在圖6中,示出了基于不同量化器的FOT曲線的相似度。這些曲線對應(yīng)于量化器步長2、3、4、10、16和31,并且以Q2、Q3等來標(biāo)記??梢钥闯?,隨著量化器步長的增加,F(xiàn)OT變得越來越平坦。然而,它們?nèi)跃哂袔缀跬瑫r(shí)的“臺階邊界”。另外,應(yīng)當(dāng)注意,盡管不同F(xiàn)OT中的“邊界”點(diǎn)是類似的,但它們不完全相同。圖7和8公開了“臺階邊界”處的不同F(xiàn)OT曲線的更詳細(xì)情況。盡管它們不完全相同,但對相似位置處的比特流轉(zhuǎn)換幾乎沒有影響。下面的實(shí)例可以進(jìn)一步對其進(jìn)行驗(yàn)證。
在第二實(shí)例中,我們假定,在各個(gè)幀間隔處,將利用固定量化器16產(chǎn)生的比特流(Q16流)轉(zhuǎn)換到利用固定量化器8產(chǎn)生的第二比特流(Q8流)。在圖9中示出了分別在幀35、42、45、49、50和52處轉(zhuǎn)換比特流時(shí)的一些預(yù)留曲線。在圖10中示出了以不同幀間隔轉(zhuǎn)換比特流時(shí)所浪費(fèi)的比特?cái)?shù)。圖9和圖10充分地示出了在“邊界”點(diǎn)或其他點(diǎn)處進(jìn)行流轉(zhuǎn)換時(shí)的不同。在圖9中可以看出,如果轉(zhuǎn)換點(diǎn)遠(yuǎn)離“臺階邊界”,則所需的傳輸速率甚至高于最初要求的Q8流的傳輸速率。恰好如我們較早前所分析的。在這種情況下,為了在比特流轉(zhuǎn)換之后實(shí)現(xiàn)適當(dāng)?shù)娘@示,需要在短時(shí)間內(nèi)實(shí)現(xiàn)必要的比特累積。因此,所需的傳輸速率可能非常高,而這對于完成該比特流轉(zhuǎn)換就變得不切實(shí)際了。另一方面,如果在接近“邊界”點(diǎn)處轉(zhuǎn)換比特流,則不需要非常高的傳輸速率來實(shí)現(xiàn)必要的比特累積,因?yàn)镕OT中的各“臺階”是獨(dú)立的。在圖10中還可以觀察到,在“邊界”點(diǎn)附近對比特流進(jìn)行轉(zhuǎn)換更加合理。在FOT曲線中,總需要為后面的幀預(yù)先累積一些比特。如果采用比特流轉(zhuǎn)換,則不需要使用原始流的預(yù)先累積比特。這些比特將被浪費(fèi)。
在圖10中,容易看出僅在“臺階邊界”處對比特流進(jìn)行轉(zhuǎn)換不會浪費(fèi)比特。越接近“臺階邊界”,浪費(fèi)的比特就越少。圖9和圖10均證明了FOT中的最佳轉(zhuǎn)換點(diǎn)是它們的“臺階邊界”。
至于實(shí)際中精確地在什么點(diǎn)處選擇從第一流轉(zhuǎn)換到第二流的轉(zhuǎn)換點(diǎn)的問題來說,如果兩個(gè)流的臺階一致,則當(dāng)然不會不明確。然而,如果時(shí)序上存在不同,則可能a)在第一個(gè)流中選擇一個(gè)臺階(容易實(shí)施);b)在第二個(gè)流中選擇一個(gè)臺階(同樣容易實(shí)施);c)選擇所述兩個(gè)臺階中較早的(從而使浪費(fèi)比特最少);
d)選擇所述兩個(gè)臺階中較晚的(從而避免第二流的預(yù)留帶寬的任何增加)。
然而,實(shí)際上選哪一個(gè)都無所謂,因?yàn)榫托阅芏?,它們之間的差別相當(dāng)小;實(shí)際上,如果所選轉(zhuǎn)換點(diǎn)與該“臺階”偏移數(shù)幀,則通??梢垣@得滿意的性能。
根據(jù)這一點(diǎn),所建議的方法如下(假定上述選項(xiàng)(a))i)為所述第一流計(jì)算FOT;ii)選擇與該FOT的臺階一致的轉(zhuǎn)換點(diǎn);iii)產(chǎn)生過渡幀;iv)對于過渡幀和所述第二流的剩余部分計(jì)算FOT;v)傳輸直到所述轉(zhuǎn)換點(diǎn)的第一流;vi)傳輸所述過渡幀和所述第二流的剩余部分。
在使用選項(xiàng)(b)、(c)或(d)的情況下,步驟i)還將包括所述第二流的FOT的計(jì)算,并且步驟(ii)將包括根據(jù)所選的選項(xiàng)進(jìn)行選擇。盡管如此,仍將在步驟4中重新計(jì)算第二流的FOT。同時(shí)應(yīng)當(dāng)注意,步驟(iv)中的(重新)計(jì)算將自動(dòng)考慮由于轉(zhuǎn)換點(diǎn)與對于第二流而最初計(jì)算的臺階不一致以及/或者由于如上所述使用了“上限”或者“下限”而所需進(jìn)行的任何校正。
當(dāng)然,如果希望例如返回到第一流、或者轉(zhuǎn)換到第三流,則可以選擇多于一個(gè)的轉(zhuǎn)換點(diǎn)。
盡管已經(jīng)在被約束為具有單調(diào)遞減FOT的系統(tǒng)的情況下討論了轉(zhuǎn)換的問題,但是該轉(zhuǎn)換方法也可以在不受約束的情況下使用。同樣,在從高質(zhì)量流轉(zhuǎn)換到低質(zhì)量流時(shí)也是有用的。
權(quán)利要求
1.一種傳輸視頻信號的數(shù)字序列的方法,所述視頻信號已被使用壓縮算法編碼為使得每幀的編碼比特?cái)?shù)不是恒定的,所述方法包括以下步驟(a)將所述序列劃分為多段,其中第一段是序列開始處的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的序列開始處的部分的每幀平均編碼比特?cái)?shù),并且其中,各個(gè)隨后段是緊接前一段的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的緊接前一段的部分的每幀平均編碼比特?cái)?shù);(b)確定各段的比特率;(c)以所確定的比特率傳輸信號。
2.一種傳輸視頻信號的數(shù)字序列的方法,所述視頻信號已被使用壓縮算法編碼為使得每幀的編碼比特?cái)?shù)不是恒定的,其中源視頻已被編碼為分別具有不同壓縮比的第一序列和第二序列,所述方法包括以下步驟(a)分析多個(gè)流中的至少一個(gè)以將其劃分為多段;(b)在步驟(a)中所標(biāo)識出的段間過渡的附近選擇一個(gè)轉(zhuǎn)換點(diǎn);(c)如果在步驟(a)中沒有分析所述第一序列,則分析所述第一序列以將其劃分為多段;(d)對于直到所述切換點(diǎn)為止的所述第一序列的該段或各段確定比特率;(e)以所確定的比特率來傳輸直到所述轉(zhuǎn)換點(diǎn)為止的所述第一序列的信號;(f)分析從所述轉(zhuǎn)換點(diǎn)開始的包括所述第二序列的已修改序列,以將其劃分為多段;(g)對于所述已修改序列的多段確定比特率;(h)以所確定的比特率來傳輸所述已修改序列的信號;其中,通過將所述相關(guān)序列劃分為多段來逐個(gè)執(zhí)行所述分析,其中,所述第一段是序列開始處的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的序列開始處的部分的每幀平均編碼比特?cái)?shù),并且其中,各個(gè)隨后段是緊接前一段的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何更短的緊接前一段的部分的每幀平均編碼比特?cái)?shù)。
3.根據(jù)權(quán)利要求2所述的方法,其中在步驟(b)中,將所述轉(zhuǎn)換點(diǎn)選擇在所述第一序列的段間過渡的附近。
4.根據(jù)權(quán)利要求2所述的方法,其中在步驟(b)中,將所述轉(zhuǎn)換點(diǎn)選擇在所述第二序列的段間過渡的附近。
5.根據(jù)權(quán)利要求2所述的方法,其中在步驟(a)中,分析所述第一序列和第二序列,并且在步驟(b)中,將所述轉(zhuǎn)換點(diǎn)選擇在所述第一序列和第二序列的段間過渡的附近、或者如果所述過渡不一致則選擇在所述兩個(gè)過渡中的較早的一個(gè)附近。
6.根據(jù)權(quán)利要求2所述的方法,其中在步驟(a)中,分析所述第一序列和第二序列,并且在步驟(b)中,將所述轉(zhuǎn)換點(diǎn)選擇在所述第一序列和第二序列的段間過渡的附近、或者如果所述過渡不一致則選擇在所述兩個(gè)過渡中的較晚的一個(gè)附近。
7.根據(jù)權(quán)利要求2到6中任何一項(xiàng)所述的方法,其中,將所述轉(zhuǎn)換點(diǎn)選擇為發(fā)生在所述相關(guān)過渡的四幀范圍內(nèi)。
8.根據(jù)權(quán)利要求7所述的方法,其中,將所述轉(zhuǎn)換點(diǎn)選擇為與所述相關(guān)過渡一致。
9.根據(jù)權(quán)利要求2到8中任何一項(xiàng)所述的方法,其中,與所述第二序列相比按更高的壓縮比對所述第一序列進(jìn)行編碼。
10.根據(jù)權(quán)利要求9所述的方法,其中,與所述第二序列相比使用更粗糙的量化對所述第一序列進(jìn)行編碼。
11.根據(jù)權(quán)利要求2到10中任何一項(xiàng)所述的方法,其中,使用幀間編碼對所述序列進(jìn)行編碼,并且所述方法包括在所述轉(zhuǎn)換點(diǎn)處產(chǎn)生過渡序列,所述過渡序列包括使用所述第一序列的解碼幀作為預(yù)測器進(jìn)行編碼的所述第二序列的一個(gè)幀或者從該幀開始,并且其中,所述已修改序列包括所述過渡序列,其后是第二序列的幀。
12.根據(jù)前述任何一項(xiàng)權(quán)利要求所述的方法,其中,所述序列或一個(gè)序列的第一段是序列開始處的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何可能的序列開始處的部分的每幀平均編碼比特?cái)?shù),并且其中,各個(gè)隨后段是緊接前一段的部分,其每幀平均編碼比特?cái)?shù)大于或等于任何可能的緊接前一段的部分的每幀平均編碼比特?cái)?shù)。
13.根據(jù)前述任何一項(xiàng)權(quán)利要求所述的方法,其中,所述序列或一個(gè)序列的第一段是序列開始處的部分,其每幀平均編碼比特?cái)?shù)大于或等于不超過最大預(yù)定長度的任何可能的序列開始處的部分的每幀平均編碼比特?cái)?shù),并且其中,各個(gè)隨后段是緊接前一段的部分,其每幀平均編碼比特?cái)?shù)大于或等于不超過所述最大預(yù)定長度的任何可能的緊接前一段的部分的每幀平均編碼比特?cái)?shù)。
14.根據(jù)前述任何一項(xiàng)權(quán)利要求所述的方法,其中,對于所述序列或一個(gè)序列的至少所述隨后段中的每一個(gè)確定的比特率是與該段的每幀平均編碼比特相等的每幀周期比特?cái)?shù)。
15.根據(jù)權(quán)利要求1到13中任何一項(xiàng)所述的方法,其中,對于所述序列或一個(gè)序列的至少所述隨后段中的每一個(gè)確定的比特率是與一組允許比特率中大于或者等于該段的額定速率的最低一個(gè)相等的每幀周期比特?cái)?shù),所述額定速率是該段的每幀平均編碼比特減去由于對于所述前一序列所確定的比特率超過所述前一段的所述額定速率而允許的任何減少。
16.根據(jù)權(quán)利要求1到13中任何一項(xiàng)所述的方法,其中,對于所述序列或一個(gè)序列的至少隨后段中的每一個(gè)確定的比特率是與一組允許比特率中小于或者等于該段的額定速率的最高一個(gè)相等的每幀周期比特?cái)?shù),所述額定速率是該段的每幀平均編碼比特加上由于對于所述隨后序列確定的比特率低于所述前一段的所述額定速率而必要的任何增加。
17.根據(jù)權(quán)利要求12所述的方法,其中,對于所述序列或一個(gè)序列的至少所述隨后段中的每一個(gè)確定的比特率是等于下面中的較大一個(gè)的每幀周期比特?cái)?shù)(i)一組允許比特率中大于或等于所述段的額定速率的最低一個(gè),所述額定速率是所述段的每幀平均編碼比特減去由于對于所述前一序列確定的比特率超過所述前一段的所述額定速率而允許的任何減小;以及(ii)所述一組允許比特率中大于或等于所述隨后段的每幀平均編碼比特的最低一個(gè)。
18.根據(jù)權(quán)利要求12所述的方法,其中,對于所述序列或一個(gè)序列的至少隨后段中的每一個(gè)確定的比特率是等于下面中的較小一個(gè)的每幀周期比特?cái)?shù)(i)一組允許比特率中小于或者等于所述段的額定速率的最高一個(gè),所述額定速率是所述段的每幀平均編碼比特加上由于對于所述隨后序列確定的比特率低于前一段的額定速率而必要的任何增加;以及(ii)所述一組允許比特率中小于或者等于所述前一段的每幀平均編碼比特的最高一個(gè)。
19.根據(jù)前述任何一項(xiàng)權(quán)利要求所述的方法,包括將請求預(yù)留所述確定的比特率的命令傳輸?shù)诫娦啪W(wǎng)絡(luò)。
全文摘要
在可變比特率鏈路上使用帶寬預(yù)留來發(fā)送壓縮記錄視頻。為了確定在任何給定時(shí)間要使用(和預(yù)留)的傳輸速率,通過使兩者相匹配以使浪費(fèi)帶寬最小的方式,將數(shù)據(jù)流分為所選字節(jié)塊,以使得該字節(jié)塊的平均比特率整體上不小于從同一點(diǎn)開始的任何較短字節(jié)塊的平均比特率。然后,可以使用該平均速率來發(fā)送所述字節(jié)塊而不存在任何緩沖問題。優(yōu)選地,選擇字節(jié)塊以使得所述字節(jié)塊的平均比特率不小于從同一個(gè)點(diǎn)開始的任何較短或較長字節(jié)塊的平均比特率。其好處在于帶寬請求決不要求分配大于任何先前請求中指定的帶寬。在不同壓縮級別的流之間進(jìn)行轉(zhuǎn)換的系統(tǒng)中,可以有效地選擇轉(zhuǎn)換點(diǎn)以便與字節(jié)塊之間的邊界相一致。
文檔編號H04N7/50GK1714577SQ200380103595
公開日2005年12月28日 申請日期2003年11月18日 優(yōu)先權(quán)日2002年11月18日
發(fā)明者穆罕默德·甘巴里, 孫鍇 申請人:英國電訊有限公司