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