利用緩存器控制的視頻編碼器和編碼方法
2023-10-23 23:45:27
專利名稱:利用緩存器控制的視頻編碼器和編碼方法
技術領域:
本發明的背景本發明涉及視頻數據的緩存,較具體地涉及採用推塞型數據流(push dataflow)方式向觀眾提供的視頻數據的緩存。推塞型數據流是這樣一種技術,其中諸如視頻、文本和/或畫面等信息數據是在不作互動的情況下廣播給觀眾的(可能的例外是接收方事先建立了一個信息文檔)。
在推塞型數據流通信方案中,為了限制視頻解碼器所需的存儲量要求,需要有一個視頻傳輸率(rate)緩存器模型。利用該緩存器模型,可以把視頻編碼器限制得能產生可以由解碼器的預定緩存器存儲量來解碼的比特流。
活動圖象專家組(MPEG)所公布的MPEG-4視頻最終委員會草案(FCD)No.N2202目前沒有規定能把存取單元大小(例如編碼的「視頻物體平面」(VOP)的大小)、解碼時間、以及視頻數據流的比特率與用於緩存相應數據的緩存器存儲量相關聯起來的視頻傳輸率緩存器模型。該FCD在此引用作為參考。該FCD關於視頻緩存檢驗器(VBV)的附錄D對於上述信息只是討論了一個空的位置保持器。MPEG-4系統FCD(N2201)定義了一個緩存器模型,該FCD也在此引用作為參考。但並沒有以與視頻數據相容的方式給出各種有關場的規範性(normative)定義。
給出一個與上述附錄D兼容且能明確表述視頻FCD和系統FCD的句法之間的關係的緩存器模型將是有益的。這樣的緩存器模型應該能利用適當級別的緩存器管理技術容易而直接地實現對視頻解碼器所需存儲量要求的限制,從而使得能成功地提供推塞型數據流。本發明即提供具有上述和其他優點的視頻傳輸率緩衝器模型和管理技術。
本發明的概述根據本發明提供了一種方法和設備,使得例如視頻等數據能夠用推塞型數據流方式廣播,而不會給解碼器處的用於被推塞的數據的數據傳輸率緩衝器出現上溢(overflow)或下溢(underflow)。在編碼器處,對傳送給解碼器的數據進行編碼,以提供一個輸出比特流。在編碼器處模擬解碼器的數據傳輸率緩衝器。該模擬被用來控制輸出比特流,以防止解碼器緩存器的上溢或下溢。例如,可以通過監視一個以相反於解碼器緩存器的方式工作的互補編碼器緩存器並將它逆轉來提供模擬。公開了各種不同的技術來控制編碼器處產生的數據量,使得數據被保持在解碼器緩存器的限制範圍內。這些技術包括,當編碼器處的模擬表明解碼器緩存器已經或者將要太滿時,將減小量化水平以產生大的VOP或者在VOP尾端輸出一些充填比特。當模擬表明解碼器緩存器已經或者將要太空時,則編碼器可以增大量化水平來產生較少的比特,或者延遲下一個VOP的產生,或者令一些高頻係數變為零,來減少為每個VOP產生的比特數。
附圖的簡單說明
圖1是緩存器佔用率(b(t)<B)對解碼時間(t)的關係曲線圖;以及圖2是說明根據本發明的編碼器和解碼器設備的方框圖。
本發明的詳細說明MPEG-4視頻緩存檢驗器(VBV)是一種算法,用於通過檢測比特流加上傳送率函數R(t)來檢驗推塞型數據流情況下所需的傳輸率緩衝器存儲量小於所述的緩存器大小。如果一個視頻比特流由多個視頻物體(VO)組成,每個VO有一個或幾個視頻物體層(VOL),則數據傳輸率緩衝器模型將獨立地應用於每個VOL(利用該VOL所特有的緩存器大小和傳送率函數)。
本發明對被編碼成I(幀內)、P(預測)和B(雙向)VOP的組合的自然視頻信號應用緩存器檢驗技術,它可以推廣到覆蓋全視頻句法以及動畫(sprite)和合成視頻物體。根據本發明,視頻編碼器將控制其輸出比特流使之符合一個視頻緩存檢驗器(VBV)的要求。該VBV的定義如下1、VBV的大小由VOL頭部中的場vbv-buffer_size(VBV緩存器大小)以16384個比特為單位來規定。vbv-buffer_size為0是禁止的。「B」的定義是16384×vbv-buffer_size,它是以比特為單位的VBV大小。注意,在這裡所公開的實施例中,VBV緩存器的最大大小為4G比特。vbv-buffer_size的值僅在一個visual_object_sequence_end_code(視頻物體序列結束碼)之後才可改變。
2、編碼器所「看到」的瞬時視頻物體層信道比特率用Rvol(t)表示,其單位為bps(比特每秒)。如果VOL頭部中存在bit_rate(比特率)場,則它定義了峰值比特率(單位為400bps,bit_rate為0是禁止的),以使Rvol(t)=400×bit_rate。注意,Rvol(t)僅計及當前VOL的視頻句法(參見下面對di的定義)。如果該信道以串行時間復用方式包含了一些其他的VOL,或者如ISO/IEC14496-1那樣以編碼器所看到的總瞬時信道比特率R(t)來定義,則有 3、開始時VBV緩存器是空的。在找到第一個VOL頭部之後,則在緊跟於該VOL頭部後面的初始VOP解碼之前,檢查vbv_occupancy(VBV佔用率)場以確定VBV緩存器的初始佔用率,其單位為64比特。VBV緩存器中的第一個比特是包含了含有vbv_occupancy場的VOL頭部的VOP(將在下面「4」中定義)的第一個比特。後繼各VOL頭部中後面的vbv_occupancy場與去除包含VOL頭部的VOP之前的運行累積的緩存器佔用率(bi+di,後面將有定義)之間的差值應該小於64比特。
4、定義di為第i個VOP的大小,單位為比特,其中i為VOP序號,按解碼次序依次增加1。圖1示出緩存器佔用率(b(t)<B)對解碼時間(t)的關係曲線,其中標出了參數di。較準確地說,di是視頻句法比特的數目,其起始計數點可以是以下兩種情況之一(1)前一視頻物體、靜止紋理(texture)物體、網孔(mesh)物體或臉部物體後的最後一個比特(排他的)(也要除去任何緊接在該比特後面的充填碼字);或者(2)從視頻物體序列開始碼的第一個比特(包括其在內的)(對於視頻比特流第一個VOP的情形)到當前VOP的最後一個比特(包括其在內的)(包括位於該VOP尾部的任何充填碼),包括位於該VOP前面的視頻物體頭部、物體層頭部和VOP的頭部群。
注意,由於開始碼的對準,編碼VOP的大小(di)永遠是8比特的倍數。
5、設ti(圖1)是解碼序號為i的VOP的解碼時間。在時間ti,瞬間從傳輸率緩存器除去VOP i的所有比特(di)。這一「瞬間除去」性質是VBV緩存器模型與實際傳輸率緩存器的區別。
6、τi是VOP i的合成(composition)時間(或者,在非合成器解碼器中,τi是提供(presentation)時間)。對於一個視頻物體平面,τi的定義為VOP_time_increnment(VOP時間增量,其單位為一秒鐘的l/vop time_increment_resolution(VOP時間增量解析度))加上由module_time_base(模時間基)所規定的全部時間(秒數)的累積數。對於隔行掃描視頻信號,一個VOP由兩個場的各個行組成,τi是第一個場的合成時間。對於一個VOP,合成時間與解碼時間之間的關係為
ti=τi-(((vop_coding_type=BVOP)|low_delay) 0:mi)其中low_delay在VOL不含B-VOP時為真(1)。如果存在B-VOP,則將延遲錨VOP的合成,直到已合成了所有相繼的B-VOP。這一延遲時間為mi=τf-τp,其中f是VOPi的最近將來的錨VOP的序號,P是VOPi的當前(或最近過去)的錨VOP的序號。
下面的例子將說明,對於一個含有數目可變的連續B-VOP序列,如何來確定mi解碼次序I0P1P2P3B4P5B6P7B8B9P10B11B12提供次序I0P1P2B4P3B6P5B8B9P7B11B12P13在該例子中,假定了VOP_time_increment=1,modulo_time_base=0。下標I為解碼次序。
iτitimi0 0 0_1=_111 1 1_1=0 12 2 2_1=1 13 4 4_2=2 24 3 3 25 6 6_2=4 26 5 5 27 9 9_3=6 38 7 7 39 8 8 310 1212_3=9311 1010312 111137、定義bi為緊接著從傳輸率緩衝器中除去VOPi之後的緩存器佔用率(單位比特)。圖1中標出了參數bi。利用上述定義,可以用遞推法來確定bi
b0=64×vbv_occupancy-d0bi+1=bi+titi+1Rvol(t)dt-di+1i0]]>8、傳輸率緩衝器模型要求VBV緩存器永遠不會上溢或下溢,也即0≤bI以及bi+di≤B對於所有i利用真實值算法來計算bi,使得誤差不會累積。
編碼VOP的大小必須永遠小於VBV緩存器的大小,也即di<B對於所有i。
對編碼器的一個要求是它能產生既不會使解碼器的VBV緩存器上溢又不會使之下溢的比特流。這意味著編碼器必須知道解碼器所「看到」的瞬時信道比特率Rvol,decoder(t)(其中「decoder」代表解碼器)。如果在某一特定比特進入信道的時間t,編碼器的比特率Rvol, encoder等於Rvol,decoder(t+L),則一個信道將具有恆定的延遲,其中該比特將在(t+L)時間被接收到,L是一個常數。對於恆定延遲信道,編碼器可以利用在其本機估算的Rvol,decoder(t)來模擬VBV的佔用率(其中「encoder」代表「編碼器」),並據此來控制每個VOP的比特數di,從而防止上溢或下溢。
VBV模型假定了一恆定延遲信道。這使得編碼器能利用Rvol, decoder(t)來產生既不會使緩存器上溢又不會使緩存器下溢的VOL比特流。注意,這裡的Rvol(t)被定義為上述第「2」點中的Rvol,encoder(t)。
圖2以簡化方框圖的形式示出了編碼器和解碼器。要編碼的數據被輸入給與編碼器數據傳輸率緩衝器22相耦合的編碼器處理器20。緩存器22以互補於解碼器30的數據傳輸率緩衝器32的方式工作。通過監視數據傳輸率緩衝器22,編碼器處理器20便能模擬解碼器的數據傳輸率緩衝器32。
編碼器處理器向一個發送機24提供輸出比特流,發送機24通過一個通信信道26把該比特流發送給一個接收機28。接收機以普通方式把接收到的比特流提供給解碼器30。解碼器30對該比特流解碼以提供所需的輸出數據。
下面將說明,在非恆定延遲網絡環境下如何來處理實時視頻數據。這一處理只是一個假設的模型,它不是如何把MPEG-4比特流連接到非恆定延遲信道中去的一個要求或建議。如果該信道不具有恆定的延遲,以使得1、在網絡接口和中間節點(例如ATM或IP網絡中使用的開關或路由器)上存在未知、可變的逐個數據包的排隊延遲;2、信息以帶有時間標記的數據包的形式傳送;以及3、數據包的最小信道等待時間(latency)與最大信道等候時間之間的差值是有界限的(例如通過服務質量協商確定)。
那麼,可以利用一個位於解碼器前面的去跳變緩存器近似一個恆定延遲信道。該去跳變緩存器將保持每一個可變的等候時間的數據包,直到過去最大信道等候時間之後才把相應的數據包釋放給編碼器(根據數據包的時間標記確定保持的時間長度)。這樣做之後,該信道將具有等於最大信道等候時間的恆定延遲。
句法修改本發明通過給VOL頭部加上一個vbv_occupancy場(26比特)而修改了MPEG-4標準的句法。這個整數值是剛除去跟隨在VOL頭部後面的第一個VOP之前的VBV佔用率,其單位為64比特。這個量的作用是為VBV緩存器的充滿程度提供初始條件。
為了防止MPEG-4系統(ISO/IEC14496_1)與MPEG-4視頻(ISO/IEC 14496_2)之間的信息重複,還為了能用一個作為獨立實體的基礎視頻流來規定一個緩存器模型,加上了一個vbv_parameters(VBV參數)標誌來控制在VOL頭部中能包含VOP_rate_code(vop頻率碼)、bit_rate(比特率)、low_delay_vbv_size、和vbv_occupancy。如果在一個密封復用系統(encapsulating systemmuleiplex)中不存在等價的信息,則對於一個推塞型數據流視頻比特流vbv_parameters的值將為「1」。句法中將保留vol_control_parameters比特,以控制在VOL頭部中能包含chroma_format(色彩格式)和aspectratio_information(幅面比例的信息)這兩個場。
當存在bit_rate和vbv_size場時,FCD COL句法包含潛在的開始碼競爭問題(因為可能發生連續出現23個或更多個0比特的情況)。為了避免這一問題,加上了一些標記符比特(這些比特的值永遠為「1」)。被這些標記符比特分開的各個場按如下定義bit_rate =(bit_rate_msbs<<12)|bit_rate_lsbs;vbv_size =(vbv_size_msbs<<10)|vbv_size_lsbs;vbv_occupancy =(vby_occupancy_msbs<<15)|vbv_occupancy_lsbs;
這樣得到的句法如表1所示表1
關於表1的注釋1、MPEG-4視頻FCD中沒有定義aspect_ratio_information和VOP_rate_code的編碼。
2、為了使用帶有推塞型數據流模型的編碼比特流,一個規範性要求是,vbv_parameters必須設定為「1」,或者,如下面第4項所定義的等效信息必須被包含在系統層中。
3、如果提供了VOP_rate_code,則由VOP_time_increment所規定的合成時間與累積的modulo_time_base之間的差值必須是與VOP_rate_code相關的幀周期的精確整數倍。在該情形中,VOP_time_increment resolution的寬度必須增加一個比特,以準確地代表59.94HZ(即60000/1001HZ)。
與MPEG-4系統的關係下面公開的內容定義了MPEG-4系統(ISO/IEC 14496-1)基礎流接口與視頻解碼器(或編碼器)的術語、語意和句法之間的關係,使得系統解碼器模型(SDM)能與視頻緩存器檢驗器相一致。在此情形中,視頻VBV緩存器和SDM解碼器緩存器(DBr)有相同的語意。在一個集成的視頻/系統解碼器模型中,這兩個緩存器是同一個緩存器。
1、一個自然視頻存取單元是一個編碼VOP。一個編碼VOP的大小(di)和精確合成已在前面參考圖1進行了定義。
2、用來確定物體時鐘參考(OCR)、解碼時間標記(DTS)和合成時間標記(CTS)的物體時間基(OTB)與用來確定VOP_time_increment和modulo_time_base的時間基是相同的。同步層(Sync Layer)的timestampResolution(時間標記解析度)和OCRResolution(OCR解析度)必須是VOP_time_increment_resolution的整數倍,這樣才不會損失時間精度,使所有時間計算都能在整數算法中準確。
3、合成時間標記等於τi加上一個常數(K),即CTSi=nitimeStampResolution+timeStampResolutionVOP_time_incrementiVOP_time_increment_resolution+K]]>其中ni是從初始VOL頭部開始的累計modulo_time_base值。
4、從CTS確定解碼時間標記的方法類似於從τi計算ti的方法,即DTSi=CTSi-(((vop_coding_type==BVOP)||low_delay) 0:
mi)這個公式確定了解碼是瞬時的,而且只有DTS與CTS之間的差值反映了各個錨VOP的重新排序。注意,當low_delay為0時(當上述條件表達式為真時)DTS僅出現在錨VOP上。
5、這裡將定義在此時編碼器本機物體時間基的值與DTSi值之間的關係。假設含有一個VOP頭部的存取單元的第一個比特在該VOL頭部中規定的vbv_occupancy和時間OCRi的情況下被存儲在VBV(或SDM DB)中,則vbv_occupancy=164OCRIDTSiRvol(t)dt]]>對於OCRResolution和timestamp Resolution的一個隱含要求是,vbv_occupancy的計算要精確到其最接近的整數。
6、如果系統層(SL)的RandomAccessPointFlag(隨機存取點標誌)設定為「1」,則表明開始於這個SL數據包的存取單元中存在有一個VOL頭部。
7、bufferSizeDB(緩存器大小DB)的DecoderConfigDeseriptor(解碼器構形描述符)的值等於2048×vbv_buffer_size。maxBitrate(最大比特率)場的值必須是400×bit_rate(比特率)。
下面將給出由vbv_information(VBV信息)比特所控制的VOL頭部信息與MPEG-4系統層中規定的各種句法實體之間的對應關係。如果MPEG-4標準的兩個部分重複了該信息,則不允許有任何不一致。
1、Vop_rate_code(VOP傳輸率碼)由同步層compositionUnitDuration(合成單元持續時期)和timeScale(時間標尺)代表。其中time Scale必須是VOP_time_increment_resolution的整數倍。
2、bit_rate和vbv_size由DecoderConfigDescriptor中的maxBitrate和bufferSizw DB指明。
3、vbv_occupancy由前面定義的OCR與DTS之間的差值間接地指明。
4、low_delay由第一個I-VOP的DTS隱含性地規定。如果存在DTS(且不等於PTS),則low_delay=0,否則low_delay=1。
MPEG-4 VBV與MPEG-2 VBV之間的比較
MPEG-2和MPEG-4 VBV模型都規定了,傳輸率緩衝器不可以上溢或下溢,以及編碼的畫面(VOP)要瞬時地從緩存器去除。在這兩個模型中,都規定了在緊接於一個編碼的畫面/VOP以包括在畫面/VOP的前面的所有較高等級的句法。
MPEG-2視頻具有恆定的幀周期(雖然比特流可以既含有幀畫面又含有場畫面,而且幀畫面可以藉助於repeat_first_field(重複第一場)標誌來採用顯式的2:3下拉)。用MPEG-4的語言來說,這樣的幀率可能是合成器的輸出(用MPEG-2的語言來說這是顯示處理的輸出,而MPEG-2並沒有對此作出規範性的定義)。這個輸出幀率加上MPEG-2的picture_structure(畫面結構)和repeat_first_field標誌精確地定義了解碼處理與顯示處理之間經過的相繼解碼畫面(幀或場均可)之間的時間間隔。
一般,MPEG-2比特流包含B畫面(我們假定MPEG-2的low_delay=0,對於low_delay=1的情況請參見下節)。這意味著各畫面的編碼次序與顯示次序是不同的(因為一個B畫面所使用的兩個參考畫面在編碼次序上都必須位在該B畫面的前面)。MPEG-2 VBV(以及MPEG-2系統T-STD)規定,B畫面是在同一時間(瞬時)被解碼和提供的,為了能做到這一點錨畫面要被重新排序。這與前面定義合成時間t1中規定的重新排序模型是相同的。
如果由vop_time_increment和累計的modulo_time_increment所給出的MPEG-4VOP時間標記與序列MPEG-2畫面的提供時間一致,則採用了所提議MPEG-4VBV緩存器模型的假設MPEG-4解碼器將準確地模仿採用了MPEG-2 VBV緩存器模型的假設MPEG-2解碼器。這裡我們假定編碼的畫面/VOP都採用了這兩個標準中的共同子組(幀結構的畫面以及解碼器上沒有3:2的下拉,也即,repeat_first_field=0)。例如,如果MPEG-2序列以29.97Hz(NTSC中的畫面傳輸率)編碼,則由於MPEG-2中不允許畫面跳越(當low_delay=0時),所以vop_time_increment_resolution必須為30000,並且按提供次序的各相繼VOP之間的VOP_time_increment改變必須為1001。
類H.263緩存器模型在H.263中,不存在B-VOP,解碼與提供之間也不存在合成單元的重新排序。
H.263的假設參考解碼器(HRD)可以等價於MPEG-4 VBV。在類H.263緩存器模型中,VBV緩存器大小按下式計算vbv_buffer_size=A+BPPmaxKb×1024(比特),其中,(BPPmaxKb×1024)是經協商用於比特流的每個畫面的最大比特數,以及A=4×Rmax/P,其中Rmax是連接期間最大視頻比特率(每秒的比特數),P是畫面頻率,按共同中間格式(CIF)規定其等於29.97Hz,對應於vop_time_increment_resolution=3000和Δvop_time_increment=1001。
起初,VBV是空的。VBV按CIF間隔檢查。如果發現緩存器中至少有了一個完整的編碼VOP,則立即除去按比特流(或解碼),次序來說是最早的VOP的所有數據。緊接著除去上述數據之後,緩存器佔用率必須小於A。在該情形中,第(i+1)個編碼畫面的比特數di+1必須滿足di+1bi+titi+1R(t)dt-A]]>bi是在緊接著從緩存器除去第i個編碼畫面之後的緩存器佔用率;ti是從VBV緩存器除去第n個編碼畫面的時間;以及R(t)是時間t的視頻比特率。
MPEG-4 VBV模型與H.263模型的重要區別是,編碼器為比特流中的每個VOP規定了合成時間ti,這再次意味著編碼器必須知道R(t)和A,解碼器所「看到」的瞬時比特率。而且,如果假定是恆定延遲信道,那末上述這個假設是成立的。
low_delay=1時的MPEG-2模型與HRD有一些相似點。第一,不使用B畫面,所以解碼和提供的次序相同。第二,規定了一個畫面周期(但不一定是29.97Hz),用來檢查緩存器。如果下一個要解碼的畫面在下一個畫面周期內還沒有被完全接收到(這種畫面叫做「大畫面」),則在每個為畫面周期整數倍的時間都要重新檢查一次緩存器,直到編碼畫面完全存儲到緩存器中。然後將瞬時地解碼和顯示該大畫面。在大畫面尚未完全接收到的那些畫面周期內,解碼器輸出端將保持前一個圖像。編碼器仍然負責防止上溢和下溢,而大畫面的各個MPEG-2 temporal_reference場與前面的這個場之間的差值就是大畫面前面那個畫面的顯示持續時間(以幀周期位單位)。
延伸至完整視頻句法覆蓋完整的視頻句法需要延伸到動畫、靜止紋理物體、網孔物體、和臉部物體。在此情形下VBV將支持visual buffer verifier(視頻緩存器檢驗器)。
動畫MPEG-4中規定了基本動畫、低延遲動畫、和可縮放動畫。對於動畫比特流的產生不存在概念上的問題。不過,為了充分利用解碼器中較大的動畫存儲器,可以採用大的vbv_size。
靜止紋理物體雖然不能直接合成一個靜止紋理物體,但它是單個存取單元。靜止紋理物體被用作後面解碼器(例如網孔解碼器)的輸入。在推塞型數據流情形中,靜止紋理物體沒有緩存器參數或時間標記來控制該可視物體。可能必須給StillTextureObject(靜止紋理物體)加上如下面表2所示的句法表2
time_stamp_fraction的比特數由不可能為零的time_stamp_fraction_bits規定。
網孔和臉部物體網孔視頻物體的存取單元是網孔物體平面。臉部視頻物體的存取單元是臉部物體平面。由於不需要重新排序,所以ti=τi。
這兩種物體有一個共同的時間信息規範temporal_header(時間頭部)。當網孔/臉部物體是內部編碼的時,temporal_header可以任選地規定一個幀傳輸率和一個時間標記(一個IEC461時間碼規定了小時數、分數、秒數和幀數),這裡的時間標記規定了網絡/臉部物體平面的合成時間。時間碼的原點(00:00:00:00)必須與MPEG-4系統(ISO/IEC 14496 1)中對DTS和CTS所使用的時間原點相一致。物體平面之間的時間等於1+∑number_of_frames_to_skip(要跳越的幀數)乘以幀周期。這使得能從前一個內部的網孔/臉部物體的CTS構築出一個絕對的CTS。
為了把緩存器模型應用於網孔/臉部物體的視頻比特流,需要給MeshObject(網孔物體)和FaeeObject(臉部物體)加上由vbv_parameters(除了low_delay和VOP_rate_code之外)控制的VBV參數,如下面表3所示表3
傳輸率緩衝器的管理由於防止解碼器VBV緩存器上溢或下溢是編碼器的責任,所以編碼器必須模擬解碼器VBV緩存器。被模擬的解碼器VBV緩存器不能太滿或太空。
為了防止解碼器VBV緩存器下溢,編碼VOP的全部數據必須在它們的解碼時間之前完全發送給解碼器緩存器。假定第i個VOP的編碼從時間tIe開始,而其解碼時間為ti。則在第i個VOP被編碼後,傳送的數據量等於tIe時間的編碼器緩存器飽滿度(用ebIe表示)加上該VOP的編碼大小(di)。這個數據量必須小於或等於從信道接收到的數據量ebie+ditietie+LRvol,decoder(t)dt,]]>
其中有解碼時間ti=tie+L。對於恆定延遲信道,存在Rvol,decoder(t)=Rvol,encoder(t_L)(下標中的decoder和encoder分別代表解碼器和編碼器)。
所以,ebie+ditie-LtieRvol,encoder(t)dt]]>因此,編碼器緩存器在時間tie的飽滿度受下述上限的限制ebietie-LtieRvol,encoder(t)dt-di=T2.]]>對於具有已知最小傳送率Rvol,min這種類型的信道,可以把T2設定為tietie+LRvol,decoder(t)dt-di]]>的低限值,即設定T2=L·Rvol,min-di.
為了防止解碼器緩存器的上溢,解碼器緩存器的飽滿度在緊接著的除去VOPi之前的時間ti必須小於解碼器緩存器大小B。這個飽滿度可以表示為tie時間的解碼器緩存器飽滿度bie加上從時間tie到達ti之間進入解碼器VBV緩存器的比特數(tietie+LRvol,decoder(t)dt)]]>減去從時間tie到ti之間從解碼器緩存器移出的比特數。由於VOPi前面的所有比特流數據都必須在能對VOPi解碼之前被用完,所以移出的比特數等於在緊接著添加VOPi之前的tie時間的編碼器緩存器佔用率ebie與時間tie時的解碼器緩存器佔用率bie之和。由於VOPi還沒有添加給編碼器緩存器,所以上述最後兩個量(ebie與bie)代表了VOPi之前的比特流數據。因此,解碼器緩存器中的總比特受下式限制bie+tietie+LRvol,mdecoder(t)dt-(ebie+bie)B]]>或者tietie+LRvol,decoder(t)dt-ebieB.]]>因此,tie時間的encoder_buffer_fullenss(編碼器緩存器飽滿度)的下限受下式限制ebie>tietie+LRvol,decoder(t)dt-B=T1.]]>前面關於恆定延遲信道的論點在這裡也適用。而且,對於具有已知最大傳送率Rvol,max這種類型的信道,也可以把TI設定為tietie+LRvol,decoder(t)dt-B]]>的上限,也即設定TI=L·Rvol,max-B.ebie的上下限T2和T1將在數據傳輸率控制算法中受到檢驗,相應的校正行動是執行VOP的比特分配和調節編碼單元(例如VOP或宏塊等)的量化水平。
如果模擬的解碼器VBV緩存器變得太滿或太空,則編碼器必須採取以下的校正行動1、如果模擬的解碼器緩存器變得太滿(即編碼器的VBV緩存器太空),則編碼器可以通過下述處理來進行校正(a)減小量化水平來產生大VOP,或者
(b)在VOP尾端輸出一些充填比特。注意,產生較大的VOP將減小解碼器VBV的佔用率。
2、如果模擬的解碼器VBV變得太空(即編碼器的VBV緩存器太滿),則編碼器可以通過下述處理來進行校正(a)增大量化水平來產生較少的比特,或者(b)延遲產生下一個VOP(通常稱作跳越VOP),或者,(c)通過令高頻係數為零來減少所產生的比特數/VOP。
現在應該可以看到,本發明提供了一種用於在推塞數據流情況下限制視頻解碼器的存儲器要求的視頻緩存器模型。本發明的視頻緩存器模型對視頻編碼器進行了約束。使之產生能用預定存儲量的緩存器來解碼的比特流。這樣便有效地適應了各種推塞型數據流的應用。
權利要求
1.用於使推塞型數據流不會給在解碼器的用於被推塞的數據的一個預定存儲量的數據傳輸率緩衝器造成上溢或下溢的編碼器設備,它包括一個能對要傳送給一個解碼器的數據進行編碼的處理器,上述處理器將提供一個輸出比特流;上述處理器模擬上述解碼器的數據傳輸率緩衝器,並響應該模擬來控制上述輸出比特流,以防止解碼器緩存器的上溢或下溢。
2.根據權利要求1的編碼器設備,其中上述推塞型數據包括含有幀內(I)、預測(P)和雙向(B)視頻物體平面(VOP)的視頻數據。
3.根據權利要求2的編碼器設備,其中上述處理器通過至少一個下述手段來控制上述輸出比特流在不同的VOP之間分配若干比特;和調節構成上述VOP的編碼單元的量化水平。
4.根據權利要求3的編碼器設備,其中的解碼器數據傳輸率緩衝器包括一個視頻緩存檢驗器(VBV)緩存器。
5.根據權利要求4的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太滿時,則將減小上述編碼單元量化水平。
6.根據權利要求5的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則將增大上述編碼單元的上述量化水平。
7.根據權利要求5的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則將延遲下一個VOP的產生。
8.根據權利要求5的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則將令上述編碼器單元的高頻係數為零,以減少為每個VOP產生的比特數。
9.根據權利要求4的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當判定解碼器VBV緩存器已經或者將要太滿時,則將在至少一個VOP的尾端添加一些充填比特。
10.根據權利要求9的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或將要太空時,則將增大上述編碼單元的上述量化水平。
11.根據權利要求9的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或將要太空時,則將延遲下一個VOP的產生。
12.根據權利要求9的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或將要太空時,則將令上述編碼單元的一些高頻係數為零,以減少為每個VOP產生的比特數。
13.根據權利要求4的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或將要太空時,則將增大上述編碼單元的上述量化水平。
14.根據權利要求4的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或將要太空時,則將延遲下一個VOP的產生。
15.根據權利要求4的編碼器設備,其中上述處理器監視著模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則將令上述編碼單元的高頻係數為零,以減少為每個VOP產生的比特數。
16.根據權利要求1的編碼器設備,其中上述處理器通過監視一個以互補於解碼器緩存器的方式工作的上述編碼器的數據傳輸率緩衝器來模擬解碼器的數據傳輸率緩衝器。
17.根據權利要求16的編碼器設備,其中上述編碼器和解碼器的數據傳輸率緩衝器包括視頻緩存檢驗器(VBV)緩存器。
18.一種用於使推塞型數據流不會給在解碼器的用於被推塞的數據的一個預定存儲量的數據傳輸率緩衝器造成上溢或下溢的方法,該方法包括以下步驟對要傳送給一個解碼器的數據進行編碼,上述編碼步驟將提供一個輸出比特流;模擬上述解碼器的上述數據傳輸率緩衝器以及響應上述模擬步驟來控制上述輸出比特流,以防止解碼器緩存器的上溢或下溢。
19.根據權利要求18的方法,其中上述推塞型數據包括含有幀內(I)、預測(P)和雙向(B)視頻物體平面(VOP)的視頻數據。
20.根據權利要求19的方法,其中上述輸出比特流被至少下述一個手段控制在不同的VOP之間分配若干比特,和調節構成上述VOP的編碼單元的量化水平。
21.根據權利要求20的方法,其中的解碼器數據傳輸率緩衝器包括一個視頻緩存檢驗器(VBV)緩存器。
22.根據權利要求21的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太滿時,則減小上述編碼單元的量化水平。
23.根據權利要求22的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則增大上述編碼單元的量化水平。
24.根據權利要求22的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則延遲下一個VOP的產生。
25.根據權利要求22的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則令上述編碼單元的一些高頻係數為零,以減少為每個VOP產生的比特數。
26.根據權利要求21的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太滿時,則在至少一個VOP的尾部添加一些充填比特。
27.根據權利要求26的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則增大上述編碼單元的量化水平。
28.根據權利要求26的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則延遲下一個VOP的產生。
29.根據權利要求26的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則令上述編碼單元的一些高頻係數為零,以減少為每個VOP產生的比特數。
30.根據權利要求21的方法,它還包括以下步驟監視模擬的解碼VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則增大上述編碼單元的量化水平。
31.根據權利要求21的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則延遲下一個VOP的產生。
32.根據權利要求21的方法,它還包括以下步驟監視模擬的解碼器VBV緩存器,並且當模擬表明解碼器VBV緩存器已經或者將要太空時,則令上述編碼單元的高頻係數為零,以減少為每個VOP產生的比特數。
33.根據權利要求18的方法,其中上述模擬步驟通過監視一個以互補於解碼器緩存器的方式工作的編碼器數據傳輸率緩衝器來模擬解碼器的數據傳輸率緩衝器。
全文摘要
提供了一種技術,用來使得準備用推塞型數據流方式廣播的數據,例如視頻數據,不會給解碼器(30)的推塞數據數據傳輸率緩衝器(32)造成上溢或下溢。在編碼器(20)處,對要傳送給解碼器(30)的數據進行編碼,提供一個輸出比特流。在編碼器處,模擬(22)解碼器的數據傳輸率緩衝器(32)。該模擬被用來控制輸出比特流,以防止解碼器緩存器(32)的上溢或下溢。例如,可以這樣來提供模擬:監視並逆轉一個以相反於解碼器緩存器(32)的方式工作的互補式解碼器緩存器(22)。為了把編碼器產生的數據量控制得能使數據保持在解碼器緩存器(32)的限制範圍內,公開了各種不同的技術。
文檔編號G06T9/00GK1315116SQ99809824
公開日2001年9月26日 申請日期1999年5月28日 優先權日1998年6月19日
發明者陳學敏, 羅伯特·O·艾弗瑞格 申請人:通用儀器公司