一種基于通信網絡的高質量語音傳輸方法
【技術領域】
[0001]本發明涉及網絡傳輸和通信,特別涉及一種語音傳輸方法。
【背景技術】
[0002]近年來,隨著互聯網和信息技術的高速發展,以及服務器與互聯網的結合,如何對網絡協議進行優化,在有限的網絡帶寬下高效地傳輸多媒體數據,并且避免造成網絡擁塞,成為了視頻、語音等媒體服務器的發展方向之一。語音數據在互聯網上的傳輸依賴網絡傳輸協議,包括TCP和UDP傳輸協議,如果用不具備任何排序、重傳和擁塞控制的協議來傳輸多媒體數據,網絡帶寬會被迅速耗盡,而且隨著網絡狀態的惡化,丟包數的增加也會影響傳輸質量。現有的擁塞控制不適合硬件條件有限的嵌入式設備,沒有根據嵌入式設備的特點進行相應調整,無法滿足嵌入式設備中語音數據的實時性和準確性。因此,針對相關技術中所存在的上述問題,目前尚未提出有效的解決方案。
【發明內容】
[0003]為解決上述現有技術所存在的問題,本發明提出了一種基于通信網絡的高質量語音傳輸方法,包括:
[0004]嵌入式語音數據服務器作為發送方,在數據包頭添加序號和時間戳,通過測定接收方的響應數據來判斷當前網絡狀態;
[0005]根據當前網絡狀態,計算下一時刻的在每兩個數據包或每兩組數據包的發送之間的主控延遲,基于所述主控延遲調整服務器的語音傳輸速率。
[0006]優選地,所述響應數據包括丟包率,并且所述根據當前網絡狀態,計算下一時刻的在每兩個數據包或每兩組數據包的發送之間的主控延遲,基于所述主控延遲調整服務器的語音傳輸速率,進一步包括:
[0007](I)計算第I時刻的丟包率P (I),以此作為第I時刻的丟包率估計值P(I);然后計算第2時刻的丟包率P (2),通過平滑公式計算第2時刻的丟包率估計值,其中所述平滑公式如下:
[0008]P (t) = (1- α ).P (t-1) + α.p (t)
[0009]式中α為平滑系數,是0-1之間的常數;
[0010](2)將丟包率估計值P(t)進行正則化,使計算出的丟包率等級L(t)為0-1之間的數值,公式如下:
[0011]L(t)=P(t)/0
[0012]式中β為預先選擇的可容忍的最大丟包率;
[0013](3)采用基于主控延遲的方法對傳輸速率進行調整,包括:
[0014]在每兩個數據包之間間隔一個主控延遲,或每兩組數據包之間間隔一個主控延遲;主控延遲的參數D⑴的范圍是[D1, Dh],其中DjP Dh計算公式如下:
[0015]D1=MaveZMh[_ Dh=MJM1
[0017]式中Mh和M 別為單位時間內允許的最大和最小數據傳輸量,M 為每個或每組數據包大小;
[0018](4)擁塞情況的判斷:設定兩個擁塞閾值Lh和L i,且(KL1O^l ; [0,L1]作為空閑狀態,[Lh, I]作為擁塞狀態;根據不同的丟包率等級L(t)和L(t-l)判定不同的擁塞情況,然后分別計算速率調整參數d:
[0019]若L(t)彡Lh且L(t_l)〈Lh,即t_l時刻未進入擁塞狀態,t時刻進入擁塞狀態,則通過增加主控延遲來降低傳輸速率:
[0020]d = (Dh-D1).(L (t)-Lh)/(1-Lh) D (t) = min{D(t)+d, Dj ;
[0021]若L(t)彡L (t-Ι)彡Lh,即t-Ι時刻已進入擁塞狀態,t時刻擁塞程度比t-Ι時刻嚴重,則通過增加主控延遲來降低傳輸速率:
[0022]d = (Dh-D1).(L(t)-L(t-1))/(1-Lh)D(t) = min{D(t)+d, Dj ;
[0023]若L(t) <LX,即t時刻進入空閑狀態,則通過減少主控延遲來加快傳輸速率:
[0024]d = (Dh-D1).(L1-L (t)) /L1 D (t) = max {D (t) -d, D1I ;
[0025]若L(t)和L (t-1)不滿足上述任一種情況,則不作任何速率調整,即D (t) =D(t)。
[0026]本發明相比現有技術,具有以下優點:
[0027]本發明提供了一種針對硬件條件有限的語音數據服務器的傳輸控制方法,提高了語音傳輸的實時性和有效性,傳輸速率得到有效調整,顯著提高了 QoS。
【附圖說明】
[0028]圖1是根據本發明實施例的基于通信網絡的高質量語音傳輸方法的流程圖。
【具體實施方式】
[0029]下文與圖示本發明原理的附圖一起提供對本發明一個或者多個實施例的詳細描述。結合這樣的實施例描述本發明,但是本發明不限于任何實施例。本發明的范圍僅由權利要求書限定,并且本發明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節以便提供對本發明的透徹理解。出于示例的目的而提供這些細節,并且無這些具體細節中的一些或者所有細節也可以根據權利要求書實現本發明。
[0030]擁塞控制的目的就是控制網絡吞吐量,從而實現低丟包率、低網絡延遲和低抖動。對于語音數據服務器來說,遠距離的廣域網通信是它的一大特點,擁塞控制中應考慮到網絡延遲的問題,同時為了減輕網絡負擔,用單程延遲代替往返延遲。在發送方包頭添加時間戳,在接收方根據發送方的時間戳和接收時間就可計算出網絡延遲,從而計算延遲。本發明所改進的擁塞控制算法是在數據包頭添加序號和時間戳,通過測定丟包率、網絡延遲來對網絡狀態進行估計與判斷。
[0031]本發明的一方面提供了一種基于通信網絡的高質量語音傳輸方法。圖1是根據本發明實施例的基于通信網絡的高質量語音傳輸方法流程圖。
[0032]嵌入式媒體服務器數據速率調整的機制是,在每兩個數據包或者每兩組數據包的發送之間經歷一段時間的主控延遲,通過主控延遲的長短控制網絡吞吐量。速率調整機制都是基于數據傳輸速率的,即通過公式計算下一時刻單位時間應發送的數據量,然后進行調整。這樣速率調整的機制對于CPU處理性能較高、系統時鐘精度較高的計算機來說是準確且有效的,但是對于系統資源有限的語音數據服務器來說是不合適的。綜上所述,對于基于嵌入式設備的語音數據服務器來說,不應采取基于傳輸速率的調整機制,而應采取基于主控延遲的速率調整機制,既可以簡化代碼復雜程度,又可以有效控制吞吐量。
[0033]本發明采用雙閾值,并且改進了網絡狀態的判定方法。針對丟包率和網絡延遲這兩個擁塞指標,分別采用基于丟包率的擁塞控制方法和基于網絡延遲的擁塞控制方法。
[0034]下面介紹基于丟包率的擁塞控制算法流程。
[0035](I)根據丟包率公式計算第I時刻的丟包率P (I),以此作為第I時刻的丟包率估計值Pd)。然后計算第2時刻的丟包率P (2),通過平滑公式計算第2時刻的丟包率估計值。所述平滑公式如下:
[0036]P (t) = (1- α ).P (t~l) + α.p (t)
[0037]式中α為平滑系數,是0-1之間的常數。當α接近I的時候,丟包率估計值P (t)接近丟包率P (t),平滑效果不明顯;當α接近O的時候,丟包率估計值P (t)接近上一時刻的丟包率估計值P(t-l),過于平穩,無法及時跟蹤當前丟包率。所以,應根據不同的需要,選擇不同的α。在本實施例中,為了兼顧實時性與穩定性,平滑系數取0.5。
[0038](2)為了簡化計算,將丟包率估計值P (t)進行正則化,使計算出的丟包率等級L(t)為0-1之間的數值。公式如下:
[0039]L (t) = P (t) / β
[0040]式中β為可容忍的最大丟包率,此值根據不同需求預先選擇。在本發明中選3%作為可容忍的最大丟包率。
[0041](3)采用基于主控延遲的方法對傳輸速率進行調整:在每兩個數據包之間間隔一個主控延遲,或兩組數據包(每組有若干個數據包)之間間隔一個主控延遲。主控延遲的參數D(t)的范圍是[D1, Dh],其中DjP Dh需要根據芯片性能、操作系統精度以及具體任務要求而選擇。DjP Dh計算公式如下:
[0042]Dl=Mave/Mh
[0043]Dh= M
[0044]式中Mh和M 別為單位時間內系統所允許的最大和最小數據傳輸量,M 為每個或每組數據包大小。
[0045](4)擁塞情況的判斷:設定兩個擁塞閾值L1^PL1,且(KWl。[O,LI]作為空閑狀態,[Lh, I]作為擁塞狀態。根據不同的丟包率等級L(t)和L(t-l)判定不同的擁塞情況,然后分別計算速率調整參數d。
[0046]情況1:L(t)彡Lh且L(t_l)〈Lh,即t_l時刻未進入擁塞狀態,t時刻進入擁塞狀態,應通過增加主控延遲來降低傳輸速率。
[0047]d = (Dh-D1).(L (t)-Lh) / (1-Lh)
[0048]D (t) = min {D (t) +d, Dj
[0049]情況2:L(t)彡L(t-Ι)彡Lh,即t_l時刻已進入擁塞狀態,t時刻擁塞程度比t_l時刻更嚴重,應通過增加主控延遲來降低傳輸速率。
[0050]d = (Dh-D1).(L(t)-L (t_l))/(1-Lh)
[0051]D (t) = min {D (t) +d, Dj
[0052]情況3 ^aXL1,即t時刻進入空閑狀態,應通過減少主控延遲來加快傳輸速率。
[0053]d= (Dh-D1).(L1-La))/^
[0054]D (t) = max {D (t) -d, D1I
[0055]情況4:除了以上3種情況的其他情況,不需要作任何速率調整。即D(t) =D(t)
[0056]基于網絡延遲的擁塞控制算法和基于丟包率的擁塞控制算法基本相同,僅需要用相應的網絡延遲代替丟包率,然后代入以上公式計算即可。
[0057](I)根據網絡延遲值公式計算第I時刻的網絡延遲γ (I),以此作為第I時刻的網絡延遲估計值R(I)。然后計算第2時刻的網絡延遲γ (2),通過平滑公式計算第2時刻的網絡延遲估計值。所述平滑公式如下:
[0058]R(t) = (1- Θ ).R(t-l)+ θ.γ (t)
[0059]式中Θ為平滑系數,是0-1之間的常數。當Θ接近I的時候,網絡延遲估計值R(t)接近網絡延遲γ (t),平滑效果不明顯;當Θ接近O的時候,網絡延遲估計值R(t)接近上一時刻的網絡延遲估計值R(t-l),過于平穩,無法及時跟蹤當前網絡延遲。所以,應根據不同的需要,選擇不同的Θ。在本實施例中,為了兼顧實時性與穩定性,平滑系數取0.5。
[0060](2)為了簡化計算,將網絡延遲估計值R(t)進行正則化,使計算出的網絡延遲等級M(t)為0-1之間的數值。公式如下: