專利名稱:視頻信號處理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字視頻壓縮,尤其涉及可變比特率處理。
背景技術(shù):
視頻流可以用在移動IP網(wǎng)絡(luò)(3G、GPRS、Wimax、WLAN等)、固定網(wǎng)絡(luò)(如DSL、有線電視、PSTN等)以及數(shù)字電視服務(wù)中,并且不斷開發(fā)出諸如DVD錄像機、用于數(shù)字視頻存儲的個人視頻播放器(PVP),以及數(shù)字攝像機之類的新產(chǎn)品。所有這些服務(wù)和產(chǎn)品都在競爭最佳視頻質(zhì)量和最佳固定(best-fixed)存儲空間管理。
視頻壓縮技術(shù)已經(jīng)成為數(shù)字視頻通信中的關(guān)鍵技術(shù)。已經(jīng)創(chuàng)建了一些視頻壓縮的國際標準,如MPEG-2、MPEG-4、H263,以及最新的標準,H264。這些國際標準的一個共同特征是,它們只提供壓縮后視頻流的語義(syntax)。輸出比特流可以使用恒定比特率編碼處理(CBR)或可變比特率處理(VBR)。由于許多數(shù)字視頻應(yīng)用程序受限于恒定信道帶寬或固定存儲(緩沖器)大小的,所以CBR編碼由于其比較實用而被廣泛采用。但是,CBR編碼有一些缺陷。
首先,它導(dǎo)致不一致的視覺質(zhì)量。所需要的壓縮量可能在一幀畫面與另一幀畫面,或者甚至在同一幀畫面中的宏塊(macro-block)之間有很大的不同。結(jié)果,解碼后的視頻序列表現(xiàn)出不一致的視覺質(zhì)量。其次,它可能導(dǎo)致低的編碼效率。所選擇的比特率必須足夠大以便為傳輸?shù)乃胁糠侄继峁┛山邮艿漠嬞|(zhì)。但是,該比特率必須比傳輸中的大部分所需的比特率要高。
真實的視頻序列通常由許多場景組成,每個場景都可以描述顯著不同的活動性和運動特征。因此,應(yīng)該為那些高活動性的場景分配更多的比特而為那些低活動性的場景分配較少的比特。這就是可變比特率編碼(VBR)的基礎(chǔ)。與CBR編碼相比,VBR可以為很多視頻序列提供更小的延遲、一致的視覺質(zhì)量和更高的編碼效率。但是,VBR編碼存在非常嚴格的比特率和緩沖器大小限制,具體原因是,由于瞬間比特率可能顯著地波動,所以非受限VBR編碼器可能不滿足信號要在其上傳輸?shù)拿浇榈膸捪拗?。此外,VBR很難在多流鏈路(multi-streaming link)上工作,這是因為流的各個部分不能像例如簡單的時分復(fù)用器那樣被一致地分配給每個流。
大多數(shù)標準壓縮處理是對幀的每個8×8像素(或者一組幾個相鄰的塊,被稱作“宏塊”)進行的。識別出上一幀中與當(dāng)前考慮的塊類似程度最相近的塊(一般為同一位置或者相鄰位置的塊),并識別出當(dāng)前考慮的塊的每個像素的亮度和色度值與所選的之前塊的相應(yīng)值的差。對所得數(shù)據(jù)進行離散余弦變換,隨后在傳輸之前將所得值除以量化因子Q。量化因子將各個值減小,使這些數(shù)據(jù)能夠以可變比特率進行傳輸。Q值越大,它所容許的值的范圍就越大(某一塊與和它進行比較的塊之間的差異就越大),但結(jié)果是細節(jié)的丟失,因為實際值的小差異會導(dǎo)致相同的量化級別。故Q值與畫質(zhì)成反比。在VBR系統(tǒng)中,Q值在整個傳輸中是恒定的,然而在CBR系統(tǒng)中,它在各幀之間是可變的。
歐洲專利申請EP0742674描述了一種系統(tǒng),在該系統(tǒng)中,對每一幀進行分析以決定適于對該幀進行編碼的量化級別。但是,這導(dǎo)致了一幀與下一幀之間頻繁的質(zhì)量變化,因而使觀眾分心。
發(fā)明內(nèi)容
本發(fā)明提供了一種視頻信號壓縮處理,其中將視頻序列分為若干多幀段,確定以非壓縮形式對每個視頻段進行編碼所需的比特數(shù),并且選擇用于傳輸每一段的量化級別,使得這些段的總體比特率落入預(yù)定限度內(nèi)。本發(fā)明還提供了一種適于執(zhí)行本發(fā)明的處理的編碼器。
通過對幾個幀的段應(yīng)用相同的量化級別,降低了量化級別的令人分心的變化,進而降低了圖像質(zhì)量的這種變化。本發(fā)明還降低了信令開銷,因為量化級別的改變并不頻繁,并且降低的可變性使得緩沖器控制管理變得更容易。
在優(yōu)選結(jié)構(gòu)中,所述段被定義為在每個段中,以未壓縮形式對每個幀進行編碼所需的比特數(shù)都落入具有預(yù)定大小的范圍,并且為每個段都確定了量化級別。這就使得段的長度可變,在適當(dāng)?shù)木幋a率不變時進行較少的轉(zhuǎn)換(transition),但在需要時也有能力對更迅速的變化作出響應(yīng)。
為了使量化級別的令人分心的變化進一步最小化,提供了一優(yōu)選實施例如果在三個連續(xù)的段中,第一和第三段都選擇了相同的量化級別,則該量化級別同樣適用于中間段。此外,在該優(yōu)選實施例中,對一個段和下一個段之間的量化級別的明顯變化進行平滑處理。這可以通過對位于兩個段之間的邊界上的若干幀上逐步增量調(diào)節(jié)量化級別來實現(xiàn)。優(yōu)選的是,對量化級別的逐步調(diào)節(jié)降低了具有較高比特率的段中的幀的比特率。
確定對每個段進行編碼所需的量化級別的處理可以如下來執(zhí)行用多個量化值中的每一個對序列中的每一幀進行編碼,并從中確定出最滿足所需求比特率的量化值。得到此值的適當(dāng)數(shù)學(xué)過程隨后將在本說明書中進行描述。
優(yōu)選的是,該過程如下進行操作在對序列進行的第一次處理(firstpass)中,確定該序列中的每一個段的量化級別,而在對序列進行的隨后編碼中,使用所選的量化級別對每一個段進行編碼以便進行傳輸。
在將要描述的實施例中,本發(fā)明利用對視頻序列的第一次處理,通過為每個段選擇合適的量化參數(shù),針對視頻流或固定存儲應(yīng)用來優(yōu)化可變比特率處理,之后在第二次處理中傳送完整的序列。需要兩次編碼使傳輸延遲了進行額外編碼所消耗的時間。但是,對于某些應(yīng)用,可以預(yù)先為多個選定的比特率值確定合適的參數(shù),從而可以更快地實現(xiàn)以給定比特率進行傳輸?shù)恼埱蟆?br>
與所有數(shù)字編碼方案相同,該結(jié)構(gòu)依賴于傳輸?shù)慕邮斩擞凶銐虻木彌_存儲器可用,因為每一幀的比特數(shù)是變化的,并且需要在生成重構(gòu)(recreation)幀所必需的所有數(shù)據(jù)之前對其進行存儲。如果每幀的比特數(shù)很大(傳輸幀的速率因而下降),以至于解碼器沒有足夠的數(shù)據(jù)在要顯示下一幀時生成該下一幀,則會出現(xiàn)緩沖器“下溢”或者緩沖器饑餓。當(dāng)緩沖存儲器對于已經(jīng)接收但尚未使用的比特數(shù)不足時會出現(xiàn)緩沖存儲器溢出。
可以如下所述對其中數(shù)據(jù)的各個段就重構(gòu)各個段所需的數(shù)據(jù)量而言不同的信號進行編碼用編碼器來確定解碼該信號所需的緩沖器參數(shù),并將這些緩沖器參數(shù)與編碼后的信號一同傳輸。這種參數(shù)可以包括避免在解碼器側(cè)造成緩沖器饑餓狀態(tài)所需的最小緩沖器延遲和避免在解碼器側(cè)造成緩沖器溢出狀態(tài)所需的最小緩沖器大小。該緩沖器數(shù)據(jù)可以通過要與本申請的發(fā)明的處理同時傳輸?shù)膫鬏斝蛄械某醮尉幋a來確定,之后對該序列進行編碼,然后在對該序列的第二次處理中對緩沖器數(shù)據(jù)進行編碼,并在編碼后的序列的頭部進行傳輸。
通過在開始視頻包傳輸之前向解碼器側(cè)的緩沖器提供與這些值中的一個或二者有關(guān)的信息,可以防止出現(xiàn)“緩沖器下溢”和“緩沖器溢出”。另一種對“VBR”流所需的緩沖器大小進行控制,且不需要此額外頭信息的方法在申請人同日提交的題為“防止緩沖器下溢”的未決申請中公開,并要求0428155.6號英國專利申請的優(yōu)先權(quán),該申請?zhí)峁┝艘环N傳輸經(jīng)數(shù)字編碼的視頻流的處理,其中對數(shù)據(jù)的各個段進行編碼的速率依據(jù)生成每個段所需的數(shù)據(jù)量而變化,其中,從傳輸中選擇性地省略幀,使得累積的幀速率不會比預(yù)定值低。這就確保了接收器不會出現(xiàn)下溢狀態(tài)。可以為每幀的比特數(shù)可以在給定序列中變化的量設(shè)定閾限,由此來限制可以被刪除的幀的數(shù)量。
申請人的與本申請同日提交的題為“防止緩沖器溢出”,且要求了0428156.4號英國專利申請的優(yōu)先權(quán)的申請?zhí)峁┝艘环N對經(jīng)數(shù)字編碼的視頻輸入流進行解碼的處理,其中按照依據(jù)重構(gòu)各個段所需的數(shù)據(jù)量而變化的速率來對數(shù)據(jù)的各個段進行編碼,其中,對輸入中的累積平均幀速率進行監(jiān)控,并響應(yīng)于監(jiān)控到的累積平均值從所接收的輸入中選擇性地刪幀,使得解碼輸出中的累積平均幀速率不會比預(yù)定值低。
這兩個發(fā)明還提供了一種可變比特率數(shù)據(jù)解碼處理,該處理用于識別傳輸中的被刪除的部分,并使所顯示的流重新同步。這可以通過延長各個幀的持續(xù)時間,或者通過重復(fù)某些幀來完成。同步可以通過對視頻流與相應(yīng)的音頻流中的時間戳進行比較,或者通過重復(fù)幀來實現(xiàn)。優(yōu)選的是,可以為每幀的比特數(shù)可以在給定序列中變化的量設(shè)定閾限,由此來限制由于幀速率降低而引起的感觀質(zhì)量的損失。如果與本發(fā)明共同使用,則該閾限可以是預(yù)定的大小,其中以未壓縮形式對每一幀進行編碼所需的比特數(shù)受到限制而不降低。
該模式不需要在“視頻流會話”之前傳輸額外的信息,并且避免了在剪輯的開始部分進行緩沖,所以顯著減小了啟動延遲。顯示出的每一幀都將具有相同的視頻質(zhì)量,但視頻是以降低的幀速率顯示的,因此感觀視頻質(zhì)量可能會略有影響。
閾限的設(shè)定還使得可以為接收器對序列進行解碼所需的緩沖存儲器確定最大值。
在此將結(jié)合附圖,以舉例的方式對本發(fā)明的實施例進行描述,附圖中圖1是根據(jù)第一實施例的合作來執(zhí)行本發(fā)明的各種部件的示意圖。
圖2是根據(jù)第二實施例的合作來執(zhí)行本發(fā)明的各種部件的示意圖。
圖3例示了示例性幀序列中的每幀比特的變化。
圖4例示了該處理的分析步驟。
圖5例示了形成該處理一部分的選擇步驟。
圖6例示了對于示例性幀序列,該處理所生成的量化值。
圖7例示了可以對量化值執(zhí)行的平滑處理的第一部分。
圖8例示了平滑處理的其余部分。
圖9例示了緩沖處理。
圖10例示了典型視頻序列的結(jié)構(gòu),例示了各種幀類型。
圖11例示了從序列中選擇性省略幀的處理。
圖12例示了在圖2的解碼器上進行的幀省略處理。
具體實施例方式
圖1和圖2將實現(xiàn)本發(fā)明所執(zhí)行的操作表示為一系列功能元件。應(yīng)當(dāng)理解,這些操作可以由微處理器來執(zhí)行,并且物理組件不必是獨立(distinct)的。具體地說,圖中所示的并行或順序進行的類似處理10、11、12、13、19可以由單個組件循環(huán)執(zhí)行。
圖1和圖2的不同之處在于,它們采用不同的方法來防止緩沖器饑餓和緩沖器溢出,這將在下文進行描述。
在這些圖中,視頻編碼器1和解碼器2經(jīng)由通信鏈路3互連。視頻編碼器1與數(shù)據(jù)庫4相關(guān)聯(lián),可從中獲取用于編碼的數(shù)據(jù)并將數(shù)據(jù)傳輸至解碼器2,解碼器2與諸如電視機的顯示設(shè)備5相關(guān)聯(lián)以顯示解碼后的數(shù)據(jù)。解碼器2有相關(guān)聯(lián)的緩沖存儲器6。
視頻編碼器1包括許多功能元件。編碼器1使用“兩次編碼”處理來處理從數(shù)據(jù)庫4獲取的數(shù)據(jù)。首先,對整個序列進行分析(10,11,12,13)。根據(jù)分析結(jié)果,將該序列分割(14)成許多段,并存儲(15)這些段的統(tǒng)計資料。使用編碼處理產(chǎn)生的數(shù)據(jù)來生成比特率與量化級別之間的一般關(guān)系(16),之后為每個段確定(17)最佳的量化級別。通過平滑處理對該值進行修改(18)。使用這些統(tǒng)計資料,可以在第二次處理中生成帶有“VBR”特性的最終比特流(或多比特流)(19)。該統(tǒng)計資料也可以用來防止“緩沖器溢出”和“下溢”。
另一部分21、22、23(圖1)或31、32(圖2)執(zhí)行了用來控制遠程解碼器2的緩沖器控制處理,這將在下文中討論。
因為這是“兩次編碼”處理,所以引入了延遲,使得該處理主要適合于非直播的視頻內(nèi)容(按需視頻)。但是,應(yīng)當(dāng)理解,第一次處理所需的處理時間可以比傳輸速率更快,這是由于它不受連接3的帶寬的限制。
下面將更詳細地討各個處理。
在第一次處理中,首先通過多個并行工作的VBR編碼器(10、11、12、13)對視頻序列進行分析,以針對各個量化級別Q1、Q2、Q3和Q4對視頻序列進行編碼。此步驟是逐幀進行的。其圖示在附圖4中,該圖示出了4個流,每個流都有其自己的量化值(quantizer)。例如,首先用每個量化級別“Q1”、“Q2”、“Q3”和“Q4”對“幀1”進行編碼。然后,按照相同的量化值序列對“幀2”進行編碼,直到對整個序列處理完畢為止。此步驟需要的處理能力是標準“VBR”編碼器的4倍。經(jīng)驗測試顯示,對于在H264標準下工作的編碼器來講合適的量化值應(yīng)為Q1=10、Q2=20、Q3=30、Q4=40。這樣可以確定出精確的R-Q函數(shù)(處理16),R-Q函數(shù)使量化級別Q與每幀比特數(shù)R產(chǎn)生關(guān)聯(lián)。相應(yīng)的計算開銷大約是一般VBR編碼器的4倍。
R-Q函數(shù)適用于可變比特速率的多個流,所以下文稱之為“多流速率控制(MRC)”函數(shù)。該函數(shù)可按如下方式(處理16)來確定。在該實施例中采用了兩個數(shù)學(xué)模型,如實驗結(jié)果所表示的,它們在Q的不同范圍上非常準確。
R=a’e-b’Q(MRC函數(shù)1)第二模型是三次多項式R=aQ3+bQ2+cQ+d(MRC函數(shù)2)其中R為平均比特/每幀,Q為量化參數(shù),a’、b’、a、b、c、d為待確定的建模參數(shù)。
第一模型在21<Q<50范圍內(nèi)是良好的近似,第二模型在O<Q<30范圍內(nèi)是良好的近似。
在此需要注意,因為每幀的比特數(shù)R隨著Q(量化參數(shù))的增加而下降,并且兩個特性都只能是正值,所以系數(shù)a、b、c中的至少一項為負數(shù),而a’、b’必須都為正數(shù)。
“模型1”需要兩個建模參數(shù)a’和b’,故需要2個流來確定這些參數(shù)的值,而“模型2”需要4個建模參數(shù),故需要所有4個流來確定它們的值。
值得注意的是,如將要參照途5所描述的,在范圍20<Q<30內(nèi),模型的選擇需要另一階段A,即“切換機制”,來確定當(dāng)“Q”落入[21,30]之間的范圍時,“模型1”還是“模型2”能夠為所考慮的特定段提供“平均比特/幀(R)”的更精確的預(yù)測值。
對于“模型1”,應(yīng)用Q3=30、Q4=40,由此得到建模參數(shù)a’和b’。
對于“模型2”,應(yīng)用Q1=10、Q2=20、Q3=30、Q4=40,從而生成建模參數(shù)a、b、c、d。
在生成上述兩個方程式之后,為每個方程式設(shè)“Q=20”,由此為兩個模型生成不同值的R20和R20’。
計算這兩個值之間的“偏差%(D)”D=[(R20’-R20)/R20’]*100%用于在21<Q<30的范圍內(nèi)針對Q值預(yù)測“R”的模型是根據(jù)D的絕對值來選擇的。如果-6%<D<+6%,則使用模型1,而如果D落在+/-6%的范圍之外,則使用模型2。
與此處理平行進行的是,通過分段(Wn)’處理14將視頻序列分為可變長度的視頻段?!胺侄巍碧幚?4在視頻序列中限定了各個窗口或段。它利用固定的量化值,例如Q4=40,從多個并行編碼器13之一中提取編碼數(shù)據(jù),并確定每S幀的R值(每幀的平均比特),其中“S”是采樣速率。例如如果“S=1”,則對每一幀都要進行這種檢查。更典型的是將該值設(shè)定為與目標幀速率相等。例如,如果對于要編碼的視頻序列的目標幀速率為15幀/秒,則將S值設(shè)定為15,這樣,這種檢查將每15幀進行一次。在圖4所示的示例中,整個序列的長度為49幀,其被動態(tài)地分成4個段Wn。當(dāng)然,在其他示例中,段Wn的數(shù)量可以更少或更多,這取決于內(nèi)容和在編碼處理開始時所設(shè)定的閾值(A)的值。
特殊情況下,第一段使用的幀數(shù)等于由“S”設(shè)定的值的兩倍。這意味著“第一次檢查”發(fā)生在2*S=2*15=30,即30幀之后。該檢查還需考慮剪輯(clip)開始處會出現(xiàn)“內(nèi)”幀,內(nèi)幀產(chǎn)生了比“P”幀更多的比特。這樣,比特更好地分布在第一段中,從而產(chǎn)生了更好的VBR特性。
在第一次處理期間,對于整個視頻序列計算R值(平均比特/幀),并將存儲(15)結(jié)果。該R值表示在特定瞬間每幀的平均比特數(shù)。例如,計算第5幀的“R”,為了例示我們假設(shè)頭5幀分別是以2000比特、1000比特、500比特、1000比特和500比特生成的。R(5)=(2000+1000+500+1000+500)/5=1000比特/幀。圖3示出了典型的軌跡,“Y軸”表示“平均比特/幀(R)”,而“X軸”表示“幀號(N)”。
如果R值較之以前的R值超出了閾值A(chǔ)(例如大了30%),則將當(dāng)前幀設(shè)定為當(dāng)前段(Wn)的最后一幀,并生成新的段。
該閾值由終端用戶在處理之初設(shè)定。該值越大,結(jié)果越接近“VBR”特性。如果該值接近于“0”,則該序列將被以近乎于“CBR”的特性來編碼。該參數(shù)的典型值為30%。
這樣,在第一次處理中,以如圖4所示的固定量化值的不同值創(chuàng)建了4個流,并且根據(jù)該平均比特/幀的變化來創(chuàng)建可變長度的段Wn。然后針對量化值“Q”的不同值的每一段,預(yù)測平均比特/幀速率(R),范圍[1,50]。
由于段被定義為,在每一個這種段中,R值都只在有限的范圍變化,故可以使用每個段中的R值,利用R-Q函數(shù)(16)為整個序列中各個段確定要在第二次處理中使用的適當(dāng)量化因子Q(處理17)。適當(dāng)?shù)腞值和適當(dāng)?shù)腝值可以基于某些限制條件,例如解碼器緩沖能力、傳輸速率或總存儲器大小。這些限制條件可以預(yù)先設(shè)定,或者可以從解碼器2中作為數(shù)據(jù)而獲取。
為了給每個段選擇最佳的量化值Q,如通過優(yōu)化處理所確定的,選擇滿足以下條件的R值R<Tg/f其中R是由R-Q函數(shù)16確定的每幀平均比特f是目標幀速率將幀傳輸至目的地所用的傳輸速率Tg是目標比特率表示維持目標幀速率所需的比特率。
Tg值和f值由傳輸媒介3和用戶設(shè)備2的能力,以及視頻流內(nèi)容的性質(zhì)決定。
例如,如果Tg=20000且f=10,那么R<2000Kbits/幀。
最佳量化值Qbest可利用R-Q函數(shù)來確定。該處理適用于由分段器14生成的每一段。如果在某個段與下一段間Q值有很大的變化,則終端用戶會注意到視頻質(zhì)量的突變,這很令人厭煩。為減輕這種影響,本實施例對優(yōu)化器17所產(chǎn)生的量化值應(yīng)用平滑處理18。該處理被示于圖6、圖7、圖8和圖9中。
圖6中的上部軌跡例示了如下的實施例在優(yōu)化器17中應(yīng)用“MRC”函數(shù)之后但在平滑之前,每個段Wn都有自己的量化級別Q值??梢宰⒁獾?,在段“Wn”和相鄰段“Wn-1”和“Wn+1”之間的過渡處量化值Q有突然的變化,段“Wn-1”和段“Wn+1”的量化級別為QL和QR。另外還請注意低“Q”值對應(yīng)于高的每幀比特數(shù)。
圖7和圖8例示了平滑處理。該處理首先為所考慮的段設(shè)定一修改后的量化參數(shù)。如果該段或者緊接著的下一段的量化參數(shù)較之當(dāng)前窗口的量化參數(shù)大了預(yù)定閾值,則修改后的量化參數(shù)與緊挨著的前一段的量化參數(shù)相同(步驟62-64)。即使對過渡進行平滑,這種大的變化也會使人類觀察者感分心,故在這種情況下,將量化級別保持為其之前的值。
如果這種變化小得足以通過平滑處理來解決,則在從某一段向下個段過渡的地方逐步地改變量化值Q(步驟73、74)。這總是可以通過增加來自Q值較低的段的各幀的Q值(降低比特/幀)而進行,因為不大可能使目的地的緩沖器過載。但是,如果所考慮的段的量化值既低于緊挨著的前一段的量化值也低于緊接著的下一段的量化值,則首先將要使用的Q值設(shè)定為這兩個量化值的中間值(步驟67),而不是該段的(較低)最佳值。
現(xiàn)對平滑處理做更詳細的描述。首先計算段Wn的左右邊界處量化Q值的差異。
GapLeft=QL-Qn(步驟60)GapRight=QR-Qn(步驟61)(請注意,Qn和QR是優(yōu)化器17生成的值,但是QL是在對前一段應(yīng)用平滑處理后得到的值。針對前一段,輪到將QR修改成要生成的Qn’值)。
接下來對這些差異進行評估,以確定它們是否超出了閾值(步驟62、63)。在本示例中,閾值被設(shè)定為+10。
如果GapLeft或GapRight超過了該閾值,則我們將值設(shè)定為Qn’=QL,其中Qn’是新的Q值(步驟64)。如果GapLeff和GapRight都落在閾值之上或者低于閾值,則要進行進一步的測試,以確定這些差異的符號(步驟65)。如果兩者中有一個是負數(shù),則我們設(shè)定Qn’=Qn(步驟66),換言之,使用優(yōu)化器17得到的值。如果兩個差值都是正數(shù)或零,則我們設(shè)定Qn’=(QL+QR)/2(步驟67),由此設(shè)定了位于緊挨著所考慮的段與緊接著所考慮的段之間的值。其結(jié)果是為這一段設(shè)定的質(zhì)量低于優(yōu)化器17所設(shè)定的質(zhì)量(大于其量化值),但它卻使段之間的質(zhì)量過渡最小化。
現(xiàn)參照圖8,使用Qn’值來生成兩個新值(步驟70)GapLeftNew=QL-Qn’GapRightNew=QR-Qn’使用這些值對段Wn的最初幾幀和最后幾幀應(yīng)用平滑處理,如步驟73所示。
如果GapLeffNew為正值,則相鄰幀的量化值QL適用于段Wn的第一幀,而對于隨后的每一幀,量化值將以“Step-value”逐步減小,直至達到最小值Qn’。隨后的幀都取該最小值Qn’。例如,如果QL=40,Qn’=32,且Step-value=1,則我們得到GapLeffNew=40-32=+8。該值為正,故對該段的從第一幀開始的每一幀,量化值“Q”都從之前幀的值減小“1”,直至達到級別Qn’。所以例如,Qn1=40,Qn2=39,Qn3=38,…Qn9=32,其中Qn1為“段Wn”中的第一幀的量化值,Qn2指代第一幀之后的那幀的量化值,以此類推。第九幀之后的所有幀都取值Qn=Q9=32。
類似的是,如果GapRightNew為正,則對該段的最后幾幀采用同樣方法處理(步驟72、74),具體如下。如果GapRightNew為正,則將該段的最后一幀的“Q”值提高至QR,并且每一個之前幀的Q值從后繼幀的Q值開始以Step-value減少,直至達到最小值Qn’。例如,如果QR=38,Qn’=32,Step-value=1,則我們得到GapRightNew=38-32=+6。該值為正,該段的最后6幀(Qnlast-5至Qnlast)的量化值從Qn’=32到QR=38逐步增加,由此Qnlast-6=32,Qnlast-5=33…Qnlast-1=37,Qnlast=38。
可以看出,任意給定段的GapLeffNew值都與之前段的GapRightNew的符號相反。如果GapLeftNew為負值,則在所考慮的段的開始處沒有使量化值(Qn’)“逐步”變化(步驟75)。相反,GapRightNew為正的之前段會經(jīng)歷平滑處理。類似的是,如果GapRightNew為負,則在所考慮的段的結(jié)尾處沒有使量化值(Qn’)“逐步”變化(步驟75),但是隨后的段由于其GapLeftNew為正值而要經(jīng)歷平滑處理。
如果任一過渡的差值都為0,當(dāng)然就沒有必要對該過渡進行平滑處理。但是應(yīng)該注意這樣的情況不大可能發(fā)生,因為段是根據(jù)適當(dāng)?shù)牧炕墑e的變化而限定的。
圖6的下部示出了平滑處理應(yīng)用于該圖上部的軌跡后的結(jié)果。使得平滑處理按照以下方式進行在較低值的段的幀中增加Q值(如圖6的下部軌跡所示),而不是在較高值的段中增加Q值,保證了在任何給定段中Qn’總是大于Qn,從而比特率永遠不會超出傳輸媒介3的能力。
至此“第一次處理”(步驟10-18)結(jié)束。此時,在對數(shù)據(jù)的第二次處理中,編碼器19可以按照與常規(guī)VBR編碼器(編碼器19)一樣的方式對整個視頻序列進行編碼。該編碼器使用在優(yōu)化和平滑過程17、18中確定的,為各個段估計出的量化因數(shù)Q,并將所得到的比特流通過網(wǎng)絡(luò)3傳輸至編碼器2。
由于任意比特率的最佳量化值都可以通過第一次處理中預(yù)測出來,所以可以利用“VBR”特性(多流)同時對多個流進行編碼,因為各個流的合適比特率都可以從該處理中容易地預(yù)測出來。第一次處理可以在任何時刻進行,或預(yù)料到對于給定比特率的相關(guān)序列的請求,或可以應(yīng)特定要求而進行。
VBR型輸入會給接收器2帶來如下問題要保證有足夠的緩沖資源可用。要確定兩個相互關(guān)聯(lián)的標準,即緩沖容量和緩沖延遲。由于每幀的比特數(shù)各不相同,而比特率本身是恒定的,所以幀速率會變化。所需的緩沖延遲是其足以使最慢的幀(每幀比特數(shù)最高)被傳送并且及時處理從而顯示它們,而緩沖容量是根據(jù)在需要已經(jīng)解碼了的幀之前對其進行存儲所需的容量來確定的。由于這些能力有賴于每幀比特數(shù)的變化,所以如果沒有一些與待解碼的序列有關(guān)的數(shù)據(jù),解碼器就無法進行預(yù)測。
就討論到目前為止的優(yōu)化處理而言,圖1和圖2是相同的,只是圖示出了不同的處理(分別為21、22、23;以及31、32、41、42),以防止緩沖器6處的溢出和下溢與解碼器2相關(guān)聯(lián)。圖1示出了第一處理21、22、23,通過該處理,解碼器2中的緩沖器6可以接受VBR型輸入,從而避免了解碼器緩沖器中出現(xiàn)任何“溢出”或“下溢”狀態(tài)。圖2示出了第二處理31和32,通過該處理,解碼器2中的緩沖器6可以接受VBR型輸入,從而避免了解碼器緩沖器中出現(xiàn)任何“下溢”狀態(tài),圖2還示出了另一處理41、42,通過該處理,解碼器2中的緩沖器6可以接受VBR型輸入,從而避免了解碼器緩沖器出現(xiàn)任何“溢出”狀態(tài)。
首先,給出一種數(shù)學(xué)模型來描述“視頻流應(yīng)用”中解碼器側(cè)的緩沖器級別。
圖9例示了解碼器2處的緩沖器6的級別,示出了在比特流90通過固定帶寬網(wǎng)絡(luò)3傳輸時,如何隨時間來構(gòu)造緩沖數(shù)據(jù)。定義了下列參數(shù)。
T傳輸速率(比特/秒)—這是傳輸信道3的帶寬。
f目標幀速率(幀/秒)—這是比特流所代表的幀在顯示設(shè)備5上進行顯示的速率。
R(t)時間t內(nèi)的平均比特/幀。這是隨時間變化的累積參數(shù)。
t過去的時間(秒)。
B(t)插入到緩沖器中的比特—該參數(shù)表示在時間段t內(nèi)插入緩沖器的比特數(shù)。
B(t)’從緩沖器提取出的比特—該參數(shù)表示在同一時間段t內(nèi)從緩沖器提取出的比特數(shù)。
在給定時刻t處包含在緩沖器內(nèi)的比特數(shù)“dB”由下式給出dB(t)=B(t)-B(t)’另外,在給定時間“t”內(nèi)插入到緩沖器內(nèi)的比特數(shù)B(t)由下式給出B(t)=T*t類似地,在同一時間內(nèi)從緩沖器提取出的比特數(shù)B(t)’由下式給出B(t)’=R(t)*f*t結(jié)果,在給定時刻t處,剩余在緩沖器中的比特數(shù)“dB”的凈數(shù)由下式給出dB(t)=B(t)-B(t)’=(T-R(t)*f)t該函數(shù)確定了在假設(shè)傳輸速率十分理想并且固定為速率T的條件下,給定時刻t處包含在緩沖器中的比特數(shù)。由于T和f是預(yù)先確定的,故dB(t)的值以函數(shù)R(t)的形式隨時間變化。
緩沖器下溢,或稱“饑餓”是指要對下一幀進行解碼,但所需數(shù)據(jù)還未抵達的情況下出現(xiàn)的狀態(tài),換言之,緩沖器空了。為了避免緩沖器下溢,通常是在第一數(shù)據(jù)抵達緩沖存儲器之后延遲解碼處理的開始。這會對終端用戶造成視頻序列顯示的延遲,故希望使這種延遲最小化。
根據(jù)以上函數(shù),可以確定最小值dBmin(tmin)和會出現(xiàn)該最小值的時刻tmin。如果該最小值為負,也就是說如果存在時刻tmin,在該時刻處,解碼器2接收到的比特數(shù)少于要保持顯示在顯示設(shè)備5上的幀速率所需解碼的比特數(shù)時,則存在下溢狀態(tài)。
在本實施例中,為避免緩存下溢,在針對一時間段的解碼處理開始時引入緩沖器延遲tb=dBmin(tmin)/T這樣,在解碼處理開始前所收到的比特數(shù)為T*tb,由此將這么多的比特裝入緩沖器中。這樣就將dBmin升高到零,從而對緩沖器延遲進行了最小化。
所需緩沖量亦會變化,這是因為在低比特/幀速率時,到達的比特數(shù)大于解碼器對它們進行處理的速率。如果在對視頻包解碼之前沒有分配足夠的空間來存儲它們,就會出現(xiàn)緩沖器“溢出”。如果可以在傳輸視頻序列之前確定出所需的峰緩沖器大小,就可以預(yù)先在解碼器中預(yù)留出足夠的緩沖器容量。
如已經(jīng)討論過的,在給定時刻t處包含在緩沖器中的比特數(shù)“dB”由下式給出dB(t)=(T-R(t)*f)t利用該函數(shù),如果R(t)的值已知,則可以確定出特性dB(t)達到其峰值dBmax時的時間“tmax”。由此,可確定出為防止緩沖器溢出而分配的緩沖器大小“Bf”Bf=dBmax(tmax)+dBmin(tmin)其中dBmin表示為防止下溢而裝入緩沖器的比特的絕對最小值,如上文已經(jīng)討論過的那樣。
在真實的VBR傳輸中,tb值和Bf值不可能事先預(yù)知,因為它們有賴于累積變量R(t),而R(t)本身又依賴于編碼處理。但是本實施例在編碼器1處對序列采用了兩次編碼,所以能夠利用第一次處理(處理21)用編碼器1處的緩沖器控制處理21、22確定出函數(shù)R(t)。其他參數(shù)T和f也可以為編碼器1所用,故編碼器1可以確定出所需的緩沖時間tb(處理22)和緩沖器容量Bf(處理23),從而在數(shù)據(jù)的第二次處理中作為頭信息插入到傳輸序列的開頭。因此,通過在視頻序列傳輸之初將這些值告知解碼器側(cè)的緩沖器,可以防止“緩沖器下溢”和“緩沖器溢出”。另選的是,對這些值的限制可以由解碼器系統(tǒng)2來指定,并通知給編碼器1,從而對編碼器所確定的值進行檢查,使之在對“剪輯”進行流傳送之前同這些預(yù)定限制相兼容。
為了如上所述來控制緩沖器,需要提供頭信息,或設(shè)定默認值。圖2例示了一種無需這種額外頭信息來傳輸比特流的方法,該方法依據(jù)的是我們的共同未決國際申請的發(fā)明,該國際申請要求了上文提到的英國GB0428155.6號和GB0428156.4號專利申請的優(yōu)先權(quán)。
在該實施例中,比特流在具有固定保證帶寬(T)的傳輸信道上傳輸?;貞浬衔乃觯诮o定時刻t,剩余在緩沖器中的凈比特數(shù)“dB”由下式給出dB(t)=(T-R(t)*f)t其中f是幀速率,R(t)是累積平均每幀比特數(shù),為了避免緩沖器下溢,我們要求對于整個序列中的所有時刻“t”都有dB(t)≥0,并且得到R(t)≤T/f。為了將累積平均每幀比特數(shù)R(t)保持在該最大值以下,可能必須從傳輸中省略掉代表某些幀的數(shù)據(jù)。
為了實現(xiàn)這一點,根據(jù)上文提到的我們共同未決、要求了英國GB0428155.6號專利申請優(yōu)先權(quán)的國際申請所公開的發(fā)明,對編碼器19進行控制(31、32),以選擇性地從傳輸中省略掉代表某些幀的數(shù)據(jù),由此來避免下溢。這可以用三種不同的方式來進行第一,它可以是“離線”處理,該處理可以發(fā)生在上述編碼處理結(jié)束之后。作為另一種方式,它可以在上述第二次處理過程中動態(tài)地進行。第三種可能是,通過檢查每秒傳輸了多少幀,并依據(jù)下文所述的規(guī)則丟棄一些幀,該處理發(fā)生在傳輸某剪輯之前,而在對整個流編碼完成之后。
圖10例示了具有I幀、P幀和B幀的標準編碼視頻序列。H264、MPEG-4、MPEG-2和所有相關(guān)視頻壓縮的標準都使用了該模型(schema)。I幀建立起序列的初始狀態(tài),后續(xù)幀是通過確定每一幀與其相鄰幀的差異而生成的。每一P幀都被編碼為與之前的P(或I)幀不同,每一B幀都被編碼為與之前和之后的P幀均不同??梢钥吹较噜彽膸⒉灰蕾囉贐幀,所以如果丟棄一些B幀,則剩余的幀還是可以被解碼,而不會損失視頻解碼質(zhì)量和一致性。但是,丟棄個別P幀會影響對它們相鄰幀的解碼。因而得到只能丟棄B幀的結(jié)論。(應(yīng)注意,在確定累積每幀比特數(shù)R(t)時,將丟棄的B幀計算作大小為零的幀,這樣丟掉一幀就會造成整體每幀比特數(shù)的減小。類似地,接收到的幀速率f的值也會將丟棄的幀考慮在內(nèi))。
要丟棄的B幀的數(shù)是按如下確定的。在任意時間段t上,傳輸?shù)谋忍財?shù)都不得超出目標傳輸速率T。為實現(xiàn)這一點,在該時間段t內(nèi)對由幀生成的比特數(shù)進行求和(處理31),然后丟棄B幀,由此減去它們的比特數(shù),直到實現(xiàn)目標速率為止(步驟32)。
∑B(i)≤T×t其中T目標傳輸速率,∑B(i)時間段t內(nèi)由幀數(shù)生成的比特總和。
B幀可以隨機丟棄,或根據(jù)諸如“最大的先丟棄”(這樣所需丟棄的幀會較少)的標準來選擇性地丟棄,直到滿足條件為止。圖11中對此進行了展示。在每對P幀之間丟棄一個B幀,直到比特數(shù)降低到目標數(shù)為止。如果在達到目標之前,遇到了該段的末尾,則該處理重新來過,從每對P幀之間丟棄第二B幀,直到滿足條件為止。當(dāng)然,B幀與P幀的比率n(B)/n(P),在本實施例中是2,必須足以使本方法可行。
例如,設(shè)目標幀速率f=10幀/秒,傳輸速率T=20000比特/秒,時間窗口t=2秒,累積比特率/幀R(t)=2325,幀大小P1=3500比特,B2=1500比特,B3=1800比特,P4=4000比特,B5=2200比特,B6=1000比特,P7=3000比特,B8=1300比特,B9=1300比特,P10=2800比特。
該時間幀段內(nèi)編碼的總比特數(shù)=2240比特/幀,注意該值與R(t)不相同,因為R(t)是到此時間點時整個序列上的積累值。
將這些值代入上面得出的不等式f≤T/R(t),該10幀窗口生成了f’=20000/2325=8.6fps的幀速率。
為了達到目標幀速率f=10fps,需要在該窗口至少丟棄兩個B幀以使啟動延遲最小化,同時避免出現(xiàn)緩沖器下溢。要丟棄的幀的精確數(shù)由∑B(i)≤T*t求和公式來確定。對幀的大小進行求和3500+1500+1800+4000+2200+1000+3000+1300+1300+2800=22400=T+2400換句話說,必須通過丟棄“B幀”的方式去掉至少2400比特。從該段的頭開始,我們丟棄緊跟著第一個兩P幀中每一個的第一B幀(即B2、B5)。這樣的結(jié)果是丟掉了1500+1800=3300比特,足以滿足目標幀速率f。
圖11展示了如何按照這種方式來丟棄B幀。在該示例中丟棄了兩個幀,這樣就節(jié)省出2400比特,使啟動延遲得以最小化,并且無緩沖器下溢。對整個序列重復(fù)該處理。本發(fā)明通過在實際傳輸剪輯之前對要傳輸?shù)男盘栠M行修改,能夠避免緩存下溢。
允許存在剩余的啟動延遲tb,為的是少丟棄些幀。這會提供些額外的比特E=tb×T。
這些額外比特可以在整個序列中使用,從而保留一些B幀。例如,如果緩沖被設(shè)定為不超過2秒,則tb=2秒。如果T=20000比特/秒,則E=2秒*20000比特/秒=40000額外比特。在前面的實施例中,2400比特就可以使B幀免于被丟棄。所以如果從先前描述的示例中的時段(t)所需的比特中減去該額外比特,我們就得到40000-2400=37600比特>0。
換句話說,在那個時段,我們“保留”了兩個“B幀”(未被丟棄),并且我們還保存了37600額外比特可以用于接下來的時段,重復(fù)該處理直至剪輯的末尾。很明顯“緩沖”越大,被丟棄的“B幀”越少,但是啟動延遲卻會越大。
該處理需要從傳輸中丟棄序列的某些幀。需要遵守特定的原則,以保證所產(chǎn)生的對質(zhì)量的影響最小化。再參照圖1和圖2,我們可以想起,分段處理14被設(shè)置成,使得任意給定段中量化級別的變化都受限于閾值參數(shù)A。在要描述的處理中,在將流傳送至終端用戶時,該參數(shù)會限制幀速率的下降。
該閾值的存在確保了幀速率不會降低到以下給出的fnin之下fmin=(1-A)其中,f是目標幀速率,A是上文所定義的閾值。例如,如果閾值A(chǔ)=30%,則目標幀速率f=25fps,fmin=25×(1-0.3)=17.5fps。
在本例中,幀速率在整個序列中都不能降至17.5fps以下。
為了只能從“B幀”中選擇要丟棄的幀,“B幀”與“P幀”的比率為n(B)/n(P)≥kA
其中,n(B)=“B幀”的數(shù)量n(P)=“P幀”的數(shù)量k是選擇用于補償相對較大的P幀的常數(shù),通常比B幀大1.5至2倍。在下例中,我們選擇k=2。
例如,給定閾值A(chǔ)=30%,“B幀”與“P幀”的比率可以從下式得出n(B)/n(P)≥k×0.3=0.6。
換句話說,該處理要求針對該閾值,B/P比率應(yīng)該不小于0.6。在大多數(shù)執(zhí)行H264標準的情況下,該比率可以非常容易地設(shè)立。當(dāng)然,當(dāng)實際比率超過目標幀速率時,就無需為了避免緩沖器饑餓而丟棄任何幀了。
需要注意的是,雖然丟棄了單獨的B幀,但接收器可以通過對視頻流中和相應(yīng)的音頻流中的時間戳進行比較,或者通過代替丟失幀而傳輸?shù)慕?jīng)編碼的“位置標記(place marker)”,或者因為接收到的B幀和P幀的常態(tài)模式(nomal pattem)中B幀的缺失,而檢測到這些幀的缺失。接收器通過重復(fù)一幀、在幀間進行內(nèi)插,或者延長已存在幀的持續(xù)時間,來補償丟失的幀。
在對序列進行流傳送的過程中,在接收器處進行根據(jù)我們的共同未決國際申請(要求GB0428156.4號英國專利申請的優(yōu)先權(quán))中的發(fā)明的緩沖器溢出避免處理。與前文所述的緩存下溢避免系統(tǒng)類似,這有賴于B幀的存在,以及利用閾值A(chǔ)對流進行編碼,該閾值A(chǔ)限制了每幀比特數(shù)的變化。
將分配給終端設(shè)備的最大內(nèi)存定義為M。如果超出了該值,就會出現(xiàn)“緩沖器溢出”。已經(jīng)知道,“緩沖器”在對序列進行流傳送的整個過程中的狀態(tài)由下式來表示dB(t)=(T-R(t)*f)t。
通過應(yīng)用早先描述的處理,我們可以確信對于任何t,都有dB(t)≥0。
為了避免“緩沖器溢出”,對于任意時段t,都有dB(t)≤M,將最大傳輸幀速率fmax的閾值定義為fmax≤f(1+A)其中,f目標幀速率,
A閾值變化fmax最大實際傳輸幀速率例如,對于目標幀速率f=25fps,閾值變化設(shè)為A=30%,fmax≤25*(1+0.3)=32.5幀每秒。
這是傳輸幀速率的最大值,其負責(zé)構(gòu)造緩沖器內(nèi)容。
特性fmax確保了在時間段t上傳輸?shù)膸校瑢G棄不大于A(=30%)的比例,所以得出的幀速率不會低于目標幀速率的30%。
緩沖器溢出可以通過使用這兩個參數(shù)M和fmax來避免。首先確定比特率(步驟41)。如果條件dB≤M得到滿足,就無需進行任何測量,因為緩沖器溢出不會發(fā)生。但是,在該條件未得到滿足的情況下,從最近從網(wǎng)絡(luò)上傳送來的段中丟棄幀。按照與結(jié)合編碼器已經(jīng)討論過的方式相同的方式來確定要丟棄的“B幀”的數(shù)量∑B(i)≤T*t其中,T目標傳輸速率,∑B(i)由包含在該時段t中的幀數(shù)生成的比特總和。
可以利用與前文所述同樣的規(guī)則來丟棄B幀從而避免下溢,如圖11和圖12所示。
圖12展示了在圖2中解碼器2處進行的處理42,并例示了在省略掉其中一個幀(93)的所選B幀從而避免了“緩沖器溢出”前后的四幀(91,92,93,94)序列。在整個序列上重復(fù)該處理。
接收器2對解碼出的視頻幀時間戳和音頻流時間戳應(yīng)用同步處理7。這使得幀保持顯示較長時間,或者重復(fù)顯示一幀直到音頻時間戳重新和它同步為止。
圖2、10、11和12中例示的模式不需要在“視頻流會話”之前傳輸額外的信息,而且各個圖像的質(zhì)量并沒有下降,但在顯示視頻時感觀質(zhì)量可能受損,這是因為省略了某些幀。然而,感觀質(zhì)量總比通過“CBR”編碼達到的好得多。這種模式還無需在剪輯開始時進行緩沖,從而使“啟動”延遲最小化,而不會出現(xiàn)緩沖器下溢。此外,可以容易地控制緩沖器溢出,從而內(nèi)存有限的設(shè)備將能夠盡可能有效地顯示經(jīng)VBR編碼的視頻序列。
本發(fā)明可以用來控制單個流,或者它也可用于多信道速率控制。換句話說,一個流可以被傳送到與具有不同傳輸速率(T)或“帶寬”的不同“管道”上的設(shè)備。例如,如果對“VBR”剪輯進行編碼,則應(yīng)用上述定義的規(guī)則且目標傳輸速率T=500kbps,該序列可以被流傳送至連接在網(wǎng)絡(luò)上的帶寬范圍很大的若干設(shè)備。所有這些設(shè)備都將接收到同樣的視頻質(zhì)量,但低帶寬設(shè)備會體驗到降低的幀速率。每臺設(shè)備都可以根據(jù)其連接來設(shè)定其“目標傳輸速率”,然后對該“目標傳輸速率”應(yīng)用上文描述的規(guī)則以及函數(shù)。
權(quán)利要求
1.一種視頻信號壓縮處理,其中將視頻序列分為多幀段,確定以非壓縮形式對各個視頻段進行編碼所需的比特數(shù),為傳輸各個段而選擇量化級別,使得段的總體比特率落入預(yù)定限度內(nèi)。
2.根據(jù)權(quán)利要求1所述的處理,其中將所述視頻序列分為多個段,使得在每個段中,以非壓縮形式對各個幀進行編碼所需的比特數(shù)都落入預(yù)定大小的范圍內(nèi),并為每個段確定一量化級別。
3.根據(jù)權(quán)利要求1或權(quán)利要求2所述的處理,其中如果在三個連續(xù)的段中,第一和第三段都選擇了相同的量化級別,則該量化級別同樣適用于中間段。
4.根據(jù)權(quán)利要求1、2或3所述的處理,其中對一個段和下一個段之間的量化級別的較大變化進行平滑處理。
5.根據(jù)權(quán)利要求4所述的處理,其中所述平滑處理是通過對位于所述段之間的邊界上的多個幀逐步增量調(diào)節(jié)量化級別來執(zhí)行的。
6.根據(jù)權(quán)利要求5所述的處理,其中對量化級別的逐步調(diào)節(jié)降低了具有較高比特率的段中的幀的比特率。
7.根據(jù)前述任意一項權(quán)利要求所述的處理,其中通過以下方式來確定對各個段進行編碼所需的量化級別用多個量化值中的每一個對所述序列中的每一幀進行編碼,并從中確定出最滿足所需比特率的量化值。
8.根據(jù)前述任意一項權(quán)利要求所述的處理,該處理還包括用于確定對所得比特流進行解碼所需的緩沖器參數(shù)的處理。
9.根據(jù)權(quán)利要求1至7中任意一項所述的處理,該處理還包括用于從所得比特流中選擇性地刪除幀,以使所述比特流可以在預(yù)定的緩沖器延遲內(nèi)不出現(xiàn)緩沖器下溢的情況下被解碼的處理。
10.根據(jù)前述任意一項權(quán)利要求所述的處理,其中在對所述序列進行的第一次處理中,為所述序列中的每個段確定量化級別,而在對所述序列進行的隨后處理中,使用所選的量化級別對每個段進行編碼,并傳輸所述序列。
11.一種用于生成壓縮信號的視頻編碼器,該視頻編碼器包括用于將視頻序列分為多幀段的裝置;用于確定以非壓縮形式對各個段進行編碼所需的比特數(shù)的裝置;以及用于為傳輸各個段而選擇量化級別,使得段的總體比特率落入預(yù)定的限度內(nèi)的裝置。
12.根據(jù)權(quán)利要求11所述的編碼器,該編碼器包括用于將所述序列分為多個段,使得在每個段中,以非壓縮形式對各個幀進行編碼所需的比特數(shù)都落入預(yù)定大小的范圍內(nèi)的裝置;以及用于為每個段選擇一量化級別的裝置。
13.根據(jù)權(quán)利要求11或權(quán)利要求12所述的編碼器,其中所述量化級別選擇裝置被構(gòu)造用于識別出現(xiàn)在所述序列中的介于兩個選擇了相同量化級別的段中間的段,并且將該級別也應(yīng)用于所述中間段。
14.根據(jù)權(quán)利要求11、12或13所述的編碼器,該編碼器包括用于對一個段和下一個段之間所選擇的量化級別的較大變化進行平滑處理的裝置。
15.根據(jù)權(quán)利要求14所述的編碼器,該編碼器包括用于對位于所述段之間的邊界上的多個幀逐步增量調(diào)節(jié)量化級別的裝置。
16.根據(jù)權(quán)利要求15所述的編碼器,其中所述調(diào)節(jié)裝置被構(gòu)造用于降低具有較高比特率的段中的幀的比特率。
17.根據(jù)權(quán)利要求11到16中任意一項所述的編碼器,該編碼器包括利用多個量化值中的每一個對序列中的每一幀進行編碼的裝置;以及用于從中為各個段確定最滿足所需比特率的量化值的裝置。
18.根據(jù)權(quán)利要求11到17中任意一項所述的編碼器,該編碼器還包括用于確定對所得比特流進行解碼所需的緩沖器參數(shù)的裝置。
19.根據(jù)權(quán)利要求11到17中任意一項所述的編碼器,該編碼器還包括用于識別所述序列的將導(dǎo)致足以造成緩沖器饑餓的幀速率降低的段的裝置;以及用于從所得比特流中選擇性地刪除幀,從而可以在不出現(xiàn)緩沖器饑餓的情況下對所述比特流進行解碼的裝置。
20.根據(jù)權(quán)利要求11到19中任意一項所述的編碼器,該編碼器包括用于在對所述序列進行第一次處理時確定要采用的編碼模式的裝置;以及用于在對所述序列進行第二次處理時利用所選量化級別對所述序列的各個段進行編碼以進行傳輸?shù)难b置。
全文摘要
本發(fā)明涉及視頻信號處理。對視頻序列(4)進行信號壓縮處理,其中將所述視頻序列分為(14)多個段,使得在各個段中,以非壓縮形式對各個幀進行編碼所需的比特數(shù)都落入預(yù)定大小的范圍內(nèi),并且選擇(17)用于對各個段進行編碼(19)的量化級別,使得該段的總體比特率對應(yīng)于預(yù)定值。該值可以預(yù)先設(shè)定,或者可以響應(yīng)于來自傳輸網(wǎng)絡(luò)(3)或遠程解碼器(2)的輸入而設(shè)定。根據(jù)每幀比特數(shù)R的函數(shù)來確定量化級別Q,該函數(shù)是通過在傳輸前對整個序列進行分析(10、11、12、13)而確定的。
文檔編號H04N7/26GK101084676SQ200580044043
公開日2007年12月5日 申請日期2005年12月8日 優(yōu)先權(quán)日2004年12月22日
發(fā)明者奧頓·卡瑪里奧蒂斯, 羅里·斯圖爾特·特恩布爾, 羅伯托·阿爾瓦雷斯·阿雷瓦洛 申請人:英國電訊有限公司