專利名稱:輸出速率的改變的制作方法
技術領域:
本發(fā)明涉及一種改變緩沖器的信息輸出速率的方法,其中該緩沖器具有恒定的第一輸出速率并且從數(shù)據(jù)源接收輸出數(shù)據(jù),而輸出數(shù)據(jù)被添加以存儲在上述緩沖器中。
本發(fā)明還進一步涉及一種改變緩沖器的信息輸出速率的設備,其中該緩沖器具有恒定的第一輸出速率和用于從數(shù)據(jù)源接收輸出數(shù)據(jù)的裝置,以及用于添加并存儲這些輸出數(shù)據(jù)到該緩沖器的裝置。
典型地,對數(shù)據(jù)流中數(shù)據(jù)的處理包括用來處理進入數(shù)據(jù)流的數(shù)據(jù)系統(tǒng)。通常,該數(shù)據(jù)系統(tǒng)不僅由硬件組成,還包括用于增強其靈活性的軟件組件。處理一個數(shù)據(jù)系統(tǒng)中多個進程的成本效率最高的方式是在單獨的內(nèi)核中操縱所有處理,該內(nèi)核被編程設計為向全部數(shù)量的任務提供服務。為了進一步優(yōu)化這種方式,一般都習慣于讓系統(tǒng)運行在非實時模式。然而,在一個或多個進程對時間要求苛刻的情況下,這就可能導致一些局限性。如果一個非實時組件同時執(zhí)行多個任務和進程,該數(shù)據(jù)系統(tǒng)將不會產(chǎn)生一個連續(xù)流出的輸出數(shù)據(jù)流。該輸出將呈現(xiàn)出突發(fā)的形式,因此不能保證恒定的輸出速率。
所以,眾所周知的是引入用于臨時緩沖此非實時數(shù)據(jù)的硬件緩沖器以克服非實時組件不執(zhí)行輸出數(shù)據(jù)的那些時間段。典型非實時實現(xiàn)的數(shù)據(jù)源組件都包括一個軟件組件。
當數(shù)據(jù)源組件執(zhí)行時,它可以消耗和處理一個輸入信號并產(chǎn)生輸出數(shù)據(jù)。此輸出數(shù)據(jù)被添加到硬件緩沖器中。該硬件緩沖器被以一個恒定的輸出速率清空以保證一個穩(wěn)定的緩沖數(shù)據(jù)流,例如為了仿真一個期望的實時系統(tǒng)的表現(xiàn)。依靠這個硬件緩沖器,就可以在未調(diào)度數(shù)據(jù)源組件的時間中輸出數(shù)據(jù)。該硬件緩沖器必須包含有足夠的數(shù)據(jù)以渡過該時間,直到數(shù)據(jù)源組件的下一個執(zhí)行瞬間。
在數(shù)據(jù)源組件執(zhí)行之后,產(chǎn)生的數(shù)據(jù)被輸出前將在硬件緩沖器中駐留一段時間。數(shù)據(jù)在硬件緩沖器中駐留的時間等于此數(shù)據(jù)在該硬件緩沖器中的延遲,其典型地被稱為緩沖時間。
典型地,一個目標是將緩沖時間設計得盡可能短而不引起緩沖器的欠載運行。
緩沖時間的定義是tb=B/R,其中B是被緩沖的數(shù)據(jù)的量而R是輸出速率。
在多種應用中,完全靜態(tài)的輸出速率是極不可接受的。在輸出速率增加的情況下,可能會因為硬件緩沖器下溢而出現(xiàn)問題,因為緩沖時間變得小于數(shù)據(jù)源組件的連續(xù)執(zhí)行瞬間之間的最大時間間隔。在輸出速率減小的情況下,因為緩沖時間取一個大得不可接受的值,而數(shù)據(jù)因此在緩沖器中駐留更長時間,硬件緩沖器就可能在數(shù)據(jù)被輸出前引入不可接受的延遲。
所以,以一種未加控制的方式改變輸出速率會導致不定的或者有害的緩沖時間。
本發(fā)明的目的是提供一種改變具有恒定第一輸出速率的緩沖器的信息輸出速率的方法。換句話說,其目的是提供一種能解決現(xiàn)有技術的問題的方法。
這是通過一種改變具有恒定第一輸出速率的緩沖器的信息輸出速率的方法來實現(xiàn)的,其中緩沖器從一個數(shù)據(jù)源接收輸出數(shù)據(jù),且該輸出數(shù)據(jù)被添加以存儲在該緩沖器中,本方法包括以下步驟為該緩沖器指定第二恒定輸出速率和請求的緩沖時間;暫停從數(shù)據(jù)源接收輸出數(shù)據(jù);以上述第一輸出速率從緩沖器中輸出已存儲的輸出數(shù)據(jù)直到該緩沖器為空;當緩沖器基本上為空時,重新開始從數(shù)據(jù)源接收輸出數(shù)據(jù)并將其存儲在緩沖器中;設置第二恒定輸出速率為該緩沖器的輸出速率;并且,當緩沖的數(shù)據(jù)量基本上等于第二恒定輸出速率與請求的緩沖時間的乘積時,起動/開始以上述第二輸出速率輸出該緩沖器的所存儲的內(nèi)容。
這樣,具有恒定輸出速率的緩沖器將能夠以一種可控制的方式傳遞不同的輸出速率,從而避免上面提到的那些缺點。
MPEG-2傳輸流通常具有恒定的比特速率;但是,為了優(yōu)化數(shù)據(jù)帶寬,有時候可能要調(diào)整比特速率。這使得本發(fā)明對于實時廣播數(shù)據(jù)特別有用,例如電視和無線電演出。
對于數(shù)字廣播,因為壓縮技術而要求某種類型的處理,本發(fā)明將引入最小的延遲,即,盡可能接近實時。就是說,每一次輸出速率被改變時緩沖器長度都將被最佳化,因此系統(tǒng)等待時間將會盡可能的低。
本發(fā)明涉及例如利用緩沖器來平緩(level out)數(shù)據(jù)流的所謂偽實時應用,因為按照慣例真正的實時應用并不需要任何數(shù)據(jù)緩沖。但是,真正的實時系統(tǒng),例如那些包含某種緩沖器的能夠逐漸恢復數(shù)據(jù)傳輸?shù)南到y(tǒng),也可以從本發(fā)明受益。
根據(jù)本發(fā)明的方法的實施方案在權利要求2到7中描述。
這個目標由一種按照前言的設備進一步實現(xiàn),該設備的特征在于它包含裝置用于暫停/停止從數(shù)據(jù)源接收輸出數(shù)據(jù);以所說的第一輸出速率從緩沖器中輸出已存儲的內(nèi)容直到該緩沖器為空;當緩沖器基本上為空時,停止從所述緩沖器輸出內(nèi)容并重新開始從數(shù)據(jù)源接收輸出數(shù)據(jù)并將其添加/存儲在緩沖器中;設置第二恒定輸出速率為該緩沖器的輸出速率;并且,當緩沖的數(shù)據(jù)量等于第二恒定輸出速率與請求的緩沖時間的乘積時,起動/開始以第二輸出速率輸出該緩沖器的所存儲的內(nèi)容。
根據(jù)本發(fā)明的設備的實施方案在權利要求9到11中描述。
附圖以實施方案的形式對本發(fā)明進行舉例說明,其中
圖1顯示了按照本發(fā)明的方法的一種實施方案。
圖2用示意框圖闡明了三個操作階段的執(zhí)行過程。
圖3顯示了按照本發(fā)明的設備的一種實施方案。
圖1顯示了具有輸入數(shù)據(jù)源(1)的處理數(shù)據(jù)源(2a)與一個具有緩沖器數(shù)據(jù)輸出總線(4)的緩沖器(3)相結(jié)合的情況。緩沖器(3)和緩沖器數(shù)據(jù)輸出總線(4)之間的數(shù)據(jù)流速率被調(diào)整為恒定的輸出速率(R1、R2),其中數(shù)據(jù)源(2a)和輸入數(shù)據(jù)源(1)之間的流速率僅受限于二者各自的能力。
數(shù)據(jù)源(2a)可以是非實時的多線程處理系統(tǒng),這意味著它是能在時間要求不苛刻的動作中執(zhí)行多種工作、任務、線程等的處理系統(tǒng)。在這種環(huán)境中,數(shù)據(jù)源的典型工作可能是控制緩沖器大小、計算要求的處理開銷、處理輸入數(shù)據(jù)、處理用戶數(shù)據(jù),等等。但是,可能并不要求數(shù)據(jù)源(2a)是多線程的。
數(shù)據(jù)源(2a)從應用(1)接收進入數(shù)據(jù)并執(zhí)行所要求的數(shù)據(jù)處理。數(shù)據(jù)源可以針對當前被處理的進入數(shù)據(jù)來估計一個最佳的數(shù)據(jù)速率。隨后,數(shù)據(jù)源(2a)根據(jù)要求的輸出速率(R2)和數(shù)據(jù)源的處理能力等計算出一個合意的緩沖時間,從而可以決定改變緩沖器的第一輸出速率的潛在需要。
數(shù)據(jù)源(2a)的軟件組件將經(jīng)歷以下狀態(tài),以完成輸出速率和/或緩沖時間改變的過程1)當軟件組件執(zhí)行于正常操作狀態(tài)(見(14)圖2)a)軟件組件消耗和處理輸入數(shù)據(jù)。
b)軟件組件產(chǎn)生輸出數(shù)據(jù)(2b)并將其添加到硬件緩沖器。
c)硬件緩沖器被以恒定的輸出速率(R1)清空而數(shù)據(jù)被輸出(4)。
倘若發(fā)現(xiàn)比較(5)當前輸出速率(R1)和請求的輸出速率(R2)需要新的輸出速率(R2)設置或新的緩沖時間(TB2),軟件組件就進入清洗(flush)輸出階段2)當軟件組件執(zhí)行并處于清洗輸出階段時(見(15)圖2)a)軟件組件消耗和丟棄輸入數(shù)據(jù)。
b)軟件組件不產(chǎn)生輸出數(shù)據(jù)(2b)并且沒有數(shù)據(jù)被添加到硬件緩沖器(3)。
c)硬件緩沖器被以從前的輸出速率(R1)清空(7)且數(shù)據(jù)被輸出到緩沖器輸出(4)。
當硬件緩沖器為空時(8),軟件組件進入開始新輸出速率狀態(tài)(見圖2(16))3)當軟件組件執(zhí)行并且處于開始新輸出速率狀態(tài)時a)軟件組件消耗和處理輸入數(shù)據(jù)。
b)軟件組件產(chǎn)生輸出數(shù)據(jù)(2b)并將其添加到硬件緩沖器(3)。
c)硬件緩沖器不被清空但請求的輸出速率(R2)被設置。
當緩沖的數(shù)據(jù)量基本上等于所請求的輸出速率與所請求的緩沖時間的乘積(B=tb*R)時,軟件組件再次進入正常操作狀態(tài)。
按照本發(fā)明的方法操作的主要階段如圖2中闡明。數(shù)據(jù)源(2a)接收并處理輸入數(shù)據(jù)(1),其中數(shù)據(jù)處理可以包括數(shù)據(jù)處理、糾錯,等等。
只要與當前的緩沖時間(TB1)和輸出速率(R1)相比,既不改變要求的緩沖時間(TB2)也不改變輸出速率(R2),數(shù)據(jù)源就繼續(xù)執(zhí)行輸入數(shù)據(jù)并產(chǎn)生輸出數(shù)據(jù)(2b)以提供給緩沖器(3)一個必要的數(shù)據(jù)流。如果數(shù)據(jù)源(2a)確定需要根據(jù)當前被處理的數(shù)據(jù)新設置緩沖時間或輸出速率,該數(shù)據(jù)源就可以被設計為進入清洗輸出階段(15)。
系統(tǒng)一進入清洗輸出階段(15),從數(shù)據(jù)源來的輸出數(shù)據(jù)就被停止(6)。只要緩沖器中有數(shù)據(jù)可得,該緩沖器就以輸出速率(R1)被清空(7、8)。同時,進入的數(shù)據(jù)源數(shù)據(jù)(1)可能被丟棄,以防止這些數(shù)據(jù)駐留并累積在數(shù)據(jù)源(2a)之中。
倘若緩沖器為空,系統(tǒng)就進入開始新輸出速率狀態(tài),其中緩沖器的吞吐可以被停止(9),即,沒有數(shù)據(jù)可以離開緩沖器(3)。
在開始新輸出速率狀態(tài)中,新的輸出速率(R2)或緩沖時間(TB2)被定義。所請求的輸出速率/緩沖時間被設置(10)且數(shù)據(jù)源重新開始(11)消耗和處理輸入數(shù)據(jù)(1)。緩沖器吞吐被暫停,直至緩沖器(3)被重新充滿(11、12),其中當被緩沖的數(shù)據(jù)量等于所請求的輸出速率與所請求的緩沖時間的乘積(B=TB2*R2)時,定義緩沖器為已被重新充滿。當被緩沖的數(shù)據(jù)量等于或者基本上等于要求的緩沖器大小時(12),系統(tǒng)剛一使能數(shù)據(jù)吞吐(13)就再次進入正常操作狀態(tài)(14)。
圖3進一步闡明一種包含向系統(tǒng)CPU(18)提供數(shù)據(jù)的輸入數(shù)據(jù)源(17)的本發(fā)明的實施方案。CPU(18)可以包括系統(tǒng)存儲裝置,該系統(tǒng)存儲裝置則含有被設計用來完成權利要求中所提到的裝置的功能的軟件模塊(19a、19b)。由包含CPU(18)和多個要求的軟件模塊(19a、19b)的裝置所處理的數(shù)據(jù)可被存儲在緩沖器(20)中,該緩沖器可能由本發(fā)明中所提到的上述方法來控制。在清空該緩沖器(20)期間,輸出總線(21)可以是連到另外的數(shù)據(jù)處理應用的鏈接。
權利要求
1.一種改變具有恒定第一輸出速率的緩沖器的信息輸出速率的方法,其中緩沖器從數(shù)據(jù)源接收輸出數(shù)據(jù),而該輸出數(shù)據(jù)被添加以存儲在該緩沖器中,其特征在于本方法包含以下步驟●暫停從數(shù)據(jù)源接收輸出數(shù)據(jù);●以所述的第一輸出速率從緩沖器中輸出已存儲的輸出數(shù)據(jù)直到該緩沖器為空;●停止輸出該緩沖器的內(nèi)容;●當緩沖器基本上為空時,重新開始從數(shù)據(jù)源接收輸出數(shù)據(jù)并將其存儲于該緩沖器之中;●設置第二恒定輸出速率為該緩沖器的輸出速率;并且●當緩沖的數(shù)據(jù)量基本上等于第二恒定輸出速率與所請求的緩沖時間的乘積時,起動以該第二輸出速率輸出所述緩沖器的所存儲的內(nèi)容。
2.按照權利要求1的方法,其中數(shù)據(jù)源為該緩沖器指定第二恒定輸出速率和所請求的緩沖時間。
3.按照權利要求1的方法,其中當緩沖器為空時啟動上述輸出數(shù)據(jù)的重新開始。
4.按照權利要求1的方法,其中的●數(shù)據(jù)源是適合于接收和處理輸入數(shù)據(jù)并輸出所述輸出數(shù)據(jù)的軟件應用。
5.按照權利要求1的方法,其中的●緩沖器是硬件緩沖器。
6.按照權利要求1的方法,其中的●暫停接收輸出數(shù)據(jù)的步驟包含該數(shù)據(jù)源丟棄上述輸入數(shù)據(jù)。
7.按照權利要求1的方法,其中的●輸入數(shù)據(jù)是遵從MPEG2的基本流且數(shù)據(jù)源適合將MPEG2流復用到一傳輸流中。
8.一種用于改變緩沖器的信息輸出速率的設備,其中緩沖器具有恒定的第一輸出速率并具備從數(shù)據(jù)源接收輸出數(shù)據(jù)的裝置,以及將上述輸出數(shù)據(jù)添加并存儲在該緩沖器中的裝置,其特征在于該設備包含裝置用于●暫停/停止從數(shù)據(jù)源接收輸出數(shù)據(jù);●以所述的第一輸出速率從緩沖器中輸出已存儲的內(nèi)容直到該緩沖器為空;●停止輸出該緩沖器的內(nèi)容,并且●當緩沖器基本上為空時,重新開始從數(shù)據(jù)源接收輸出數(shù)據(jù)并存儲該輸出數(shù)據(jù);●設置第二恒定輸出速率為該緩沖器的輸出速率,并且●當緩沖的數(shù)據(jù)量等于第二恒定輸出速率與所請求的緩沖時間的乘積時,起動以該第二輸出速率輸出所述緩沖器的所存儲的內(nèi)容。
9.按照權利要求8的設備,其中該設備包含用于為該緩沖器指定第二恒定輸出速率和所請求的緩沖時間的裝置。
10.按照權利要求8的設備,其中該設備適合于在緩沖器為空時重新開始上述輸出數(shù)據(jù)。
11.按照權利要求8的設備,其中的數(shù)據(jù)源是包含用于接收和處理輸入數(shù)據(jù)的裝置及用于輸出所述輸出數(shù)據(jù)的裝置的軟件應用。
全文摘要
本發(fā)明涉及一種改變有恒定第一輸出速率(R1)的緩沖器(3)的信息輸出速率的方法和系統(tǒng),該緩沖器從數(shù)據(jù)源(2a)接收輸出數(shù)據(jù),其中本方法的步驟包括暫停從數(shù)據(jù)源(2a)接收輸出數(shù)據(jù);以第一輸出速率(R1)從緩沖器(3)中輸出(4)已存儲的輸出數(shù)據(jù)直到該緩沖器為空,然后重新開始接收輸出數(shù)據(jù)并將輸出數(shù)據(jù)存儲于緩沖器(3)中;設置第二恒定輸出速率(R2)為該緩沖器的輸出速率;并在被緩沖的數(shù)據(jù)量等于第二恒定輸出速率(R2)與請求的緩沖時間(TB2)的乘積時,起動/開始以該第二輸出速率(R2)輸出緩沖器的內(nèi)容。
文檔編號G06F13/38GK1647025SQ03808655
公開日2005年7月27日 申請日期2003年4月1日 優(yōu)先權日2002年4月19日
發(fā)明者A·迪克霍夫, M·A·格希森, S·T·德克 申請人:皇家飛利浦電子股份有限公司