新四季網

基於PID控制的視頻直播傳輸控制方法及系統與流程

2023-07-17 20:18:41


本發明涉及視頻傳輸技術領域,具體而言,涉及一種基於pid控制的視頻直播傳輸控制方法和一種基於pid控制的視頻直播傳輸控制系統。



背景技術:

隨著寬帶的普及和網絡技術的發展,網際網路上的多媒體業務漸漸成為主流。上一代的視頻應用主要是基於視頻點播服務的,而隨著網絡狀況的逐步改善以及視頻技術的不斷發展,人們對視頻直播的需求不斷增長,基於視頻直播服務構建的應用也開始快速湧現,比如電視節目直播、視頻會議、視頻通話等。其中,最新的直播應用能夠讓用戶通過手機設備創建直播內容。

為了保證直播的實時性,也就是保證較低的直播延遲,上一代的直播技術主要是基於udp協議(userdatagramprotocol,用戶數據報協議)。udp協議並不確保數據包的成功接收,視頻直播的延遲主要是數據包從發送端到達接收端的時間,因此延遲一般都很低,但接收端需要額外的方法處理網絡丟包帶來的錯誤。

而如果改為使用tcp協議(transmissioncontrolprotocol,傳輸控制協議),則能夠確保所有數據包的成功接收,但是在網絡狀況不佳的情況下,tcp協議的重傳機制會進行大量的重傳操作,使得數據的發送時間較長,導致視頻流暢度低並且延遲較高。

隨著網絡狀況的不斷改善,使用tcp協議在視頻直播方面的可用性大大提高。其中,rtmp協議(realtimemessagingprotocol,實時消息傳輸協議)是adobe公司開發的一種基於tcp協議的實時數據通信網絡協議,主要用來在flash/air平臺和支持rtmp協議的流媒體/交互伺服器之間進行音視頻和數據通信,被廣泛應用於點播和直播服務,具有較強的穩定性、可靠性。

然而,雖然網絡環境得到了不斷改善,但是網絡狀況的波動依然時常發生,網絡狀況的波動會直接影響到tcp協議進行數據傳輸的吞吐量。其中,視頻碼率是數據傳輸時單位時間傳送的數據位數,如果吞吐量小於當前傳輸視頻的碼率,就會造成接收端視頻播放的不流暢的現象。

因此,如何實現根據當前的網絡狀況進行動態的碼率調整,成為亟待解決的技術問題。



技術實現要素:

本發明正是基於上述技術問題,提出了一種新的技術方案,可以實現根據當前的網絡狀況進行動態的碼率調整。

有鑑於此,本發明的一方面提出了一種基於pid控制的視頻直播傳輸控制方法,包括:按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度,其中,所述視頻發送緩衝區的實時長度為緩衝的視頻幀的數量;計算所述視頻發送緩衝區的實時長度與長度目標值的差值;將所述差值帶入pid控制公式,以計算得到當前時刻所需的碼率調整值;根據所述碼率調整值,調整所述實時碼率。

在該技術方案中,系統在進行視頻直播時,可以根據視頻發送緩衝區的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調整視頻的發送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發送緩衝區的數據量維持在理想的狀態,實現了視頻質量根據網絡狀況的自適應,在提升視頻直播的流暢程度,儘可能地充分利用網絡帶寬以達到較高視頻質量。

其中,pid是一種閉環的反饋控制機制,在pid控制系統中,可根據系統當前狀態與期望狀態的誤差來計算一個控制量,並利用該控制量對輸入進行調整,從而使系統狀態趨向於期望狀態。也就是說,可以根據當前的視頻發送緩衝區的實時長度與長度目標值的差值,也就是誤差,來計算當前時刻所需的碼率調整值,使實時碼率趨向於期望值。

在上述技術方案中,優選地,在所述按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度之前,還包括:根據接收到的第一設 置命令,設置所述視頻發送緩衝區的所述長度目標值。

在該技術方案中,視頻發送緩衝區的長度目標值可以由用戶手動調整設置,或者也可以設置多個目標值檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的長度目標值。

在上述任一技術方案中,優選地,所述pid控制公式為:

其中,u(t)表示t時刻所需的碼率調整值,kp、ki、kd分別為比例係數、積分係數、微分係數,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,表示所述系統自上一次碼率調整後至t時刻時的誤差量累積值,表示t時刻時的誤差量與上一次檢測所述實時碼率時得到的誤差量的微分。

在該技術方案中,為了降低短時間內快速變化的網絡狀況對視頻數據傳輸帶來的影響,提高播放流暢度,系統設置有視頻發送緩衝區、播放緩衝區。在發送端和接收端之間,是用tcp協議進行連接的,而tcp協議在發送端維護一個tcp發送緩衝區,在接收端維護一個tcp接收緩衝區。因此,可以將整個視頻直播傳輸的系統抽象成4個緩衝區:視頻發送緩衝區、tcp發送緩衝區、tcp接收緩衝區、播放緩衝區。在視頻流暢播放的時候,單位時間內進入視頻發送緩衝區的視頻幀數量和從播放緩衝區出去的視頻幀數量是相等的,所以4個緩衝區總的視頻幀數量是一個固定的值。由於tcp發送緩衝區、tcp接收緩衝區的大小很小,所以可以看成視頻發送緩衝區、播放緩衝區中視頻幀之和是一個定值,而視頻發送緩衝區存在大量幀的時候,將導致播放緩衝區沒有視頻幀或存在較少的視頻幀,具有很大可能性導致視頻播放中斷,故可以通過控制視頻發送緩衝區的視頻幀的數量來控制播放緩衝區中視頻幀的數量,因此,本發明定義的系統狀態變量是視頻發送緩衝區中的視頻幀的數量。

由此可知,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,即狀態變量的變化量,輸出的u(t)代表碼率調整的大小,將會被疊加到當前設置的實時碼率上,作為下一個時刻應該設置的碼率大小,假設當前的碼率為br,那麼下一個時刻的碼率就是br+u(t)。

通過該技術方案,不斷地監測狀態變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預測,計算控制輸出。然後根據控制輸出有針對性地調整視頻質量,使狀態變量儘可能接近目標值,從而實現符合帶寬變化的穩定視頻傳輸。

在上述任一技術方案中,優選地,在所述按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度之前,還包括:根據接收到的第二設置命令,設置所述預定檢測周期。

在該技術方案中,是對系統的實時碼率和視頻發送緩衝區的實時長度進行周期性檢測,也就是說,每經過預定檢測周期進行一次檢測,這裡所述的預定檢測周期可以由用戶手動調整設置,或者也可以設置多個周期檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的預定檢測周期。比如,當網速高於標準值時,採用5s的檢測周期,這樣,在網速快的情況下可以儘可能減少周期性檢測帶來的功耗及內存佔用,而當網速低於或等於標準值時,採用3s的檢測周期,以避免因網速過慢而無法及時調整碼率,避免直播不流暢。

在上述任一技術方案中,優選地,所述根據所述碼率調整值,調整所述實時碼率,具體包括:檢測所述碼率調整值是否達到預定調整閾值;當確定所述碼率調整值達到所述預定調整閾值時,按照預定方向和預定力度調整所述實時碼率。

在該技術方案中,計算得到碼率調整值可以直接將其疊加至實時碼率進行碼率調整,也可以在碼率調整值積累達到預定調整閾值再進行疊加,避免因多次進行較小的碼率調整值調整而帶來的能耗和內存佔用。其中,早對實時碼率進行調整時,可以按照預定方向和預定力度調整,預定方向包括增大或減小,預定力度相當於對實時碼率進行調整的速度,比如,計算得到達到預定調整閾值的碼率調整值後,按照每秒疊加碼率調整值的10%的速度,分10s完成碼率調整,從而可以避免因調整過快而造成的視頻直播不流暢的缺陷。

其中,為了避免頻繁的小幅度的調整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:

其中step是量化的步長,為一個固定的正整數,通過量化可以消除正常小幅度網絡波動帶來的不必要的碼率調整。

本發明的另一方面提出了一種基於pid控制的視頻直播傳輸控制系統,包括:檢測單元,按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度,其中,所述視頻發送緩衝區的實時長度為緩衝的視頻幀的數量;差值計算單元,計算所述視頻發送緩衝區的實時長度與長度目標值的差值;pid計算單元,將所述差值帶入pid控制公式,以計算得到當前時刻所需的碼率調整值;碼率調整單元,根據所述碼率調整值,調整所述實時碼率。

在該技術方案中,系統在進行視頻直播時,可以根據視頻發送緩衝區的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調整視頻的發送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發送緩衝區的數據量維持在理想的狀態,實現了視頻質量根據網絡狀況的自適應,在提升視頻直播的流暢程度,儘可能地充分利用網絡帶寬以達到較高視頻質量。

其中,pid是一種閉環的反饋控制機制,在pid控制系統中,可根據系統當前狀態與期望狀態的誤差來計算一個控制量,並利用該控制量對輸入進行調整,從而使系統狀態趨向於期望狀態。也就是說,可以根據當前的視頻發送緩衝區的實時長度與長度目標值的差值,也就是誤差,來計算當前時刻所需的碼率調整值,使實時碼率趨向於期望值。

在上述技術方案中,優選地,還包括:第一設置單元,在所述按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度之前,根據接收到的第一設置命令,設置所述視頻發送緩衝區的所述長度目標值。

在該技術方案中,視頻發送緩衝區的長度目標值可以由用戶手動調整設置,或者也可以設置多個目標值檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的長度目標值。

在上述任一技術方案中,優選地,所述pid控制公式為:

其中,u(t)表示t時刻所需的碼率調整值,kp、ki、kd分別為比例係數、積分係數、微分係數,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,表示所述系統自上一次碼率調整後至t時刻時的誤差量累積值,表示t時刻時的誤差量與上一次檢測所述實時碼率時得到的誤差量的微分。

在該技術方案中,為了降低短時間內快速變化的網絡狀況對視頻數據傳輸帶來的影響,提高播放流暢度,系統設置有視頻發送緩衝區、播放緩衝區。在發送端和接收端之間,是用tcp協議進行連接的,而tcp協議在發送端維護一個tcp發送緩衝區,在接收端維護一個tcp接收緩衝區。因此,可以將整個視頻直播傳輸的系統抽象成4個緩衝區:視頻發送緩衝區、tcp發送緩衝區、tcp接收緩衝區、播放緩衝區。在視頻流暢播放的時候,單位時間內進入視頻發送緩衝區的視頻幀數量和從播放緩衝區出去的視頻幀數量是相等的,所以4個緩衝區總的視頻幀數量是一個固定的值。由於tcp發送緩衝區、tcp接收緩衝區的大小很小,所以可以看成視頻發送緩衝區、播放緩衝區中視頻幀之和是一個定值,而視頻發送緩衝區存在大量幀的時候,將導致播放緩衝區沒有視頻幀或存在較少的視頻幀,具有很大可能性導致視頻播放中斷,故可以通過控制視頻發送緩衝區的視頻幀的數量來控制播放緩衝區中視頻幀的數量,因此,本發明定義的系統狀態變量是視頻發送緩衝區中的視頻幀的數量。

由此可知,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,即狀態變量的變化量,輸出的u(t)代表碼率調整的大小,將會被疊加到當前設置的實時碼率上,作為下一個時刻應該設置的碼率大小,假設當前的碼率為br,那麼下一個時刻的碼率就是br+u(t)。

通過該技術方案,不斷地監測狀態變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預測,計算控制輸出。然後根據控制輸出有針對性地調整視頻質量,使狀態變量儘可能接近目標值,從而實現符合帶寬變化的穩定視頻傳輸。

在上述任一技術方案中,優選地,還包括:第二設置單元,在所述按 照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度之前,根據接收到的第二設置命令,設置所述預定檢測周期。

在該技術方案中,是對系統的實時碼率和視頻發送緩衝區的實時長度進行周期性檢測,也就是說,每經過預定檢測周期進行一次檢測,這裡所述的預定檢測周期可以由用戶手動調整設置,或者也可以設置多個周期檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的預定檢測周期。比如,當網速高於標準值時,採用5s的檢測周期,這樣,在網速快的情況下可以儘可能減少周期性檢測帶來的功耗及內存佔用,而當網速低於或等於標準值時,採用3s的檢測周期,以避免因網速過慢而無法及時調整碼率,避免直播不流暢。

在上述任一技術方案中,優選地,所述碼率調整單元具體用於:檢測所述碼率調整值是否達到預定調整閾值,其中,當確定所述碼率調整值達到所述預定調整閾值時,按照預定方向和預定力度調整所述實時碼率。

在該技術方案中,計算得到碼率調整值可以直接將其疊加至實時碼率進行碼率調整,也可以在碼率調整值積累達到預定調整閾值再進行疊加,避免因多次進行較小的碼率調整值調整而帶來的能耗和內存佔用。其中,早對實時碼率進行調整時,可以按照預定方向和預定力度調整,預定方向包括增大或減小,預定力度相當於對實時碼率進行調整的速度,比如,計算得到達到預定調整閾值的碼率調整值後,按照每秒疊加碼率調整值的10%的速度,分10s完成碼率調整,從而可以避免因調整過快而造成的視頻直播不流暢的缺陷。

其中,為了避免頻繁的小幅度的調整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:

其中step是量化的步長,為一個固定的正整數,通過量化可以消除正常小幅度網絡波動帶來的不必要的碼率調整。

通過以上技術方案,可以對實時碼率進行修正,將視頻發送緩衝區的數據量維持在理想的狀態,實現了視頻質量根據網絡狀況的自適應,在提升視頻直播的流暢程度,儘可能地充分利用網絡帶寬以達到較高視頻質量。

附圖說明

圖1示出了根據本發明的一個實施例的基於pid控制的視頻直播傳輸控制方法的流程示意圖;

圖2示出了根據本發明的一個實施例的基於pid控制的視頻直播傳輸控制系統的框圖;

圖3示出了根據本發明的一個實施例的緩衝區示意圖;

圖4示出了根據本發明的一個實施例的緩衝區狀態變量示意圖;

圖5示出了根據本發明的另一個實施例的基於pid控制的視頻直播傳輸控制系統的框圖。

具體實施方式

為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實施方式對本發明進行進一步的詳細描述。需要說明的是,在不衝突的情況下,本申請的實施例及實施例中的特徵可以相互組合。

在下面的描述中闡述了很多具體細節以便於充分理解本發明,但是,本發明還可以採用其他不同於在此描述的其他方式來實施,因此,本發明的保護範圍並不受下面公開的具體實施例的限制。

圖1示出了根據本發明的一個實施例的基於pid控制的視頻直播傳輸控制方法的流程示意圖。

如圖1所示,根據本發明的一個實施例的基於pid控制的視頻直播傳輸控制方法,包括:

步驟102,按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度,其中,所述視頻發送緩衝區的實時長度為緩衝的視頻幀的數量;

步驟104,計算所述視頻發送緩衝區的實時長度與長度目標值的差值;

步驟106,將所述差值帶入pid控制公式,以計算得到當前時刻所需的碼率調整值;

步驟108,根據所述碼率調整值,調整所述實時碼率。

在該技術方案中,系統在進行視頻直播時,可以根據視頻發送緩衝區 的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調整視頻的發送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發送緩衝區的數據量維持在理想的狀態,實現了視頻質量根據網絡狀況的自適應,在提升視頻直播的流暢程度,儘可能地充分利用網絡帶寬以達到較高視頻質量。

其中,pid是一種閉環的反饋控制機制,在pid控制系統中,可根據系統當前狀態與期望狀態的誤差來計算一個控制量,並利用該控制量對輸入進行調整,從而使系統狀態趨向於期望狀態。也就是說,可以根據當前的視頻發送緩衝區的實時長度與長度目標值的差值,也就是誤差,來計算當前時刻所需的碼率調整值,使實時碼率趨向於期望值。

在上述技術方案中,優選地,在步驟102之前,還包括:根據接收到的第一設置命令,設置所述視頻發送緩衝區的所述長度目標值。

在該技術方案中,視頻發送緩衝區的長度目標值可以由用戶手動調整設置,或者也可以設置多個目標值檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的長度目標值。

在上述任一技術方案中,優選地,所述pid控制公式為:

其中,u(t)表示t時刻所需的碼率調整值,kp、ki、kd分別為比例係數、積分係數、微分係數,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,表示所述系統自上一次碼率調整後至t時刻時的誤差量累積值,表示t時刻時的誤差量與上一次檢測所述實時碼率時得到的誤差量的微分。

在該技術方案中,為了降低短時間內快速變化的網絡狀況對視頻數據傳輸帶來的影響,提高播放流暢度,系統設置有視頻發送緩衝區、播放緩衝區。在發送端和接收端之間,是用tcp協議進行連接的,而tcp協議在發送端維護一個tcp發送緩衝區,在接收端維護一個tcp接收緩衝區。因此,可以將整個視頻直播傳輸的系統抽象成4個緩衝區:視頻發送緩衝區、tcp發送緩衝區、tcp接收緩衝區、播放緩衝區。在視頻流暢播放的時候,單位時間內進入視頻發送緩衝區的視頻幀數量和從播放緩衝區出去 的視頻幀數量是相等的,所以4個緩衝區總的視頻幀數量是一個固定的值。由於tcp發送緩衝區、tcp接收緩衝區的大小很小,所以可以看成視頻發送緩衝區、播放緩衝區中視頻幀之和是一個定值,而視頻發送緩衝區存在大量幀的時候,將導致播放緩衝區沒有視頻幀或存在較少的視頻幀,具有很大可能性導致視頻播放中斷,故可以通過控制視頻發送緩衝區的視頻幀的數量來控制播放緩衝區中視頻幀的數量,因此,本發明定義的系統狀態變量是視頻發送緩衝區中的視頻幀的數量。

由此可知,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,即狀態變量的變化量,輸出的u(t)代表碼率調整的大小,將會被疊加到當前設置的實時碼率上,作為下一個時刻應該設置的碼率大小,假設當前的碼率為br,那麼下一個時刻的碼率就是br+u(t)。

通過該技術方案,不斷地監測狀態變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預測,計算控制輸出。然後根據控制輸出有針對性地調整視頻質量,使狀態變量儘可能接近目標值,從而實現符合帶寬變化的穩定視頻傳輸。

在上述任一技術方案中,優選地,在步驟102之前,還包括:根據接收到的第二設置命令,設置所述預定檢測周期。

在該技術方案中,是對系統的實時碼率和視頻發送緩衝區的實時長度進行周期性檢測,也就是說,每經過預定檢測周期進行一次檢測,這裡所述的預定檢測周期可以由用戶手動調整設置,或者也可以設置多個周期檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的預定檢測周期。比如,當網速高於標準值時,採用5s的檢測周期,這樣,在網速快的情況下可以儘可能減少周期性檢測帶來的功耗及內存佔用,而當網速低於或等於標準值時,採用3s的檢測周期,以避免因網速過慢而無法及時調整碼率,避免直播不流暢。

在上述任一技術方案中,優選地,步驟108具體包括:檢測所述碼率調整值是否達到預定調整閾值;當確定所述碼率調整值達到所述預定調整閾值時,按照預定方向和預定力度調整所述實時碼率。

在該技術方案中,計算得到碼率調整值可以直接將其疊加至實時碼率 進行碼率調整,也可以在碼率調整值積累達到預定調整閾值再進行疊加,避免因多次進行較小的碼率調整值調整而帶來的能耗和內存佔用。其中,早對實時碼率進行調整時,可以按照預定方向和預定力度調整,預定方向包括增大或減小,預定力度相當於對實時碼率進行調整的速度,比如,計算得到達到預定調整閾值的碼率調整值後,按照每秒疊加碼率調整值的10%的速度,分10s完成碼率調整,從而可以避免因調整過快而造成的視頻直播不流暢的缺陷。

其中,為了避免頻繁的小幅度的調整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:

其中step是量化的步長,為一個固定的正整數,通過量化可以消除正常小幅度網絡波動帶來的不必要的碼率調整。

圖2示出了根據本發明的一個實施例的基於pid控制的視頻直播傳輸控制系統的框圖。

如圖2所示,根據本發明的一個實施例的基於pid控制的視頻直播傳輸控制系統200,包括:檢測單元202、差值計算單元204、pid計算單元206和碼率調整單元208。

檢測單元202用於按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度,其中,所述視頻發送緩衝區的實時長度為緩衝的視頻幀的數量;差值計算單元204用於計算所述視頻發送緩衝區的實時長度與長度目標值的差值;pid計算單元206用於將所述差值帶入pid控制公式,以計算得到當前時刻所需的碼率調整值;碼率調整單元208用於根據所述碼率調整值,調整所述實時碼率。

在該技術方案中,系統在進行視頻直播時,可以根據視頻發送緩衝區的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調整視頻的發送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發送緩衝區的數據量維持在理想的狀態,實現了視頻質量根據網絡狀況的自適應,在提升視頻直播的流暢程度,儘可能地充分利用網絡帶寬以達到較高視頻質量。

其中,pid是一種閉環的反饋控制機制,在pid控制系統中,可根據系統當前狀態與期望狀態的誤差來計算一個控制量,並利用該控制量對輸入進行調整,從而使系統狀態趨向於期望狀態。也就是說,可以根據當前的視頻發送緩衝區的實時長度與長度目標值的差值,也就是誤差,來計算當前時刻所需的碼率調整值,使實時碼率趨向於期望值。

在上述技術方案中,優選地,還包括:第一設置單元210,在所述按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度之前,根據接收到的第一設置命令,設置所述視頻發送緩衝區的所述長度目標值。

在該技術方案中,視頻發送緩衝區的長度目標值可以由用戶手動調整設置,或者也可以設置多個目標值檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的長度目標值。

在上述任一技術方案中,優選地,所述pid控制公式為:

其中,u(t)表示t時刻所需的碼率調整值,kp、ki、kd分別為比例係數、積分係數、微分係數,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,表示所述系統自上一次碼率調整後至t時刻時的誤差量累積值,表示t時刻時的誤差量與上一次檢測所述實時碼率時得到的誤差量的微分。

在該技術方案中,為了降低短時間內快速變化的網絡狀況對視頻數據傳輸帶來的影響,提高播放流暢度,系統設置有視頻發送緩衝區、播放緩衝區。在發送端和接收端之間,是用tcp協議進行連接的,而tcp協議在發送端維護一個tcp發送緩衝區,在接收端維護一個tcp接收緩衝區。因此,可以將整個視頻直播傳輸的系統抽象成4個緩衝區:視頻發送緩衝區、tcp發送緩衝區、tcp接收緩衝區、播放緩衝區。在視頻流暢播放的時候,單位時間內進入視頻發送緩衝區的視頻幀數量和從播放緩衝區出去的視頻幀數量是相等的,所以4個緩衝區總的視頻幀數量是一個固定的值。由於tcp發送緩衝區、tcp接收緩衝區的大小很小,所以可以看成視頻發送緩衝區、播放緩衝區中視頻幀之和是一個定值,而視頻發送緩衝區存在大量幀的時候,將導致播放緩衝區沒有視頻幀或存在較少的視頻幀,具 有很大可能性導致視頻播放中斷,故可以通過控制視頻發送緩衝區的視頻幀的數量來控制播放緩衝區中視頻幀的數量,因此,本發明定義的系統狀態變量是視頻發送緩衝區中的視頻幀的數量。

由此可知,e(t)表示t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值,即狀態變量的變化量,輸出的u(t)代表碼率調整的大小,將會被疊加到當前設置的實時碼率上,作為下一個時刻應該設置的碼率大小,假設當前的碼率為br,那麼下一個時刻的碼率就是br+u(t)。

通過該技術方案,不斷地監測狀態變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預測,計算控制輸出。然後根據控制輸出有針對性地調整視頻質量,使狀態變量儘可能接近目標值,從而實現符合帶寬變化的穩定視頻傳輸。

在上述任一技術方案中,優選地,還包括:第二設置單元212,在所述按照預定檢測周期檢測系統的實時碼率和視頻發送緩衝區的實時長度之前,根據接收到的第二設置命令,設置所述預定檢測周期。

在該技術方案中,是對系統的實時碼率和視頻發送緩衝區的實時長度進行周期性檢測,也就是說,每經過預定檢測周期進行一次檢測,這裡所述的預定檢測周期可以由用戶手動調整設置,或者也可以設置多個周期檔位供用戶選擇,另外,還可以由系統根據實時碼率,自動設置與網絡狀況相適宜的預定檢測周期。比如,當網速高於標準值時,採用5s的檢測周期,這樣,在網速快的情況下可以儘可能減少周期性檢測帶來的功耗及內存佔用,而當網速低於或等於標準值時,採用3s的檢測周期,以避免因網速過慢而無法及時調整碼率,避免直播不流暢。

在上述任一技術方案中,優選地,碼率調整單元208具體用於:檢測所述碼率調整值是否達到預定調整閾值,其中,當確定所述碼率調整值達到所述預定調整閾值時,按照預定方向和預定力度調整所述實時碼率。

在該技術方案中,計算得到碼率調整值可以直接將其疊加至實時碼率進行碼率調整,也可以在碼率調整值積累達到預定調整閾值再進行疊加,避免因多次進行較小的碼率調整值調整而帶來的能耗和內存佔用。其中,早對實時碼率進行調整時,可以按照預定方向和預定力度調整,預定方向 包括增大或減小,預定力度相當於對實時碼率進行調整的速度,比如,計算得到達到預定調整閾值的碼率調整值後,按照每秒疊加碼率調整值的10%的速度,分10s完成碼率調整,從而可以避免因調整過快而造成的視頻直播不流暢的缺陷。

其中,為了避免頻繁的小幅度的調整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:

其中step是量化的步長,為一個固定的正整數,通過量化可以消除正常小幅度網絡波動帶來的不必要的碼率調整。

圖3示出了根據本發明的一個實施例的緩衝區示意圖。

為了降低短時間內快速變化的網絡狀況對視頻數據傳輸帶來的影響,提高播放流暢度,系統設置有視頻發送緩衝區、播放緩衝區。在發送端和接收端之間,是用tcp協議進行連接的,而tcp協議在發送端維護一個tcp發送緩衝區,在接收端維護一個tcp接收緩衝區。因此,如圖3所示,可以將整個視頻直播傳輸的系統抽象成4個緩衝區:視頻發送緩衝區、tcp發送緩衝區、tcp接收緩衝區、播放緩衝區。在視頻流暢播放的時候,單位時間內進入視頻發送緩衝區的視頻幀數量和從播放緩衝區出去的視頻幀數量是相等的,所以4個緩衝區總的視頻幀數量是一個固定的值。由於tcp發送緩衝區、tcp接收緩衝區的大小很小,所以可以看成視頻發送緩衝區、播放緩衝區中視頻幀之和是一個定值。

所以,可以通過控制視頻發送緩衝區的視頻幀的數量來控制播放緩衝區中視頻幀的數量。根據tcp協議的特點,當視頻發送緩衝區存在一定量的視頻幀的時候,tcp發送緩衝區是充滿的,在這種情況下達到了最大的發送速度。視頻發送緩衝區存在大量幀的時候,將導致播放緩衝區沒有視頻幀或存在較少的視頻幀,具有很大可能性導致視頻播放中斷。

因此,本發明定義的系統狀態變量是視頻發送緩衝區中的視頻幀的數量。通過該技術方案,不斷地監測狀態變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預測,計算控制輸出。然後根據控制輸出有針對性地調整視頻質量,使狀態變量儘可能接近目標 值,從而實現符合帶寬變化的穩定視頻傳輸。

在本發明中,對系統的狀態變量進行控制主要有兩個目標,一個是儘可能充分利用網絡帶寬,一個是保證接收端能夠流暢播放。

一方面,將緩衝區的長度記為緩衝的視頻幀的數量,將播放緩衝區的最大長度記為s0,初始情況下,當播放緩衝區達到了最大長度s0時,接收端才開始播放視頻。在播放過程中,如果播放緩衝區的長度減少為0,那麼接收端需要等到播放緩衝區達到最大長度的時候才重新開始播放視頻。因此,當播放緩衝區的長度減少為0時,會導致播放的中斷。

故在對系統進行控制的過程中,首先需要保證播放緩衝區的長度大於0。在連續播放的情況下,視頻發送緩衝區、播放緩衝區中視頻幀之和是一個定值,約等於s0,因此,可以通過控制視頻發送緩衝區的長度小於s0來保證播放緩衝區的長度大於0,即可保證接收端能夠流暢播放。

另一方面,為了儘可能充分利用帶寬提高視頻質量,需要保證tcp發送緩衝區儘可能充滿。這一點可以通過控制視頻發送緩衝區的長度大於0來實現,在這種情況下tcp發送緩衝區始終處於充滿狀態。因此,直接控制的目標就是控制視頻發送緩衝區的長度為s1,其中s1大於0且小於s0。

為此,本發明首先定義系統的狀態變量是視頻發送緩衝區的長度s,這個變量可以反映當前的視頻碼率和網絡吞吐量直接的關係,s(t)表示時刻t視頻發送緩衝區的長度。當碼率大於網絡吞吐量,s(t)呈增長的趨勢;當碼率小於網絡吞吐量,s(t)呈減小為0的趨勢;當碼率接近於網絡吞吐量時,s(t)保持相對穩定。比如,可以設置s的目標值是0.2s0,記為sr,其中,s0是播放緩衝區的最大長度,記錄s與目標值地偏差為e,在時刻t,狀態變量與目標值的誤差記為e(t);若當前s(t)大於sr,則e(t)為負值,反之,e(t)為正值。

如圖4所示,當前視頻發送緩衝區中幀數量是s(t),目標值是st,因此e(t)=sr-s(t)。將e(t)代入pid公式可以得到對碼率調整的反饋信息,故根據pid控制模型,系統的控制器的輸出為:

其中,u(t)表示t時刻所需的碼率調整值,kp、ki、kd分別為比例係數、積分係數、微分係數,表示系統自上一次碼率調整後至t時刻時的誤差量累積值,表示t時刻時的誤差量與上一次檢測實時碼率時得到的誤差量的微分。

這一個輸出的u(t)代表碼率調整的大小,將會被作為下一個時刻應該設置的碼率大小,疊加到當前設置的視頻碼率上,如果當前的碼率為br,那麼下一個時刻的碼率就是br+u(t)。

在具體應用中,本發明按照一定的周期t進行上述的系統狀態檢查和碼率調整,系統使用的狀態變量s(t)可以取為在上一個周期t內的視頻發送緩衝區中平均幀數量,從而增加了視頻直播的穩定性。為了避免頻繁的小幅度的調整,本發明還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:

其中step是量化的步長,為一個固定的正整數,通過量化可以消除正常小幅度網絡波動帶來的不必要的碼率調整。

圖5示出了根據本發明的另一個實施例的基於pid控制的視頻直播傳輸控制系統的框圖。

如圖5所示,根據本發明的另一個實施例的基於pid控制的視頻直播傳輸控制系統500,包括:緩衝區信息獲取模塊502、pid碼率計算模塊504和視頻碼率調整模塊506,緩衝區信息獲取模塊502結合實際網絡環境,獲取系統的實時碼率和視頻發送緩衝區的實時長度,並通過pid碼率計算模塊504計算碼率調整值,最後,視頻碼率調整模塊506根據碼率調整值對實時碼率進行調整。

其中,基於pid控制的視頻直播傳輸控制系統500不僅能夠用於rtmp協議,還可以擴展到其他基於tcp的應用層流媒體傳輸協議,如http協議(hypertexttransferprotocol,超文本傳輸協議)、rtsp協議(realtimestreamingprotocol,實時流傳輸協議)等,具有通用性。

具體地,可以通過檢測到的誤差變量進行碼率調整。在每個檢測時間點,獲取狀態變量的值,也就是視頻發送緩衝區的實時長度,然後與長度 目標值進行比較,得出誤差變量。

對誤差變量計算如下三部分的值:

比例部分,這一部分就是誤差量本身,作為對當前網絡帶寬和傳輸狀況匹配度的反饋,以驅動系統狀態變量不斷趨近目標,即t時刻時所述視頻發送緩衝區的實時長度與長度目標值的差值e(t)與比例係數乘積。

積分部分,這一部分是系統自上次質量調整之後誤差量的累積,長時間的監測數據可以反映近段時間內帶寬變化的平均情況,目的是以減小頻繁調整質量從而造成波動的可能性。

其中,積分部分=誤差量1+誤差量2+…+誤差量n,1、2、…、n為自上一次質量調整以來的誤差量檢測索引。

微分部分,這一部分是當前時刻誤差量與上一檢測時間點誤差量的微分,主要用途是預測帶寬的變化趨勢,以使狀態變量儘快趨近目標。

其中,微分部分(本次誤差變量-上次誤差變量)/檢測間隔時間。

以上各部分經過加權求和後形成控制輸出。

其中,控制輸出=比例係數×比例部分+積分係數×積分部分+微分係數×微分部分。

其中,三個係數根據控制領域的經典方法,進行確定,如齊格勒-尼科爾斯方法,也可人工進行調整。根據得到的控制輸出和當前傳輸的碼率,可以決定是否進行視頻質量調節,以及調節的方向和力度。

因此,通過該技術方案,可以有效地調整直播視頻的碼率,保持播放的流程性,同時充分利用帶寬提高視頻質量,其關鍵之處在於利用積分部分來減小頻繁調整的可能性,並利用微分部分來預測帶寬變化。

以上結合附圖詳細說明了本發明的技術方案,通過本發明的技術方案,可以對實時碼率進行修正,將視頻發送緩衝區的數據量維持在理想的狀態,實現了視頻質量根據網絡狀況的自適應,在提升視頻直播的流暢程度,儘可能地充分利用網絡帶寬以達到較高視頻質量。

以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀