本發明涉及通信領域,尤其涉及一種智能網關動態轉換碼率的方法及系統。
背景技術:
:現在家庭使用的數字電視智能網關(例如智能機頂盒等),將接收的數字電視信號分兩路或多路輸出。一路碼率不變,通過hdmi直接輸出到電視機,其他路經過轉碼器轉碼降低碼率后通過wifi網絡分發給手機、平板電腦等移動終端(若是多路則需要多個轉碼器,一個轉碼器對應一個移動終端)。轉碼器通過wifi輸出的視頻數據,將控制信息封裝成rtcp包,將圖像數據封裝成rtp包,形成視頻流,將兩種格式的數據包都以udp/ip的方式進行發送。轉碼器有硬件和dsp方式,都受cpu控制,轉碼的碼率的大小是固定的,也即cpu設置的轉碼參數是預先設定的(一般都是經驗值),比如,一個h.264格式10mbps,1080p高清節目,轉換成h.264格式2mbps,720p準高清,利用wifi輸出分發給移動終端。由于電視節目是實時流,采用udp方式發送,沒有請求重發的可能性,這樣就存在一個問題,當wifi信號質量變差時,圖像畫面質量會出現馬賽克或卡頓現象。在實際中有兩種情況最常出現:一種是漸變,即移動終端逐步遠離智能網關,wifi信號強度逐步減弱,圖像質量逐漸下降,具體表現為馬賽克逐漸增多,最終出現卡頓;還有一種就是從一個房間進入另一個房間出現信號遮擋時的突變,wifi信號強度迅速減弱,圖像質量瞬間變差,具體表現為馬賽克突然出現很多,同時伴有嚴重的卡頓。由于智能網關轉碼的碼率固定,在出現網絡信號質量變差時輸出的圖像畫面就會出現馬賽克或卡頓,大大影響傳輸圖像畫面質量。技術實現要素:有鑒于此,有必要針對上述智能網關碼率固定網絡信號質量變差時輸出的圖像畫面出現馬賽克或卡頓,影響傳輸圖像畫面質量的問題,提供一種智能網關動態轉換碼率的方法及系統。本發明提供的一種智能網關動態轉換碼率的方法,包括如下步驟:s10:在移動終端接收節目流后,周期性統計丟包數,并與預設的丟包數區間進行比較,如果丟包數在丟包數區間范圍內,則不通知智能網關,如果超出丟包數區間的上限則通知智能網關降低碼率,如果低于丟包數區間的下限,則通知智能網關提高碼率;s20:實時監測移動終端接收到的網絡信號強度,獲取網絡信號強度的陡變量并與預設陡變量進行比較,若超過預設陡變量則進行軟中斷觸發向移動終端發送中斷請求;s30:在移動終端接收到中斷請求后,停止統計丟包數并重新開始周期性統計丟包數。在其中的一個實施方式中,所述步驟s10包括:設計兩個時間長度的采樣周期,第一時間長度和第二時間長度;所述第一時間長度為長的時間周期,第二時間長度為短的時間周期,用于移動終端首次接收節目流和出現中斷請求時使用。在其中的一個實施方式中,所述步驟s10包括:預先通過計算和測試設定多個檔位碼率下第一時間長度內允許丟包數的丟包數區間,來對丟包數進行比較。在其中的一個實施方式中,所述第一時間長度允許的丟包數區間獲取方法具體為:將智能網關轉碼后輸出的節目流設置到usb口,通過usb口直接連接到pc機,控制智能網關設定多個檔位碼率的節目流;在pc機上將接收到的數據包隨機丟棄,將處理過的節目流送到圖像監視器,進行圖像觀察,同時將處理過的節目流送到碼流分析儀進行實時分析;選定一個碼率的節目流輸出,在pc機上逐步加大丟包數,觀察出現的圖像質量狀況,若出現的馬賽克超過設定值,則記錄下此時的丟包數和碼流分析儀記錄的圖像宏塊丟失數;重復上述測試多次,對記錄的丟包數取平均值作為丟包數區間的上限值;在第一時間長度內,模擬增加丟包數的方法逐漸增加丟包數,在圖像質量整體保持良好的情況下記錄此時的丟包數,作為丟包數區間的下限值;更換其他檔位碼率測試,得到不同檔位碼率在第一時間長度內允許的丟包數區間。在其中的一個實施方式中,所述步驟s20具體為:利用wifirssi估計感知技術,通過獲取rssi值來監測網絡質量突變情況;在104us內進行基帶iq功率積分得到rssi的瞬時值,然后在1秒內對8192個rssi的瞬時值進行平均,得到rssi的平均值作為rssi值。本發明提供的一種智能網關動態轉換碼率的系統,包括:丟包數統計模塊,在移動終端接收節目流后,周期性統計丟包數,并與預設的丟包數區間進行比較,如果丟包數在丟包數區間范圍內,則不通知智能網關,如果超出丟包數區間的上限則通知智能網關降低碼率,如果低于丟包數區間的下限,則通知智能網關提高碼率;網絡信號強度感知模塊,實時監測移動終端接收到的網絡信號強度,獲取網絡信號強度的陡變量并與預設陡變量進行比較,若超過預設陡變量則進行軟中斷觸發向移動終端發送中斷請求;丟包數統計模塊在移動終端接收到中斷請求后,停止統計丟包數并重新開始周期性統計丟包數。在其中的一個實施方式中,所述丟包數統計模塊設計兩個時間長度的采樣周期,第一時間長度和第二時間長度;所述第一時間長度為長的時間周期,第二時間長度為短的時間周期,用于移動終端首次接收節目流和出現中斷請求時使用。在其中的一個實施方式中,所述丟包數統計模塊預先通過計算和測試設定多個檔位碼率下第一時間長度內允許丟包數的丟包數區間,來對丟包數進行比較。在其中的一個實施方式中,所述丟包數統計模塊將智能網關轉碼后輸出的節目流設置到usb口,通過usb口直接連接到pc機,控制智能網關設定多個檔位碼率的節目流;在pc機上將接收到的數據包隨機丟棄,將處理過的節目流送到圖像監視器,進行圖像觀察,同時將處理過的節目流送到碼流分析儀進行實時分析;選定一個碼率的節目流輸出,在pc機上逐步加大丟包數,觀察出現的圖像質量狀況,若出現的馬賽克超過設定值,則記錄下此時的丟包數和碼流分析儀記錄的圖像宏塊丟失數;重復上述測試多次,對記錄的丟包數取平均值作為丟包數區間的上限值;在第一時間長度內,模擬增加丟包數的方法逐漸增加丟包數,在圖像質量整體保持良好的情況下記錄此時的丟包數,作為丟包數區間的下限值;更換其他檔位碼率測試,得到不同檔位碼率在第一時間長度內允許的丟包數區間。在其中的一個實施方式中,所述網絡信號強度感知模塊利用wifirssi估計感知技術,通過獲取rssi值來監測網絡質量突變情況;在104us內進行基帶iq功率積分得到rssi的瞬時值,然后在1秒內對8192個rssi的瞬時值進行平均,得到rssi的平均值作為rssi值。本發明智能網關動態轉換碼率的方法及系統,利用周期性統計丟包數和rssi估計感知技術,兩者結合來對網絡質量出現漸變和突變的情況進行監控,根據監測到的網絡質量來調整轉換合適的碼率,以保證輸出視頻圖像的質量,避免在網絡信號質量變差時輸出的圖像畫面出現馬賽克或卡頓的現象,保證智能網關輸出的節目圖像的質量,使節目畫面都能平滑流暢。附圖說明圖1是一個實施例中的智能網關動態轉換碼率的方法的流程圖;圖2是一個實施例中的智能網關動態轉換碼率的系統結構圖。具體實施方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。數據包(承載了視頻數據的udp包),丟包率(losstolerance或packetlossrate)數據傳輸中所丟失數據包數量占所發送數據包的比率;rssi(receivedsignalstrengthindication)接收的信號強度指示。移動終端在一個空間內逐步遠離智能網關時,網絡信號強度是逐漸衰減的過程,同時也是丟包數和丟包率逐漸增多的過程。針對這種現象,可利用周期性統計分析丟包數或者丟包率來分析網絡質量,以計算出適合當前網絡質量的碼率。當移動終端從一個空間進入另一個空間發生信號遮擋時,移動終端能接收到的網絡信號強度會瞬間出現大幅度的變化,利用這一特性可以利用rssi估計感知技術,監測網絡信號強度來監測網絡信號發生突變的情況。本發明方法利用周期性統計丟包數和rssi估計感知技術,兩者結合來對wifi網絡質量進行監測,根據監測到的網絡質量來調整轉換碼率,以保證輸出視頻圖像的質量,具體的:結合圖1,首先將移動終端通過wifi網絡接入智能網關,控制智能網關根據移動終端發送的請求選擇對應的節目,按照預先設定的碼率對節目進行轉碼并通過wifi網絡將節目流發送給移動終端。然后步驟s10:在移動終端接收節目流后,周期性統計丟包數,并與預設的丟包數區間進行比較,如果丟包數在丟包數區間范圍內,則不通知智能網關,如果超出丟包數區間的上限則通知智能網關降低碼率,如果低于丟包數區間的下限,則通知智能網關提高碼率。步驟s10周期性統計丟包數來分析網絡質量漸變情況。周期性對丟包數目進行統計能夠避免瞬間丟包數過大而產生誤判。丟包數采用周期性統計,能夠屏蔽因為隨機丟包而導致的誤判,采樣周期越長,統計就越準確。根據應用的實際情況,該步驟設計兩個時間長度的采樣周期,第一時間長度t1和第二時間長度ts。其中ts為短的時間周期(數秒),用于移動終端首次接收節目流和出現中斷請求時使用,主要是對新的網絡環境進行丟包數的及時采集,以便快速評估出網絡質量。tl為長的時間周期(數倍于ts),以便比較精確統計丟包數。由于引起視頻播放出現馬賽克和卡頓現象的最直接原因就是出現數據包丟失,丟包數的大小直接影響移動終端節目的圖像質量。在無線通信環境影響丟包數的兩個關鍵因素:碼率和信號強度,碼率越大丟包越多,信號強度越小,丟包越大。如果將丟包數控制在一個合理的范圍內,視頻觀看就會有好的效果。故該步驟預先通過計算和測試設定多個檔位碼率下第一時間長度tl內允許丟包數的丟包數區間,來對丟包數進行比較。具體的,第一時間長度tl允許的丟包數區間獲取方法如下:將智能網關轉碼后輸出的節目流設置到usb口,通過usb口直接連接到pc機(目的是將外界對網絡的干擾降到最低),控制智能網關設定多個檔位碼率(a/b/c……n)的節目流。在pc機上將接收到的數據包隨機丟棄(模擬實際wifi網絡的丟包情況),將處理過的節目流送到圖像監視器,進行圖像觀察,同時將處理過的節目流送到碼流分析儀進行實時分析。丟包數目可以設定并可實現動態調整,在tl周期內,對丟包數按照時間軸隨機分布設置,盡可能模擬網絡出現丟包的情況。碼流分析儀用于記錄因數據包丟失而產生的圖像宏塊丟失數。因為圖像幀的丟失會引起圖像停頓,圖像宏塊的丟失會出現馬賽克,出現馬賽克的概率大許多,因此對圖像宏塊丟失數的統計,可以直接反映圖像質量。選定一個碼率(比如b)的節目流輸出,在pc機上逐步加大丟包數,觀察出現的圖像質量狀況,若出現的馬賽克超過設定值,則認為是一個劣化狀態,記錄下此時的丟包數和碼流分析儀記錄的圖像宏塊丟失數。重復上述測試多次,對記錄的丟包數取平均值作為丟包數區間的上限值。在第一時間長度tl內,模擬增加丟包數的方法逐漸增加丟包數,在圖像質量整體保持良好的情況下記錄此時的丟包數,作為丟包數區間的下限值。更換其他檔位碼率測試,得到不同檔位碼率在第一時間長度內允許的丟包數區間。結合表1,將碼率自大而小,設置成若干檔,例如:a、b、c……n,每檔降低一定間隔的碼率。考慮到丟包數有一個可接受范圍的實際情況,分別設定丟包數區間的上限丟包數和下限丟包數。如果丟包數超出上限,就要降低碼率,如果丟包數小于下限,則可以提高碼率。以a檔為例,對應的允許的丟包數區間為ax~az,其中az是a檔碼率下可接受丟包數的上限,ax是下限。表1視頻碼率檔級允許的丟包數區間aax~azbbx~bzccx~cz…………nnx~nz移動終端接收到節目流后,開始解碼播放,同時周期性統計丟包數。如果是首次接收節目流,則采樣周期為第二時間長度ts,以便快速對當前網絡質量做出判斷,隨后將采樣周期設為第一時間長度tl,以提高統計的精確度。統計丟包數并與各自對應的丟包數區間進行比較,如果丟包數在當前碼率允許的丟包數區間內,則不通知智能網關,如果丟包數超出上限則通知降低碼率,若低于下限,則通知提高碼率。另外,若丟包數超出上限在設定范圍內,則直接降低碼率到下一檔,若丟包數超出上限超出設定范圍,則至少降低兩檔碼率。假設現在的播放碼率在a檔,此時丟包數為p。如果p只是略大于az,則直接轉到b檔,如果p大于az較多,表明網絡質量比較差,則可以考慮先轉到c檔,先保證有一個可以正常收看的效果,待在c檔tl時長后,再評估是否需要將碼率轉換到b檔或d檔。當移動終端接收轉碼后的節目流時,先緩存數據直到接收到一個完整的圖像i幀,再開始解碼圖像。步驟s20:實時監測移動終端接收到的網絡信號強度,獲取網絡信號強度的陡變量并與預設陡變量進行比較,若超過預設陡變量則進行軟中斷觸發向移動終端發送中斷請求。步驟s20利用wifirssi估計感知技術,通過獲取rssi值來監測網絡質量突變情況。移動終端接收的無線網絡信號強度,屬于mac層,rssi參數受到三個因素影響:路徑衰減、遮擋、多徑效應,因此通過對rssi參數的分析可以一定程度反映出網絡質量。由于rssi值的獲取是在反向通道基帶接收濾波器之后進行,為了獲取反向信號的特征,該步驟在104us內進行基帶iq功率積分得到rssi的瞬時值,然后在1秒內對8192個rssi的瞬時值進行平均,得到rssi的平均值作為rssi值。由于wifi的rssi值在擱置不動的情況下都會出現一定幅度的波動,因此簡單的波動不能作為判斷網絡環境發生了變化的依據。故預先設定一個預設陡變量作為發生突變的判斷標準,預設陡變量的大小可以通過實驗測試來評估設定。通常情況移動終端從一個空間環境進入另一個有遮擋的空間時間很短,往往不會超過1秒。為此,該步驟設計軟件中斷程序駐留在移動終端中,每隔1秒接收一次rssi值,如果在1~3秒內出現陡變則發出中斷請求。步驟s30:在移動終端接收到中斷請求后,停止統計丟包數并重新開始周期性統計丟包數。該智能網關動態轉換碼率的方法,利用周期性統計丟包數和rssi估計感知技術,兩者結合來對網絡質量出現漸變和突變的情況進行監控,根據監測到的網絡質量來調整轉換合適的碼率,以保證輸出視頻圖像的質量,避免在網絡信號質量變差時輸出的圖像畫面出現馬賽克或卡頓的現象,保證智能網關輸出的節目圖像的質量,使節目畫面都能平滑流暢。同時,本發明還提供一種智能網關動態轉換碼率的系統,如圖2所示,該系統包括:丟包數統計模塊100,在移動終端接收節目流后,周期性統計丟包數,并與預設的丟包數區間進行比較,如果丟包數在丟包數區間范圍內,則不通知智能網關,如果超出丟包數區間的上限則通知智能網關降低碼率,如果低于丟包數區間的下限,則通知智能網關提高碼率。丟包數統計模塊100周期性統計丟包數來分析網絡質量漸變情況。周期性對丟包數目進行統計能夠避免瞬間丟包數過大而產生誤判。丟包數采用周期性統計,能夠屏蔽因為隨機丟包而導致的誤判,采樣周期越長,統計就越準確。根據應用的實際情況,丟包數統計模塊100設計兩個時間長度的采樣周期,第一時間長度t1和第二時間長度ts。其中ts是一個比較短的時間周期(數秒),用于移動終端首次接收節目流和出現中斷請求時使用,主要是對新的網絡環境進行丟包數的及時采集,以便快速評估出網絡質量。tl是一個比較長的時間周期(數倍于ts),以便比較精確統計丟包數。由于引起視頻播放出現馬賽克和卡頓現象的最直接原因就是出現數據包丟失,丟包數的大小直接影響移動終端節目的圖像質量。在無線通信環境影響丟包數的兩個關鍵因素:碼率和信號強度,碼率越大丟包越多,信號強度越小,丟包越大。如果將丟包數控制在一個合理的范圍內,視頻觀看就會有好的效果。故丟包數統計模塊100預先通過計算和測試設定多個檔位碼率下第一時間長度tl內允許丟包數的丟包數區間,來對丟包數進行比較。具體的,丟包數統計模塊100設定第一時間長度tl允許的丟包數區間方式如下:丟包數統計模塊100將智能網關轉碼后輸出的節目流設置到usb口,通過usb口直接連接到pc機(目的是將外界對網絡的干擾降到最低),控制智能網關設定多個檔位碼率(a/b/c……n)的節目流。丟包數統計模塊100在pc機上將接收到的數據包隨機丟棄(模擬實際wifi網絡的丟包情況),將處理過的節目流送到圖像監視器,進行圖像觀察,同時將處理過的節目流送到碼流分析儀進行實時分析。丟包數目可以設定并可實現動態調整,在tl周期內,對丟包數按照時間軸隨機分布設置,盡可能模擬網絡出現丟包的情況。碼流分析儀用于記錄因數據包丟失而產生的圖像宏塊丟失數。因為圖像幀的丟失會引起圖像停頓,圖像宏塊的丟失會出現馬賽克,出現馬賽克的概率大許多,因此對圖像宏塊丟失數的統計,可以直接反映圖像質量。丟包數統計模塊100選定一個碼率(比如b)的節目流輸出,在pc機上逐步加大丟包數,觀察出現的圖像質量狀況,若出現的馬賽克超過設定值,則認為是一個劣化狀態,記錄下此時的丟包數和碼流分析儀記錄的圖像宏塊丟失數。重復上述測試多次,丟包數統計模塊100對記錄的丟包數取平均值作為丟包數區間的上限值。在第一時間長度tl內,丟包數統計模塊100模擬增加丟包數的方法逐漸增加丟包數,在圖像質量整體保持良好的情況下記錄此時的丟包數,作為丟包數區間的下限值。更換其他碼率測試,得到不同檔位碼率在tl時間段內允許的丟包數區間。結合表1,將碼率自大而小,設置成若干檔,例如:a、b、c……n,每檔降低一定間隔的碼率。考慮到丟包數有一個可接受范圍的實際情況,分別設定丟包數區間的上限丟包數和下限丟包數。如果丟包數超出上限,就要降低碼率,如果丟包數小于下限,則可以提高碼率。以a檔為例,對應的允許的丟包數區間為ax~az,其中az是a檔碼率下可接受丟包數的上限,ax是下限。表1移動終端接收到節目流后,開始解碼播放,同時周期性統計丟包數。如果是首次接收節目流,則采樣周期為第二時間長度ts,以便快速對當前網絡質量做出判斷,隨后將采樣周期設為第一時間長度tl,以提高統計的精確度。丟包數統計模塊100統計丟包數并與各自對應的丟包數區間進行比較,如果丟包數在當前碼率允許的丟包數區間內,則不通知智能網關,如果丟包數超出上限則通知降低碼率,若低于下限,則通知提高碼率。另外,若丟包數超出上限在設定范圍內,丟包數統計模塊100則直接降低碼率到下一檔,若丟包數超出上限超出設定范圍,丟包數統計模塊100則至少降低兩檔碼率。假設現在的播放碼率在a檔,此時丟包數為p。如果p只是略大于az,則直接轉到b檔,如果p大于az較多,表明網絡質量比較差,則可以考慮先轉到c檔,先保證有一個可以正常收看的效果,待在c檔tl時長后,再評估是否需要將碼率轉換到b檔或d檔。當移動終端接收轉碼后的節目流時,先緩存數據直到接收到一個完整的圖像i幀,再開始解碼圖像。網絡信號強度感知模塊200,實時監測移動終端接收到的網絡信號強度,獲取網絡信號強度的陡變量并與預設陡變量進行比較,若超過預設陡變量則進行軟中斷觸發向移動終端發送中斷請求。網絡信號強度感知模塊200利用wifirssi估計感知技術,通過獲取rssi值來監測網絡質量突變情況。移動終端接收的無線網絡信號強度,屬于mac層,rssi參數受到三個因素影響:路徑衰減、遮擋、多徑效應,因此通過對rssi參數的分析可以一定程度反映出網絡質量。由于rssi值的獲取是在反向通道基帶接收濾波器之后進行,為了獲取反向信號的特征,網絡信號強度感知模塊200在104us內進行基帶iq功率積分得到rssi的瞬時值,然后在1秒內對8192個rssi的瞬時值進行平均,得到rssi的平均值作為rssi值。由于wifi的rssi值在擱置不動的情況下都會出現一定幅度的波動,因此簡單的波動不能作為判斷網絡環境發生了變化的依據。故網絡信號強度感知模塊200預先設定一個預設陡變量作為發生突變的判斷標準,預設陡變量的大小可以通過實驗測試來評估設定。通常情況移動終端從一個空間環境進入另一個有遮擋的空間時間很短,往往不會超過1秒。為此,網絡信號強度感知模塊200設計軟件中斷程序駐留在移動終端中,每隔1秒接收一次rssi值,如果在1~3秒內出現陡變則發出中斷請求。在移動終端接收到中斷請求后,丟包數統計模塊100停止統計丟包數并重新開始周期性統計丟包數。該智能網關動態轉換碼率的系統,利用周期性統計丟包數和rssi估計感知技術,兩者結合來對網絡質量出現漸變和突變的情況進行監控,根據監測到的網絡質量來調整轉換合適的碼率,以保證輸出視頻圖像的質量,避免在網絡信號質量變差時輸出的圖像畫面出現馬賽克或卡頓的現象,保證智能網關輸出的節目圖像的質量,使節目畫面都能平滑流暢。以上僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。當前第1頁12