QoS
簡(jiǎn)介
Quality of Service 服務(wù)質(zhì)量,是網(wǎng)絡(luò)的一種安全機(jī)制, 是用來(lái)解決網(wǎng)絡(luò)延遲和阻塞等問(wèn)題的一種技術(shù)。
當(dāng)網(wǎng)絡(luò)過(guò)載或擁塞時(shí),QoS 能確保重要業(yè)務(wù)量不受延遲或丟棄,同時(shí)保證網(wǎng)絡(luò)的高效運(yùn)行。
ITU將服務(wù)質(zhì)量定義為決定用戶(hù)對(duì)服務(wù)的滿(mǎn)意程度的一組服務(wù)性能指標(biāo)。從另一角度來(lái)說(shuō),QoS參數(shù)也是流媒體媒體傳輸?shù)男阅苤笜?biāo)。
主要的QoS參數(shù)有如下幾項(xiàng):傳輸帶寬,傳輸時(shí)延和抖動(dòng),丟包率。
傳輸帶寬
網(wǎng)絡(luò)的兩個(gè)節(jié)點(diǎn)之間特定應(yīng)用業(yè)務(wù)流的平均速率,一般來(lái)說(shuō),帶寬越高,就能允許更多的數(shù)據(jù)傳輸。
IP網(wǎng)絡(luò)同時(shí)承載多種視頻、語(yǔ)音和數(shù)據(jù)業(yè)務(wù),具體包括VOIP、IPTV、即時(shí)通信、文件傳輸、網(wǎng)絡(luò)游戲、BT、WEB、E-Mail等多種應(yīng)用模式,不同應(yīng)用模式的數(shù)據(jù)流量和突發(fā)性也有差別,導(dǎo)致音視頻會(huì)議業(yè)務(wù)的帶寬不平穩(wěn)。
傳輸時(shí)延和抖動(dòng)
時(shí)延
例如流媒體傳輸
- 信息源的媒體采樣、壓縮編碼和打包的時(shí)延
- 傳輸時(shí)延
- 接收端的排隊(duì)和播放緩沖時(shí)延
- 接收端的拆包、解碼和輸出時(shí)延
其中媒體相關(guān)延時(shí)相對(duì)固定,網(wǎng)絡(luò)傳輸延時(shí)主要取決于網(wǎng)絡(luò)的拓樸復(fù)雜性,及網(wǎng)絡(luò)設(shè)備的處理時(shí)延等因素,對(duì)端到端的整體延時(shí)影響較。
抖動(dòng)
抖動(dòng)定義為網(wǎng)絡(luò)傳輸延時(shí)的變化率。時(shí)延抖動(dòng)對(duì)流媒體播放質(zhì)量的影響非常大,一般會(huì)采用緩存排隊(duì)的辦法平滑數(shù)據(jù)報(bào)的抖動(dòng)。但如果數(shù)據(jù)傳輸?shù)亩秳?dòng)較大,則必須采用大的緩存,這將直接造成更大的時(shí)延,直接影響流媒體的體驗(yàn)效果。
IP網(wǎng)絡(luò)抖動(dòng)取決于網(wǎng)絡(luò)的動(dòng)態(tài)路由,以及網(wǎng)絡(luò)設(shè)備由于擁塞造成的延時(shí)等因素
丟包率
UDP缺乏擁塞避免控制算法,會(huì)侵占大量的寬帶,導(dǎo)致網(wǎng)絡(luò)過(guò)載和高丟包率(丟包率直接影響視頻會(huì)議的質(zhì)量)
QoS保障技術(shù)
常用的QoS保障技術(shù)包括 IP優(yōu)先級(jí),速率調(diào)整,丟包重傳(ARQ),前向糾錯(cuò)(FEC),后向糾錯(cuò)(PLC)等,這些QoS策略在一定程度上能控制數(shù)據(jù)包擁塞,消除傳輸中產(chǎn)生的差錯(cuò),提高音視頻質(zhì)量。
-
IP優(yōu)先級(jí)
IP優(yōu)先級(jí)利用IP報(bào)文中的優(yōu)先權(quán)部分,對(duì)音頻、視頻和RTCP數(shù)據(jù)流進(jìn)行優(yōu)先級(jí)劃分。IP報(bào)文的包頭中有一專(zhuān)用字節(jié),稱(chēng)之為服務(wù)類(lèi)型域“該字節(jié)前三個(gè)比特位用來(lái)定義數(shù)據(jù)報(bào)優(yōu)先等級(jí)”IP優(yōu)先是描述0-7等8個(gè)不同的優(yōu)先等級(jí)。
音視頻會(huì)議系統(tǒng)中,當(dāng)網(wǎng)絡(luò)帶寬低于一定標(biāo)準(zhǔn)時(shí),可及時(shí)調(diào)整包的優(yōu)先級(jí)級(jí)別,這樣可幫助路由器選擇IP包的發(fā)送與接收的優(yōu)先級(jí)。一般來(lái)說(shuō)音頻包對(duì)時(shí)間延遲最為敏感,當(dāng)網(wǎng)絡(luò)采用IP優(yōu)先權(quán)進(jìn)行流量匹配時(shí),可通過(guò)視頻設(shè)備發(fā)出的修改過(guò)IP優(yōu)先權(quán)字段信息的視音頻包進(jìn)行入隊(duì)列處理,以保證音視頻會(huì)議碼流的優(yōu)先傳送。
-
速率調(diào)整
在一些惡劣的網(wǎng)絡(luò)環(huán)境下,如果使用的音視頻會(huì)議數(shù)據(jù)傳輸率引起網(wǎng)絡(luò)的飽和,從而造成數(shù)據(jù)包丟失和嚴(yán)重的網(wǎng)絡(luò)抖動(dòng),則不如降低數(shù)據(jù)傳輸率,消除數(shù)據(jù)包丟失和網(wǎng)絡(luò)抖動(dòng),這種情況下降低會(huì)議碼率將有助于提高視音頻的連貫性,獲得更好的音頻和視頻效果。
如果視頻設(shè)備支持動(dòng)態(tài)速率調(diào)整技術(shù),可以使終端和MCU能通過(guò)檢測(cè)網(wǎng)絡(luò)上有利和不利的因素來(lái)自動(dòng)適應(yīng)網(wǎng)絡(luò)的容量和性能,通過(guò)動(dòng)態(tài)調(diào)整音視頻會(huì)議的碼率,為終端用戶(hù)提供盡可能好的視頻質(zhì)量。
音視頻會(huì)議設(shè)備的自適應(yīng)帶寬調(diào)整功能主要是通過(guò)檢測(cè)數(shù)據(jù)包丟失率來(lái)實(shí)現(xiàn)的,如果設(shè)備檢測(cè)到數(shù)據(jù)包丟失率超過(guò)了指定的閥值,將自動(dòng)降低音視頻會(huì)議碼率,提供一個(gè)具有最優(yōu)視音頻效果的會(huì)議碼率。
-
丟包重傳(ARQ)
自動(dòng)請(qǐng)求重發(fā)
當(dāng)網(wǎng)絡(luò)擁塞嚴(yán)重時(shí),網(wǎng)絡(luò)設(shè)備(如路由器)會(huì)根據(jù)緩存大小并配合相關(guān)處理機(jī)制丟掉一些視頻包,音視頻會(huì)議系統(tǒng)中視頻包是采用UDP協(xié)議進(jìn)行傳輸?shù)?,而UDP本身沒(méi)有重傳機(jī)制,因此會(huì)導(dǎo)致接收端出現(xiàn)圖像丟幀或馬賽克現(xiàn)象。
支持丟包重傳的視頻設(shè)備可通過(guò)添加丟包檢測(cè)和重傳的機(jī)制來(lái)保證會(huì)議圖像的連貫性。
ARQ是在網(wǎng)絡(luò)丟包時(shí)自動(dòng)重傳差錯(cuò)的數(shù)據(jù)包,接收端需要緩沖和排序已收到的數(shù)據(jù)包,IP網(wǎng)絡(luò)時(shí)延和抖動(dòng)等因素對(duì)重傳性能有很大影響,時(shí)延大時(shí)重傳難以滿(mǎn)足音視頻會(huì)議業(yè)務(wù)實(shí)時(shí)性的需求。
ARQ重傳在小丟包和較低網(wǎng)絡(luò)延遲的網(wǎng)絡(luò)情況下能夠達(dá)到較理想的效果。
-
前向糾錯(cuò)(FEC)
Forward Error Correction。
FEC算法是在發(fā)送端發(fā)出的音頻數(shù)據(jù)中增加冗余信息,接收端根據(jù)冗余信息檢測(cè)和糾正丟包造成的錯(cuò)誤,由于糾錯(cuò)時(shí)不需要等待發(fā)送端重傳丟失的信息,適合解決音視頻會(huì)議這類(lèi)實(shí)時(shí)業(yè)務(wù)中的網(wǎng)絡(luò)適應(yīng)性問(wèn)題。
FEC算法通過(guò)數(shù)據(jù)異或的方式生成校驗(yàn)包,同時(shí)設(shè)計(jì)播放緩沖區(qū)策略來(lái)降低延遲,網(wǎng)絡(luò)上的延遲和抖動(dòng),減少丟包的出現(xiàn)。
在采用FEC 編碼保證數(shù)據(jù)傳輸?shù)目煽啃缘耐瑫r(shí), 應(yīng)注意選擇編碼方案的策略。一般來(lái)說(shuō)FEC 編碼的冗余度越大其糾錯(cuò)能力也越強(qiáng), 但冗余度越大, 意味著冗余數(shù)據(jù)占用的帶寬也越大, 帶寬利用率越低。
-
后向糾錯(cuò)(PLC)
Packet Loss Concealment,丟包隱藏算法
IP網(wǎng)絡(luò)中出現(xiàn)音頻數(shù)據(jù)包丟失時(shí)會(huì)導(dǎo)致語(yǔ)音失真,為了減輕信包丟失對(duì)語(yǔ)音感知質(zhì)量的影響,PLC算法利用丟失信包的前一信包或鄰接信包(在后一信包可獲得的情況下)預(yù)測(cè)丟失的數(shù)據(jù)包,盡可能地恢復(fù)出原來(lái)的語(yǔ)音信息。
PLC算法多數(shù)基于接收端處理,不需要發(fā)送端參與。
視頻直播時(shí)QoS策略
判斷當(dāng)前網(wǎng)絡(luò)狀況
由于丟包和抖動(dòng),接收端接收超時(shí)觸發(fā)發(fā)送端重傳,占用網(wǎng)絡(luò)帶寬,導(dǎo)致發(fā)送緩沖區(qū)發(fā)送失敗,緩沖區(qū)中數(shù)據(jù)越來(lái)越多,達(dá)到上溢。此時(shí)應(yīng)用等待緩沖區(qū)達(dá)到低于警戒線(xiàn)。根據(jù)等待的時(shí)間長(zhǎng)短可以判斷當(dāng)前網(wǎng)絡(luò)是否擁堵。
當(dāng)網(wǎng)絡(luò)帶寬變差時(shí),推流端會(huì)迅速地逐級(jí)降低視頻的幀率、碼率、分辨率,以保證推流視頻的流暢。而當(dāng)網(wǎng)絡(luò)恢復(fù)良好時(shí),在確保流暢的前提下,推流端會(huì)逐漸提升視頻的幀率、碼率、分辨率,提升直播視頻的清晰度。
策略
對(duì)于直播場(chǎng)景,采用qos策略,動(dòng)態(tài)調(diào)整編碼參數(shù),包括幀率,碼率,分辨率,緩沖區(qū)。
當(dāng)直播出現(xiàn)卡頓,采用快降慢升的策略,當(dāng)網(wǎng)絡(luò)波動(dòng)比較厲害,這樣可以避免編碼參數(shù)頻繁的來(lái)回調(diào)整,造成惡性循環(huán)。當(dāng)進(jìn)行編碼參數(shù)調(diào)整時(shí),一般是根據(jù)分辨率把碼率,幀率分成幾個(gè)檔次,然后在根據(jù)一定時(shí)間段內(nèi)的統(tǒng)計(jì)數(shù)據(jù),在這幾組參數(shù)集合之間進(jìn)行來(lái)回切換,確保音視頻流暢的同時(shí),盡量提高圖像質(zhì)量。
GOP的長(zhǎng)度就是指2個(gè)I幀之間的幀數(shù)(通常也稱(chēng)為“關(guān)鍵幀間隔”)。GOP 長(zhǎng)度越小,直播內(nèi)容延時(shí)越小,GOP 長(zhǎng)度越大,直播內(nèi)容延時(shí)越大。GOP 越長(zhǎng),越有利于減少視頻碼率,降低其所需要消耗的存儲(chǔ)和帶寬。
弱網(wǎng)優(yōu)化
- 根據(jù)網(wǎng)絡(luò)狀況動(dòng)態(tài)調(diào)整視頻的幀率、分辨率,使占用的網(wǎng)絡(luò)帶寬更低
- 當(dāng)網(wǎng)絡(luò)狀況不好時(shí),選擇性的丟棄B、P非參考幀(不丟I幀和音頻幀)
- 選擇更高編碼壓縮率的編碼格式(如H.265)