本發(fā)明屬于網(wǎng)絡(luò)視頻質(zhì)量動態(tài)自適應(yīng)選擇領(lǐng)域,具體的指出一種基于模糊控制的MPEG-DASH視頻流自適應(yīng)控制方法。
背景技術(shù):
隨著網(wǎng)絡(luò)的普及,媒體在網(wǎng)絡(luò)傳輸內(nèi)容中所占的比重越來越大,基于HTTP的動態(tài)流媒體傳輸(DASH)逐漸吸引各國研究者們的關(guān)注。2012年ISO正式批準(zhǔn)MPEG組織提交的MPEG-DASH方案為國際統(tǒng)一DASH傳輸標(biāo)準(zhǔn),成為DASH系統(tǒng)走向成熟的重要一步。然而,MPEG-DASH標(biāo)準(zhǔn)協(xié)議中僅對媒體描述文件MPD及媒體文件的格式進(jìn)行了定義,對媒體編碼格式,服務(wù)器端視頻等級分配以及客戶端自適應(yīng)選擇策略等等均未進(jìn)行規(guī)范,為研究者們提供了極大的優(yōu)化空間。近年來,對DASH傳輸?shù)难芯堪ǚ?wù)器端視頻等級分配,客戶端自適應(yīng)選擇策略,音視頻傳輸形式,最終用戶評價知覺質(zhì)量模型等等,其中客戶端自適應(yīng)選擇策略更是其中研究的熱點(diǎn)。
在MPEG-DASH傳輸系統(tǒng)中,同一段視頻內(nèi)容被壓縮成多個碼率,并被分割成多個切片存儲在服務(wù)器,客戶端根據(jù)自身硬件條件以及當(dāng)前網(wǎng)絡(luò)吞吐量選擇合適的視頻質(zhì)量,并向服務(wù)器發(fā)出申請,以期提供網(wǎng)絡(luò)視頻觀看者最好的質(zhì)量體驗(yàn),此即為客戶端自適應(yīng)選擇控制過程。同時客戶端根據(jù)自身?xiàng)l件開辟一段緩存區(qū)域存儲下載完成但沒播放的視頻,用于防止由于網(wǎng)絡(luò)環(huán)境突發(fā)變化帶來的視頻停頓。目前,關(guān)于客戶端進(jìn)行視頻質(zhì)量選擇的客戶端自適應(yīng)算法已有很多研究,其算法主要可分為兩大類:基于吞吐量的自適應(yīng)選擇和基于緩存的自適應(yīng)選擇。基于吞吐量的視頻質(zhì)量選擇方法僅考慮當(dāng)前網(wǎng)絡(luò)環(huán)境,而不考慮客戶端緩存中視頻余量,為保證視頻平穩(wěn)連續(xù)播放,其選擇機(jī)制表現(xiàn)出視頻質(zhì)量波動大,平均申請視頻質(zhì)量不高的缺點(diǎn)?;诰彺娴囊曨l質(zhì)量選擇機(jī)制,可以提供相較前者更高且更加平穩(wěn)的視頻質(zhì)量,然而,難以設(shè)定緩存門限成為其目前發(fā)展的主要瓶頸。
模糊控制系統(tǒng)是以模糊集合論,模糊語言變量和模糊推理為基礎(chǔ)的一種計算機(jī)數(shù)字控制技術(shù),其已成為當(dāng)今控制系統(tǒng)的重要組成部分。模糊控制是模擬人的思維、推理和判斷的一種方法,不同于傳統(tǒng)控制方法,模糊控制以模糊的語言變量代替精確的數(shù)值輸入,以經(jīng)驗(yàn)化的規(guī)則設(shè)計代替精確的數(shù)學(xué)模型。將模糊控制與傳統(tǒng)基于緩存算法相結(jié)合,可以解決緩存門限值難以設(shè)定的問題。同時模糊控制的語言規(guī)則來自于人類有關(guān)領(lǐng)域的知識和經(jīng)驗(yàn),一套精心設(shè)計的語言規(guī)則可以使客戶端自適應(yīng)控制器具有良好的響應(yīng),在復(fù)雜多變的網(wǎng)絡(luò)環(huán)境中,為用戶提供更好的知覺質(zhì)量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所解決的技術(shù)問題是:針對復(fù)雜多變的網(wǎng)絡(luò)環(huán)境,提供一種視頻質(zhì)量自適應(yīng)控制方法,使其滿足:(1)當(dāng)網(wǎng)絡(luò)帶寬急劇下降,選擇視頻質(zhì)量緊跟網(wǎng)絡(luò)變化,以防發(fā)生緩存泄露造成視頻播放停頓或緩存溢出造成網(wǎng)絡(luò)帶寬浪費(fèi);(2)針對當(dāng)前網(wǎng)絡(luò)環(huán)境,為用戶提供盡可能高的視頻質(zhì)量,為用戶提供更好的知覺質(zhì)量體驗(yàn);(3)當(dāng)網(wǎng)絡(luò)環(huán)境持續(xù)小范圍波動,盡量維持選擇視頻質(zhì)量穩(wěn)定,以防止視頻質(zhì)量頻繁波動給用戶帶來疲憊感。本發(fā)明的技術(shù)方案如下:
一種基于模糊控制的視頻質(zhì)量自適應(yīng)控制方法,包括以下步驟:
步驟1:設(shè)計三輸入兩輸出模糊控制器:其中,
(1)三輸入分別為估計吞吐量,客戶端緩存中的視頻余量和緩存變化量,輸出為申請視頻質(zhì)量等級指示參數(shù)和申請視頻延時指示參數(shù);
(2)分別設(shè)定估計吞吐量,緩存視頻余量和緩存變化量的隸屬模糊子集和隸屬函數(shù),根據(jù)各個參數(shù)表現(xiàn)的物理意義,將其模糊子集分別設(shè)定為{偏小,中等,偏大},{偏小,適中,偏大},{劇烈下降,下降,平穩(wěn),上升},其隸屬函數(shù)分別選用三角、梯形和三角隸屬函數(shù);
(3)確定模糊規(guī)則,模糊規(guī)則確立的基本原則為:當(dāng)吞吐量偏大且緩存中視頻余量較多時,將申請視頻質(zhì)量等級指示參數(shù)調(diào)高,以提供用戶盡可能高的視頻質(zhì)量;當(dāng)吞吐量較小且緩存中視頻余量較少時,降低申請視頻質(zhì)量等級指示參數(shù),防止出現(xiàn)視頻播放中斷;
(4)設(shè)定模糊推理機(jī),選用“或”規(guī)則對各個規(guī)則進(jìn)行統(tǒng)一;
(5)選用重心法對輸出模糊結(jié)果進(jìn)行解模糊;
步驟2:客戶端向服務(wù)器申請媒體描述文件,了解服務(wù)器端視頻存儲情況。
步驟:3:進(jìn)入初始緩存階段,由于網(wǎng)絡(luò)環(huán)境未知,先向服務(wù)器端申請最低質(zhì)量視頻,以使初始延時最短,當(dāng)緩存達(dá)到設(shè)定值,進(jìn)入緩存穩(wěn)定階段,啟動基于模糊控制的自適應(yīng)控制。
步驟4:計算估計吞吐量:根據(jù)切片下載速度,計算網(wǎng)絡(luò)吞吐量,并根據(jù)計算得網(wǎng)絡(luò)吞吐量,估計下一切片下載時網(wǎng)絡(luò)吞吐量;
步驟5:計算緩存中視頻余量:根據(jù)申請視頻比特率,網(wǎng)絡(luò)吞吐量及前一切片下載完成時緩存中視頻余量,計算緩存中視頻余量;
步驟6:計算緩存變化量:計算當(dāng)前緩存余量與前一切片下載完成時緩存余量的差值,作為緩存變化量;
步驟7:對輸入進(jìn)行模糊化:根據(jù)以上步驟得到三輸入的精確值,對應(yīng)隸屬函數(shù)圖形得到各個輸入的模糊化結(jié)果,即各個輸入變量相對于其各個模糊子集的隸屬程度;
步驟8:建立輸入與輸出關(guān)系,對輸出進(jìn)行解模糊,得到申請視頻質(zhì)量等級指示參數(shù)和申請視頻延時指示參數(shù)模糊化輸出結(jié)果。
步驟9:根據(jù)得到申請視頻質(zhì)量指示參數(shù)確定下一切片申請視頻切片質(zhì)量等級,根據(jù)申請視頻延時指示參數(shù)確定下一切片視頻申請開始時間。
本發(fā)明采用以上技術(shù)方案,顯示出以下優(yōu)點(diǎn):
(1)同時考慮估計吞吐量,緩存中視頻余量,緩存變化量進(jìn)行視頻質(zhì)量自適應(yīng)選擇,可以提供用戶平均質(zhì)量更高,質(zhì)量波動更平穩(wěn)的視頻體驗(yàn)。
(2)將模糊控制引入傳統(tǒng)基于緩存視頻自適應(yīng)選擇機(jī)制,解決傳統(tǒng)基于緩存算法門限值難以設(shè)定問題。同時,模糊控制規(guī)則由人類經(jīng)驗(yàn)設(shè)定,可以提供更加貼合人類感知的視頻質(zhì)量選擇方案。
附圖說明
圖1為本發(fā)明具體實(shí)施方案的實(shí)現(xiàn)框圖
圖2為本發(fā)明具體實(shí)施方式的實(shí)現(xiàn)流程圖
圖3為估計吞吐量隸屬函數(shù)
圖4為緩存視頻余量隸屬函數(shù)
圖5為緩存變化量隸屬函數(shù)
具體實(shí)施方式
為使本發(fā)明的目的技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施方案,對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。
步驟1:客戶端向服務(wù)其申請媒體文件,得到視頻在服務(wù)器端的存儲信息,主要得到視頻在服務(wù)器端共存有N等級比特率及相應(yīng)比特率大小信息(b1,b2,…,bN),為后續(xù)申請?zhí)峁┮罁?jù)。
步驟2:設(shè)置緩存開始階段結(jié)束條件,進(jìn)入緩存開始階段,客戶端根據(jù)從視頻描述文件中得到的視頻存儲信息,向服務(wù)器申請最低等級質(zhì)量視頻,直到緩存達(dá)到預(yù)設(shè)值,進(jìn)入緩存穩(wěn)定階段,開啟基于模糊控制的視頻自適應(yīng)選擇機(jī)制。
步驟3:計算估計吞吐量。記錄客戶端從申請切片到切片下載完成所需時間,時間長度記為t,申請視頻比特率為b,每段視頻切片播放時長為τ,則下載該切片期間網(wǎng)絡(luò)吞吐量表示為T=b*τ/t,使用該吞吐量作為進(jìn)行下一切片下載是的估計吞吐量。本發(fā)明中,為了能同時得到估計吞吐量與其相鄰兩等級視頻比特率得接近程度,將估計吞吐量相關(guān)輸入進(jìn)一步處理為其中bk為服務(wù)器端存有的小于當(dāng)前估計吞吐量的最高視頻質(zhì)量。
步驟4:計算當(dāng)前客戶端緩存中的視頻余量u。當(dāng)前緩存中視頻余量與前一切片下載完成時緩存中的視頻余量bu,則當(dāng)前緩存與申請視頻質(zhì)量和下載切片需要時間關(guān)系b=bu+τ-t,緩存視頻余量與估計吞吐量結(jié)合作為視頻質(zhì)量選擇的主要依據(jù)
步驟5:計算緩存變化量bc。存變化量表示當(dāng)前緩存視頻余量與上一切片下載完成時緩存視頻余量的差值bc=b-bu,作為系統(tǒng)誤差輸入,幫助系統(tǒng)收斂到最終穩(wěn)定狀態(tài)
步驟6:輸入模糊化。分別設(shè)定估計吞吐量,緩存視頻余量和緩存變化量的隸屬模糊子集和隸屬函數(shù),根據(jù)各個參數(shù)表現(xiàn)的物理意義,將其模糊子集分別設(shè)定為{偏小,中等,偏大},{偏小,適中,偏大},{劇烈下降,下降,平穩(wěn),上升},其隸屬函數(shù)由經(jīng)驗(yàn)設(shè)定,并通過大量實(shí)驗(yàn)進(jìn)行調(diào)節(jié),本發(fā)明最終選用三角和梯形隸屬函數(shù)分別對應(yīng)三個輸入,參見圖3,圖4,圖5,根據(jù)以上步驟得到三輸入的精確值,對應(yīng)隸屬函數(shù)圖形得到各個輸入的模糊化結(jié)果,即各個輸入變量相對于其各個模糊子集的隸屬程度
步驟7:確定模糊規(guī)則。模糊規(guī)則確立的基本原則為,當(dāng)吞吐量偏大且緩存中視頻余量較多時,將申請視頻質(zhì)量等級指示參數(shù)調(diào)高,以提供用戶盡可能高的視頻質(zhì)量。當(dāng)吞吐量較小且緩存中視頻余量較少時,應(yīng)降低申請視頻質(zhì)量等級指示參數(shù),防止出現(xiàn)視頻播放中斷。
步驟8:由于客戶端緩存一般有限,尤其對于移動終端,內(nèi)存十分有限??蛻艚K端設(shè)備會根據(jù)實(shí)際情況設(shè)定緩存上限,為防止不間斷申請造成緩存視頻余量超過緩存上限造成溢出,輸出設(shè)置申請視頻延時指示參數(shù),其主要設(shè)計思想為當(dāng)緩存中視頻余量較多時,則延時向服務(wù)器端申請下一切片的行為,以防止緩存發(fā)生溢出,依照當(dāng)前緩存中視頻余量多少設(shè)定申請延時長短。
步驟9:設(shè)定模糊推理機(jī)。本發(fā)明選用“或”規(guī)則對各個規(guī)則進(jìn)行統(tǒng)一,得到最終模糊化輸出結(jié)果。
步驟10:輸出解模糊。確定解模糊規(guī)則,本發(fā)明選用重心法對輸出模糊結(jié)果進(jìn)行解模糊,得到申請視頻質(zhì)量指示參數(shù)和申請視頻延時指示參數(shù)最終精確輸出。
步驟11:根據(jù)申請視頻質(zhì)量指示參數(shù)決定最終下一切片視頻質(zhì)量等級選擇,根據(jù)視頻延時指示參數(shù)決定下一視頻切片申請發(fā)起時間。
步驟12:等待知道切片下載完成,重復(fù)上步驟3-11,直到切片全部下載完成。