視頻圖像數據的網絡發(fā)送速率的平滑方法
【技術領域】
[0001] 本發(fā)明涉及視頻圖像傳輸領域,特別涉及一種視頻圖像傳輸過程中的視頻圖像平 滑方法。
【背景技術】
[0002] 在視頻監(jiān)控,網絡視頻會議等應用中,視頻圖像從實時采集一直到視頻圖像播放 端,需要經過采集、緩沖W及網絡傳輸等環(huán)節(jié)。
[0003] 如圖1所示,視頻拍攝前端所采集到的視頻數據經過視頻編碼器1編碼后,視頻編 碼器1通過寫指針11將視頻數據存放到緩沖區(qū)2,網絡發(fā)流器3通過讀指針31將緩沖區(qū)中 存放的視頻數據讀出,并通過視頻傳輸網絡4發(fā)出。視頻編碼器1維護寫指針11,在寫指針 11將視頻數據存放到緩沖區(qū)2時,寫指針11在緩沖區(qū)2中的位置會隨著視頻數據的寫入而 更新;網絡發(fā)流器3維護讀指針31,在讀指針31將視頻數據從緩沖區(qū)2讀出時,讀指針31 在緩沖區(qū)2中的位置會隨著視頻數據的讀出而更新。在本領域中,網絡發(fā)流器3的數量可 W為1個或者多個,每個網絡發(fā)流器3各自維護自己的讀指針31,另外,網絡發(fā)流器3也可 W采用多線程技術實現。
[0004] 寫指針11的更新速度反映了視頻編碼器1的輸出速率,網絡發(fā)流器3通過對讀指 針31的控制,便可調整視頻數據碼流發(fā)送到視頻傳輸網絡4的速率,視頻數據碼流發(fā)送到 視頻傳輸網絡4的速率的平滑程度(或均勻性),反映到視頻傳輸網絡4上,即為網絡數據 流的平滑性。
[0005] 在視頻圖像實時采集,視頻傳輸網絡實時發(fā)送采集到的視頻數據時;一方面,由于 采集的視頻圖像的畫面場景變化隨機,進而所采集到的原始數據量差別很大;另一方面,視 頻壓縮算法采用了頓內(I頓)和頓間(P頓)壓縮的方法,其中,I頓也叫關鍵頓,是頓間壓 縮編碼里的重要頓,I頓是全頓壓縮的編碼頓,解碼時僅用I頓的數據就可重構完整圖像,I 頓不需要參考其他畫面而生成,而P頓由在它前面的P頓或者I頓預測而來,P頓比較與它 前面的P頓或者I頓之間的相同信息或數據,即考慮運動的特性進行頓間壓縮,P頓是根據 本頓與相鄰的前一頓(I頓或P頓)的不同點來壓縮本頓數據,送樣,由于I頓和P頓的不 同性質,導致壓縮后的視頻數據量差別很大。
[0006] 由于該兩方面的原因,最終反映在網絡傳輸數據上將變得很不平滑,會存在網絡 數據的瞬間過沖的現象,加之在實際應用場合中,存在帶寬限制等約束,送樣,網絡數據的 瞬間過沖將可能導致數據丟失,或者大量設備同時出現大量數據,將導致網絡擁塞,甚至網 絡痛疾。
[0007] 因此,對視頻圖像數據進行平滑處理,是保障網絡數據不發(fā)生瞬間過沖,避免網絡 擁塞和網絡痛疾的重要手段。
[0008] 現有技術中,已有人針對此情況采用了對視頻圖像數據進行平滑處理的方法。例 如專利CN102355577A中所公開的一種多視視頻碼流的網絡傳輸碼率平滑方法,將發(fā)送緩 存區(qū)再分為兩級緩存,并將數據設為閥口值進行計算。該方法可W-定程度上緩沖數據,進 而達到網絡平滑,但是該方法也有明顯的不足,例如,需要兩個內存緩沖區(qū),缺少動態(tài)實時 調整,只按預先設定的闊值進行平滑等,缺少對實時發(fā)送速率的應變。
【發(fā)明內容】
[0009] 有鑒于此,本發(fā)明提供一種視頻圖像數據的網絡發(fā)送速率的平滑方法,W對當前 發(fā)送帶寬進行實時檢測,進而動態(tài)調整發(fā)送速度,達到碼率平滑的目的。
[0010] 本申請的技術方案是送樣實現的:
[0011] 一種視頻圖像數據的網絡發(fā)送速率的平滑方法,包括在每個視頻記錄采樣周期內 執(zhí)行的如下過程:
[0012] 在當前視頻記錄采樣周期內,將視頻碼流寫入緩沖區(qū);
[0013] 計算所述當前視頻記錄采樣周期的視頻編碼器的碼流變化;
[0014] 獲取當前緩沖區(qū)中視頻數據大小;
[0015] 根據所述當前緩沖區(qū)中視頻數據大小與視頻傳輸網絡所允許延時的關系,獲得所 述視頻數據的待發(fā)送速率;
[0016] 將所述待發(fā)送速率分別與當前視頻傳輸網絡帶寬和視頻碼流在視頻傳輸網絡中 的波動最大值進行比較,W確定實際發(fā)送速率;
[0017] 采用所述實際發(fā)送速率發(fā)送所述緩沖區(qū)中的視頻數據。
[0018] 進一步,如果采用所述實際發(fā)送速率發(fā)送所述緩沖區(qū)中的視頻數據所用時長超過 所述采樣周期,則調整所述當前緩沖區(qū)中視頻數據大小與視頻傳輸網絡所允許延時的關 系,W在下一個視頻記錄采樣周期內采用。
[0019] 進一步,所述計算所述當前視頻記錄采樣周期的視頻編碼器的碼流變化,采用如 下公式進行:
[0020] AS = S-So
[0021] 其中,AS為當前視頻記錄采樣周期的視頻編碼器的碼流變化,S為當前視頻記錄 采樣周期的視頻編碼器的碼流量,S。為前一視頻記錄采樣周期的視頻編碼器的碼流量。
[0022] 進一步,根據所述當前緩沖區(qū)中視頻數據大小與視頻傳輸網絡所允許延時的關 系,獲得所述視頻數據的待發(fā)送速率,包括:
[0023] 在所述緩沖區(qū)中設置第一闊值點和第二闊值點,其中第一闊值點小于第二闊值 占. ;、、、?
[0024] 當所述緩沖區(qū)中緩沖的視頻數據量小于第一闊值點時,采用如下公式獲得所述待 發(fā)送速率:
[0026]當所述緩沖區(qū)中緩沖的視頻數據量位于所述第一闊值點和第二闊值點之間時,采 用如下公式獲得所述待發(fā)送速率:
[0028]當所述緩沖區(qū)中緩沖的視頻數據量大于第二闊值點時,采用如下公式獲得所述待 發(fā)送速率:
[0030] 其中,V為待發(fā)送速率,V。為前一視頻記錄采樣周期內發(fā)送到網絡的最終發(fā)送速 率,T為視頻記錄采樣周期,Ay為一級修正因子,Ax為二級修正因子。
[0031] 進一步,所述視頻碼流在視頻傳輸網絡中的波動最大值等于視頻圖像目標平滑值 與視頻傳輸網絡碼率的乘積。
[0032] 進一步,將所述待發(fā)送速率分別與當前視頻傳輸網絡帶寬和視頻碼流在視頻傳輸 網絡中的波動最大值進行比較,W確定實際發(fā)送速率,包括:
[0033] 將所述待發(fā)送速率、當前視頻傳輸網絡帶寬、視頻碼流在視頻傳輸網絡中的波動 最大值H者中的最小值確定為實際發(fā)送速率。
[0034] 進一步,所述第一闊值點為所述視頻傳輸網絡延時所允許的緩沖數據量的3/8,所 述第二闊值點為所述視頻傳輸網絡延時所允許的緩沖數據量的5/8。
[0035] 進一步,當所述緩沖區(qū)中緩沖的視頻數據量大于等于0,且小于所述視頻傳輸網絡 延時所允許的緩沖數據量的1/8,所述一級修正因子Ay為-0. 15;
[0036] 當所述緩沖區(qū)中緩沖的視頻數據量大于等于所述視頻傳輸網絡延時所允許的緩 沖數據量的1/8,且小于所述視頻傳輸網絡延時所允許的緩沖數據量的2/8時,所述一級修 正因子Ay為-0. 1 ;
[0037]當所述緩沖區(qū)中緩沖的視頻數據量大于等于所述視頻傳輸網絡延時所允許的緩 沖數據量的2/8,且小于所述視頻傳輸網絡延時所允許的緩沖數據量的3/8時,所述一級修 正因子Ay為-0. 05;
[0038] 當所述緩沖區(qū)中緩沖的視頻數據量大于等于所述視頻傳輸網絡延時所允許的緩 沖數據量的3/8,且小于等于所述視頻傳輸網絡延時所允許的緩沖數據量的5/8時,所述一 級修正因子Ay為0 ;
[0039]當所述緩沖區(qū)中緩沖的視頻數據量大于所述視頻傳輸網絡延時所允許的緩沖數 據量的5/8,且小于等于所述視頻傳輸網絡延時所允許的緩沖數據量的6/8時,所述一級修 正因子Ay為0. 05;
[0040] 當所述緩沖區(qū)中緩沖的視頻數據量大于所述視頻傳輸網絡延時所允許的緩沖數 據量的6/8時,且小于等于所述視頻傳輸網絡延時所允許的緩沖數據量的7/8時,所述一級 修正因子Ay為0.1;
[0041]當所述緩沖區(qū)中緩沖的視頻數據量大于所述視頻傳輸網絡延時所允許的緩沖數 據量的7/8時,且小于等于所述視頻傳輸網絡延時所允許的緩沖數據量的8/8時,所述一級 修正因子Ay為0. 15。
[0042] 進一步,所述二級修正因子通過如下方法確定:
[0043] 根據視頻編碼器碼率,設定第H闊值點和第四闊值點,其中第H闊值點小于第四 闊值點;
[0044] 統(tǒng)計當前時間之前2砂鐘到當前時間之前1砂鐘的實際碼流量,記為第一實際碼 流量,統(tǒng)計當前時間之前1砂鐘到當前時間的實際碼流量,記為第二實際碼流量;
[0045]當第一實際碼流量和第二實際碼流量均低于所述第H闊值點時:
[0047] 當第一實際碼流量和第二實際碼流量均高于所述第四闊值點時:
[0049] 其中,Ps為第H闊值點,P4為第四闊值點,T為視頻記錄采樣周期,S為當前視頻記 錄采樣周期的視頻編碼器的碼流量,Ax為所述二級修正因子。
[0050] 進一步,所述第H闊值點為所述視頻編碼器碼率的3/4,第四闊值點為所述視頻編 碼器碼率的5/4,即
[0052] 其中,P。為所述視頻編碼器碼率。
[0053] 從上述方案可W看出,采用本發(fā)明的視頻圖像數據的網絡發(fā)送速率的平滑方法, 可給視頻傳輸網絡碼率波動帶來極大的改善,使得視頻傳輸網絡碼率波動范圍能夠始終保 持在一個較小的范圍內。采用本發(fā)明的視頻圖像數據的網絡發(fā)送速率的平滑方法,可使得 視頻圖像數據的網絡發(fā)送速率不斷地按照預想的方向進行平滑,并最終實現視頻圖像數據 在視頻傳輸網絡中的平滑發(fā)送,進而避免網絡數據的瞬間過沖、數據丟失、網絡擁塞甚至網 絡痛疾的可能。與現有技術相比,本發(fā)明的方法僅使用了單