視頻碼率自適應調整方法及裝置與流程
2023-10-18 03:25:59 1

本發明實施例涉及通信技術領域,尤其涉及一種視頻碼率自適應調整方法及裝置。
背景技術:
隨著3G、4G、WIFI等無線網絡覆蓋率不斷提高,以及帶有攝像頭的手機及其他便攜設備的發展,實時視頻交互應用的使用越來越廣泛,且實時視頻交互應用對於網絡延遲、網絡帶寬波動和丟包率的要求較高。但是,在無線網絡中,無線網絡本身存在著丟包率高,帶寬波動大等缺點,使得基於無線網絡的視頻文件實時傳輸存在很大困難,解決這一問題的主要途徑是通過基於網絡實際質量的視頻碼率自適應算法來調整視頻碼率,避免視頻流量超出網絡負載造成丟包加重,延遲增大,影響視頻質量。
現有技術中的視頻碼率自適應算法採用丟包率作為視頻碼率調整的參照變量,具體調整原則為:若丟包率增加,則減小視頻碼率,若丟包率減小,則增加視頻碼率。
但是,在無線網絡中,引起丟包的原因不僅僅是網絡擁塞,若是除網絡擁塞之外的原因導致的丟包,例如無線傳輸距離遠導致的丟包,即使通過丟包率調整視頻碼率也不能準確有效解決視頻文件實時傳輸的問題,即現有的視頻碼率自適應算法不能準確有效解決視頻文件實時傳輸的問題。
技術實現要素:
本發明實施例提供一種視頻碼率自適應調整方法及裝置,以準確有效解決視頻文件實時傳輸的問題。
本發明實施例的一個方面是提供一種視頻碼率自適應調整方法,包括:
獲取與通信對端無線通信的往返時延,以及所述通信對端的接收速率;
依據所述往返時延獲得排隊延遲;
依據所述排隊延遲和所述接收速率調整視頻碼率,並依據調整後的視頻碼率對視頻文件進行編碼;
向所述通信對端發送編碼後的視頻文件。
本發明實施例的另一個方面是提供一種視頻碼率自適應調整裝置,包括:
收發模塊,用於獲取與通信對端無線通信的往返時延,以及所述通信對端的接收速率;向所述通信對端發送編碼後的視頻文件;
計算模塊,用於依據所述往返時延獲得排隊延遲;依據所述排隊延遲和所述接收速率調整視頻碼率;
編碼模塊,用於依據調整後的視頻碼率對視頻文件進行編碼。
本發明實施例提供的視頻碼率自適應調整方法及裝置,通過發送設備獲取與通信對端之間的往返時延計算出排隊延遲,再依據排隊延遲與通信對端的接收速率調整視頻碼率,即將排隊延遲作為視頻碼率調整的參照變量,相對於採用丟包率作為視頻碼率調整的參照變量,避免由於無線網絡中鏈路錯誤、傳輸距離長引起丟包率增大,從而準確有效解決視頻文件實時傳輸的問題。
附圖說明
圖1為本發明實施例提供的視頻碼率自適應調整方法流程圖;
圖2本發明實施例提供的網絡鏈路等效圖;
圖3為本發明實施例提供的視頻碼率自適應調整方法適用的信令圖;
圖4為本發明實施例提供的視頻碼率自適應調整裝置的結構圖。
具體實施方式
圖1為本發明實施例提供的視頻碼率自適應調整方法流程圖;圖2本發明實施例提供的網絡鏈路等效圖。本發明實施例針對現有的視頻碼率自適應算法不能準確有效解決視頻文件實時傳輸的問題,提供了視頻碼率自適應調整方法,該方法具體步驟如下:
步驟S101、獲取與通信對端無線通信的往返時延,以及所述通信對端的接收速率;
本發明實施例所述的通信對端是指與發送設備對應的接收設備。如圖2所示,本發明實施例將網絡鏈路等效為一個隊列緩衝區,數據進入速度為x,x具體表示視頻碼率,數據排出速度為r,r具體表示接收設備的接收速度,發送設備已經發出、還未被通信對端接收的數據緩存在緩衝區S中,根據排隊論知識,緩衝區S的大小、排隊延遲q和數據排出速度為r隨時間的變化關係滿足公式(1):
S(t)=q(t)*r(t) (1)
緩衝區S的大小變化率S'(t)可以通過數據進入速度x和數據排出速度r的差值表示,如公式(2)所示:
S'(t)=x(t)-r(t) (2)
其中,r(t)取決於網絡帶寬,短時間內變化不大,在調整視頻碼率的過程中,可以認為是一個常數r,即r表示依據所述接收速率估計的網絡帶寬,根據公式(1)和(2)可以得出排隊延遲q在不同數據進入速度x和網絡帶寬r條件下的變化率,如公式(3)所示:
通過公式(3)可知,當視頻碼率大於網絡帶寬時,排隊延遲上升,當視頻碼率小於網絡帶寬時,排隊延遲下降。因此,本發明實施例將排隊延遲作為反饋信息來調節視頻碼率。由於排隊延遲與發送設備和接收設備之間的往返時延有關,對視頻碼率的調節與接收設備的接收速率有關,因此,發送設備需要獲取與通信對端之間的往返時延,以及所述通信對端的接收速率。
步驟S102、依據所述往返時延獲得排隊延遲;
所述依據所述往返時延獲得排隊延遲,包括:
依據所述往返時延RTT和往返時延最小值RTTmin計算當前時刻tk對應的排隊延遲q(tk),
其中,往返時延最小值RTTmin是發送設備與接收設備之間的歷史往返時延 RTT中的最小值。
步驟S103、依據所述排隊延遲和所述接收速率調整視頻碼率,並依據調整後的視頻碼率對視頻文件進行編碼。
依據步驟S102計算的排隊延遲和步驟S101獲得的接收設備的接收速率調整視頻碼率,即依據所述排隊延遲和所述接收速率計算出新的視頻碼率,並依據新的視頻碼率對視頻文件進行編碼。
步驟S104、向所述通信對端發送編碼後的視頻文件。
本發明實施例通過發送設備獲取與通信對端之間的往返時延計算出排隊延遲,再依據排隊延遲與通信對端的接收速率調整視頻碼率,即將排隊延遲作為視頻碼率調整的參照變量,相對於採用丟包率作為視頻碼率調整的參照變量,避免由於無線網絡中鏈路錯誤、傳輸距離長引起丟包率增大,從而準確有效解決視頻文件實時傳輸的問題。
在上述實施例的基礎上,所述依據所述排隊延遲和所述接收速率調整視頻碼率,包括:
依據所述排隊延遲q(tk)和所述接收速率r(tk)獲得下一時刻tk+1對應的視頻碼率x(tk+1),其中,r表示依據所述接收速率估計的網絡帶寬,Ts與ζ0為預設參數,T=tk+1-tk,δ(q(tk))=q0-q(tk),δ(q(tj))=q0-q(tj),q0為預設目標排隊延遲。
KP,KI是比例積分控制器的參數,所述比例積分控制器用於約束視頻碼率x(t)與排隊延遲q(t)之間的關係,δ(X(s))是δ(x(t))的拉普拉斯變換,δ(Q(s))是δ(q(t))的拉普拉斯變換,δ(q(t))=q0-q(t),δ(x(t))=x0-x(t)。
在上述步驟S103中,依據所述排隊延遲和所述接收速率調整視頻碼率時,具體通過如下公式(4)進行調整:
公式(4)的推導過程,以及參數KP,KI的推導過程如下:
本發明實施例將排隊延遲q(t)維持在一個固定水平q0,q0即為預設目標排隊延遲。當q(t)大於q0時,表明緩存區S中緩存的數據較多,需要減小視頻碼率x(t),根據公式(3)可知,將x(t)減小到小於網絡帶寬r時,q'(t)小於0,q(t)將減小,並趨向於固定水平q0;同理,當q(t)小於q0時,需要增大視頻碼率x(t);可見,視頻碼率x(t)與排隊延遲q(t)之間需要建立一定的約束關係來保證排隊延遲q(t)維持在固定水平q0,本發明實施例用比例積分控制器具體限定視頻碼率x(t)與排隊延遲q(t)之間的約束關係。在時域中,比例積分控制器Gc(t)與視頻碼率x(t)和排隊延遲q(t)之間的約束關係通過如下閉環時域控制模型(5)實現:
通過閉環時域控制模型(5)可知,若排隊延遲q(t)偏離固定水平q0,則將q0-q(t)作為比例積分控制器Gc(t)的輸入,比例積分控制器Gc(t)根據其控制模塊決定新的視頻碼率x(t)。
當q(t)=q0,x(t)=x0,q'(t)=q'0時,閉環時域控制模型(5)可變化成閉環時域控制模型(6):
為了更方便的分析比例積分控制器Gc(t),進行如公式(7)、(8)和(9)的差分運算:
δ(q(t))=q0-q(t) (7)
δ(q'(t))=q'0-q'(t) (8)
δ(x(t))=x0-x(t) (9)
其中,x0=r。
閉環時域控制模型(6)與閉環時域控制模型(5)進行差運算,在差運算過程中,常數相減為0,比例積分控制器、乘法運算、積分運算不變,同時結合公式(7)、(8)和(9)可得到如下所示的閉環時域控制模型(10):
將閉環時域控制模型(10)轉化到複數域得到如下所示的閉環複數域控制模型(11):
本發明實施例複數域的比例積分控制器且比例積分控制器Gc(s)以δ(X(s))為輸出、δ(Q(s))為輸入,根據經典控制理論推導出閉環複數域控制模型(11)的轉移函數為如下公式(12):
特徵方程的標準形式為上述轉移函數對應的特徵方程為由可知即本發明實施例採用Ts表示排隊延遲q(t)穩定到固定水平q0的波動範圍不大於2%所用的時間,且ζ=ζ0,則複數域的比例積分控制器的參數本發明實施例取Ts=30s、
所述獲取與通信對端之間的往返時延,以及所述通信對端的接收速率,包括:每隔固定時間段與所述通信對端交互RTCP協議報文;依據所述RTCP協議報文獲取與所述通信對端之間的往返時延,以及所述通信對端的接收速 率,所述固定時間段小於T。
上述步驟S101獲取與通信對端之間的往返時延,以及所述通信對端的接收速率,具體通過發送設備和通信對端之間交互的RTCP協議報文獲得,且發送設備和通信對端每隔固定時間段交互一次RTCP協議報文,該固定時間段小於T,T=tk+1-tk,即T表示調節視頻碼率的時間間隔。
本發明實施例通過比例積分控制器限定視頻碼率x(t)與排隊延遲q(t)之間的約束關係,使排隊延遲q(t)維持在一個固定水平q0,有效控制了視頻文件的排隊延遲,同時使視頻碼率維持在網絡帶寬附近,提高了網絡帶寬利用率。
圖3為本發明實施例提供的視頻碼率自適應調整方法適用的信令圖。本發明實施例提供的視頻碼率自適應調整方法適用於無線網絡中的發送設備、基站和接收設備之間,三者之間信令交互過程如下:
步驟S201、接收設備向基站發送RTCP協議報文;
步驟S202、基站向發送設備發送RTCP協議報文;
接收設備和發送設備定期交互RTCP協議報文,步驟S201與步驟S202是交互過程中接收設備向發送設備發送RTCP協議報文的過程。
步驟S203、發送設備調整視頻碼率;
發送設備依據上述步驟S102和步驟S103對視頻碼率進行調整,具體調整過程不再贅述。
步驟S204、發送設備依據調整後的視頻碼率對視頻文件進行編碼、壓縮;
發送設備依據調整後的視頻碼率對視頻文件進行編碼,具體通過H.264編碼模塊對視頻文件進行編碼,並壓縮編碼後的視頻文件。
步驟S205、發送設備向基站發送視頻文件;
發送設備將編碼、壓縮後的視頻文件封裝在RTP協議報文中發送給基站。
步驟S206、基站向接收設備發送視頻文件;
基站向接收設備轉發RTP協議報文。
步驟S207、接收設備對視頻文件進行解壓、解碼。
接收設備對接收到的RTP協議報文中封裝的視頻文件進行解壓、解碼。
本發明實施例中步驟S207執行結束之後,發送設備繼續調整視頻碼率,繼續對未發送的視頻文件進行編碼、壓縮和發送;視頻文件具體指視頻序列 數據包。
本發明實施例通過發送設備獲取與通信對端之間的往返時延計算出排隊延遲,再依據排隊延遲與通信對端的接收速率調整視頻碼率,即將排隊延遲作為視頻碼率調整的參照變量,相對於採用丟包率作為視頻碼率調整的參照變量,避免由於無線網絡中鏈路錯誤、傳輸距離長引起丟包率增大,從而準確有效解決視頻文件實時傳輸的問題。
圖4為本發明實施例提供的視頻碼率自適應調整裝置的結構圖。本發明實施例提供的視頻碼率自適應調整裝置可以執行視頻碼率自適應調整方法實施例提供的處理流程,如圖4所示,視頻碼率自適應調整裝置40包括收發模塊41、計算模塊42和編碼模塊43,其中,收發模塊41用於獲取與通信對端無線通信的往返時延,以及所述通信對端的接收速率;向所述通信對端發送編碼後的視頻文件;計算模塊42用於依據所述往返時延獲得排隊延遲;依據所述排隊延遲和所述接收速率調整視頻碼率;編碼模塊43用於依據調整後的視頻碼率對視頻文件進行編碼。
本發明實施例通過發送設備獲取與通信對端之間的往返時延計算出排隊延遲,再依據排隊延遲與通信對端的接收速率調整視頻碼率,即將排隊延遲作為視頻碼率調整的參照變量,相對於採用丟包率作為視頻碼率調整的參照變量,避免由於無線網絡中鏈路錯誤、傳輸距離長引起丟包率增大,從而準確有效解決視頻文件實時傳輸的問題。
在上述實施例的基礎上,計算模塊42具體用於依據所述往返時延RTT和往返時延最小值RTTmin計算當前時刻tk對應的排隊延遲q(tk),
計算模塊42具體用於依據所述排隊延遲q(tk)和所述接收速率r(tk)獲得下一時刻tk+1對應的視頻碼率x(tk+1),其中,r表示依據所述接收速率估計的網絡帶寬,Ts與ζ0為預設參數,T=tk+1-tk,δ(q(tk))=q0-q(tk),δ(q(tj))=q0-q(tj),q0為預設目標排隊延遲。
KP,KI是比例積分控制器的參數,所述比例積分控制器用於約束視頻碼率x(t)與排隊延遲q(t)之間的關係,δ(X(s))是δ(x(t))的拉普拉斯變換,δ(Q(s))是δ(q(t))的拉普拉斯變換,δ(q(t))=q0-q(t),δ(x(t))=x0-x(t)。
收發模塊41具體用於每隔固定時間段與所述通信對端交互RTCP協議報文;依據所述RTCP協議報文獲取與所述通信對端之間的往返時延,以及所述通信對端的接收速率,所述固定時間段小於T。
本發明實施例提供的視頻碼率自適應調整裝置可以具體用於執行上述圖1所提供的方法實施例,具體功能此處不再贅述。
本發明實施例通過比例積分控制器限定視頻碼率x(t)與排隊延遲q(t)之間的約束關係,使排隊延遲q(t)維持在一個固定水平q0,有效控制了視頻文件的排隊延遲,同時使視頻碼率維持在網絡帶寬附近,提高了網絡帶寬利用率。
綜上所述,本發明實施例通過發送設備獲取與通信對端之間的往返時延計算出排隊延遲,再依據排隊延遲與通信對端的接收速率調整視頻碼率,即將排隊延遲作為視頻碼率調整的參照變量,相對於採用丟包率作為視頻碼率調整的參照變量,避免由於無線網絡中鏈路錯誤、傳輸距離長引起丟包率增大,從而準確有效解決視頻文件實時傳輸的問題;通過比例積分控制器限定視頻碼率x(t)與排隊延遲q(t)之間的約束關係,使排隊延遲q(t)維持在一個固定水平q0,有效控制了視頻文件的排隊延遲,同時使視頻碼率維持在網絡帶寬附近,提高了網絡帶寬利用率。
在本發明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。
上述以軟體功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟體功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)或處理器(processor)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光碟等各種可以存儲程序代碼的介質。
本領域技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。