黎潔,馮燃生,楊陽朝,孫偉,李奇越
(1.合肥工業(yè)大學 計算機與信息學院,合肥230000; 2.中國電子科技集團公司電子科學研究院,北京100084;3.合肥工業(yè)大學 電氣與自動化工程學院,合肥230000)
近年來,隨著交互式應(yīng)用需求的興起,虛擬現(xiàn)實(Virtual Reality,VR)技術(shù)越來越受到用戶的廣泛歡迎,全景視頻流媒體傳輸就是其中最重要的應(yīng)用之一。根據(jù)資料顯示[1],全球幾大主要的流媒體服務(wù)運營商(Facebook、YouTube)已開始提供全景視頻流媒體服務(wù)[2]。為了給用戶提供更好的質(zhì)量體驗(Quality of Experience,QoE),大多數(shù)VR視頻的分辨率已經(jīng)達到了4K(4 096×2 160)甚至更高[3]。然而,由于網(wǎng)絡(luò)帶寬的限制,直接傳輸如此高分辨率的視頻不是一個可行的方案。因此,對于研究者來說在帶寬受限的條件下,進一步提高用戶的QoE是一項巨大的挑戰(zhàn)[4]。
當用戶觀看VR視頻時,由于顯示設(shè)備視場(Field of View,F(xiàn)oV)的限制,在任一時刻用戶往往只能觀看到整個視頻的某一部分。如果服務(wù)器傳輸整個視頻的話,大部分的帶寬資源會被不可避免地浪費掉。因此,基于DASH(Dynamic Adaptive Streaming over HTTP)[5]的自適應(yīng)分塊傳輸方式是進行VR視頻流媒體傳輸最為提倡的一種方式。在分塊傳輸方式中,一個完整的VR視頻被分割成許多視頻塊,每個視頻塊被編碼成不同的質(zhì)量等級,服務(wù)器根據(jù)網(wǎng)絡(luò)帶寬等因素為每個視頻塊自適應(yīng)選擇一種最優(yōu)的質(zhì)量等級并傳輸?shù)娇蛻舳耍?-8]。
在自適應(yīng)分塊傳輸方式中,有2個最重要的方案:視角自適應(yīng)和速率自適應(yīng)。前者是預測用戶視角變化的核心,后者是服務(wù)器進行資源分配的核心。在此基礎(chǔ)上,出現(xiàn)了很多相關(guān)的研究[9-12]。Qian等[9]提 出 了 一 種 視 角 自 適 應(yīng) 的360°視頻傳輸系統(tǒng),該系統(tǒng)利用機器學習算法進行視角預測。Corbillon等[10]研究了基于通用理論模型的最優(yōu)全景視頻流媒體傳輸系統(tǒng),結(jié)果顯示所提出的最優(yōu)系統(tǒng)與一般傳輸系統(tǒng)相比能夠節(jié)省45%的帶寬。文獻[11]設(shè)計了一種速率自適應(yīng)算法,該算法可以最大化預定義的360°視頻的QoE值。此外,也有結(jié)合視角自適應(yīng)和速率自適應(yīng)的研究。Xie等[12]提出了基于概率模型的360°視頻傳輸系統(tǒng)360ProbDASH,該系統(tǒng)通過結(jié)合速率和視角自適應(yīng)解決基于QoE的傳輸優(yōu)化問題。
然而,上述VR視頻流媒體傳輸系統(tǒng)存在以下關(guān)鍵性限制:①只考慮了單個用戶,卻忽略了多用戶的情況。②僅針對下行鏈路(視頻服務(wù)器到終端用戶)傳輸,忽略了上行鏈路(VR視頻采集設(shè)備到視頻服務(wù)器)傳輸。事實上,VR視頻直播是另一種重要的應(yīng)用,在學術(shù)界和工業(yè)界都受到越來越多的關(guān)注[13-14]。在VR視頻直播中,采集設(shè)備用于記錄VR視頻,并將視頻實時傳輸?shù)椒?wù)器。多用戶可以使用相關(guān)顯示設(shè)備請求和觀看VR視頻。顯然,在帶寬有限的約束下,應(yīng)仔細研究上下行鏈路視頻速率自適應(yīng)傳輸算法。此外上行視頻和下行視頻是具有相關(guān)性的,單獨優(yōu)化設(shè)計會降低系統(tǒng)整體性能,這使得在該VR視頻直播應(yīng)用中速率自適應(yīng)算法變得更加困難。因此,本文設(shè)計了一種面向多用戶的上下行鏈路聯(lián)合全景視頻流媒體采集和傳輸系統(tǒng)。該系統(tǒng)不僅加入了上行和下行鏈路傳輸,還同時考慮了多用戶情況下的速率自適應(yīng)。此外,在所設(shè)計的系統(tǒng)基礎(chǔ)上,定義了一個QoE驅(qū)動下的多用戶資源分配問題。
圖1為系統(tǒng)應(yīng)用場景。系統(tǒng)上行端VR采集設(shè)備一共有C個相機,下行端共有N個用戶。首先,每個相機拍攝出相同碼率的高清視頻,每個視頻都被編碼成不同的質(zhì)量等級,獲得不同碼率的視頻,由服務(wù)器為C個視頻各選擇一種質(zhì)量等級進行上行傳輸。然后,服務(wù)器將這C個視頻縫合成一個完整的VR視頻,并進行分塊和壓縮處理。最后,處理過的VR視頻會通過下行鏈路傳輸?shù)矫總€用戶。此外,假設(shè)下行鏈路中還存在從用戶到服務(wù)器的端到端反饋信道,此反饋信道可以將每個用戶的帶寬信息及實時的視角信息傳輸?shù)椒?wù)器,更好地幫助服務(wù)器進行視頻速率自適應(yīng)選擇。
圖1 系統(tǒng)應(yīng)用場景Fig.1 System application scenario
本文設(shè)計系統(tǒng)的結(jié)構(gòu)如圖2所示。系統(tǒng)主要由4部分組成:C個相機、服務(wù)器、客戶端和N個用戶。
QoE驅(qū)動上行模塊和下行模塊一起完成優(yōu)化傳輸?shù)墓ぷ?,即合理進行視頻碼率自適應(yīng)選擇去最大化所有用戶的QoE。具體來說,服務(wù)器的工作流程為:首先,上行處理模塊為C個相機各選擇一種合適的碼率等級,當這些視頻上傳到服務(wù)器后,經(jīng)過縫合、映射等處理生成了一個VR視頻。然后,下行處理模塊把完整的全景視頻分成多塊,并且將每塊視頻編碼成不同的質(zhì)量等級。此時,在反饋信道中特征數(shù)據(jù)(用戶實時FoV信息、下行鏈路帶寬信息)的幫助下,下行處理模塊可以確定被傳輸?shù)膲K并為每塊視頻選擇最合適的質(zhì)量等級。最后,這些塊都將通過下行鏈路進行傳輸,在傳輸?shù)耐瑫r,下行處理模塊還將為每塊視頻選擇一種合適的調(diào)制與編碼策略(Module and Coding Scheme,MCS)。在客戶端中,當所有視頻塊通過下行鏈路傳輸?shù)娇蛻舳耍鼈兘?jīng)過解碼、映射、渲染等處理,最終通過顯示設(shè)備呈現(xiàn)給每個用戶。此外,客戶端的另一個功能是把用戶的實時FoV信息和下行鏈路帶寬信息通過反饋信道傳輸給服務(wù)器。
圖2 系統(tǒng)結(jié)構(gòu)Fig.2 System structure
假設(shè)系統(tǒng)中在上行端有C個相機(每個相機用c表示),下行端有N個用戶(每個用戶用n表示)。在各個方向上均勻安裝的C個相機能夠形成一個VR視頻采集系統(tǒng),對每個相機c來說,其能夠拍攝產(chǎn)生D′種不同碼率等級(每種碼率等級為d′)的 視 頻,用表 示 碼 率 等 級 為d′的 相機c產(chǎn)生視頻的碼率。假設(shè)上行鏈路總帶寬為BWUL。當C個視頻上傳到服務(wù)器,服務(wù)器會對其進行縫合以生成一個VR視頻,再將其分成T塊(每塊用t表示),然后每塊被編碼成D種質(zhì)量等級(d表示每種質(zhì)量等級)。用表示 質(zhì) 量 等級為d的視頻塊t的碼率。顯然,下行鏈路中每塊視頻的質(zhì)量等級必定小于上行鏈路中每個視頻的質(zhì)量等級。在下行鏈路中,假設(shè)一共有YDL個資源塊(RB),同時下行鏈路可以提供M 種MCS方案(每種方案用m表示)。用表示在MCS方案為m時,單個資源塊所能提供的比特率。
通過QoE表達式,本文的QoE驅(qū)動上下行鏈路聯(lián)合VR流媒體自適應(yīng)采集和傳輸?shù)膯栴}可以描述為:確定上行鏈路中每個相機所拍攝的視頻的碼率等級,為下行鏈路中全景視頻的視頻塊選擇一種質(zhì)量等級和一種MCS方案,來最大化整個系統(tǒng)中的所有用戶的QoE值。可以用問題P1來表示。
約束條件(3)和約束條件(4)是上行部分的約束。約束條件(3)表示任何一個相機c只能選擇一種碼率等級,約束條件(4)表示傳輸?shù)腃個視頻的總碼率不應(yīng)當超出整個上行鏈路的總帶寬。
約束條件(5)~約束條件(7)是下行部分的約束。約束條件(5)和約束條件(6)分別表示任意視頻塊只能選擇一種MCS方案、一種質(zhì)量等級。約束條件(7)確保了傳輸?shù)乃幸曨l塊的總碼率不超過整個下行鏈路所有資源塊所能提供的比特率。
約束條件(8)是整個系統(tǒng)上下行鏈路聯(lián)合的約束,表示下行鏈路中任意視頻塊的碼率不大于上行鏈路中任意相機產(chǎn)生的視頻的碼率。
顯然,問題P1是一個非線性整數(shù)規(guī)劃(NIP)問題。通過分析該問題的性質(zhì),若將問題P1的求解變量松弛為連續(xù)變量后,其目標函數(shù)和約束條件均為便于求解的凸函數(shù)。因此,先將問題P1進行連續(xù)松弛,將非線性整數(shù)規(guī)劃問題變成非線性規(guī)劃問題,用KKT條件[15]求出該非線性規(guī)劃問題的解;再采用分支定界法求解出原問題P1的0-1變量解。
該問題的拉格朗日函數(shù)為
式中:
因此,可以得到相關(guān)的KKT條件為
通過聯(lián)合KKT條件相關(guān)的公式(式(16)~式(21))進行求解,可以得出經(jīng)過松弛的非線性問題的最優(yōu)解,記為χrelax,接下來使用分支定界法求出原始問題的0-1變量解。
起始輸入為χrelax和Zrelax,Zrelax表示χrelax對應(yīng)的最優(yōu)目標函數(shù)值。輸出結(jié)果為所求的0-1變量解χ0-1和相應(yīng)的最優(yōu)目標函數(shù)值Z0-1。
算法1 上下行鏈路VR視頻速率自適應(yīng)選擇算法。
輸入:用KKT條件求解出的對應(yīng)松弛問題的解χrelax和松弛問題的最優(yōu)目標函數(shù)值Zrelax。
輸出:問題P1的符合0-1約束條件的最優(yōu)解χ0-1和問題P1的最優(yōu)0-1解對應(yīng)的最優(yōu)目標函數(shù)值Z0-1。
初始化:k=0,L=0,U=Zrelax。
1.從χrelax中任意選則一個不符合0-1約束條件的解χj,在(0,1)范圍內(nèi)隨機產(chǎn)生一個隨機數(shù)ε。
2.IF 0≤χj<ε,THEN將約束條件χj=0加入到問題P1中,形成子問題Ⅰ。
3.ELSE,將約束條件χj=1加入到問題P1中,形成子問題Ⅱ。
4.END IF
5.繼續(xù)求出子問題Ⅰ和子問題Ⅱ的松弛問題解,記為χk,并將對應(yīng)最優(yōu)目標函數(shù)值記為Zk。
6.U=max{Zk},χk∈[0,1]。
7.L=max{Zk},χk∈{0,1}。
8.IF Zk<L,THEN剪掉這個分支。
9.ELSE IF Zk>L,THEN回到分支步驟并重復。
10.ELSE Zk=L,THEN問題P1的最優(yōu)解已經(jīng)找到,Z0-1=Zk,χ0-1=χk。
11.END IF
為了驗證本文算法的有效性,選擇了6個用Insta 360 Pro2全景相機所拍攝的視頻作為上行鏈路的原始視頻,每個視頻的分辨率都為960×720,長度為35 s,幀率為30 fps(fps為幀/s)。圖3為所采用的6個原始視頻的縮略圖。采用HEVC(High Efficiency Video Coding)編碼器對每個原始視頻進行壓縮,分別以17,20,23,26這4種量化參數(shù)(Quantization Parameter,QP)壓縮,為每個視頻設(shè)置4種碼率等級:{1.5,2,2.5,3}Mbit/s。使用VR視頻合成軟件AVP(Kolor Autopano Video Pro)完成全景視頻的合成工作。把VR視頻分成4×4=16塊,每塊覆蓋視角為90°×45°。為每塊下行視頻設(shè)置6種不同碼率等級以供選擇:{0.2,0.4,0.6,0.8,1,1.2}Mbit/s。圖4為使用6個原始視頻所合成的VR視頻縮略圖。實驗中,用戶端使用VR頭戴式顯示設(shè)備HTC Vive,使用戶進行觀看以此來獲得不同用戶的FoV。具體選擇了100個用戶和48個的VR視頻[16],用戶觀看不同的VR視頻,通過所獲得的100個用戶FoV數(shù)據(jù),經(jīng)過計算分析得出有60%的用戶FoV大約為120°×90°,這說明大多數(shù)用戶在觀看實驗所用全景視頻時,視角都會在這個范圍內(nèi)。因此,將FoV設(shè)置為120°×90°。在下行傳輸過程中,為每塊視頻提供4種MCS方案。具體見表1。在仿真實驗中,使用所設(shè)計的算法平均求解一次最優(yōu)解需要1 min。
圖3 6個原始視頻的縮略圖Fig.3 Thumbnail of six original videos
圖4 采用分塊后的全景視頻Fig.4 Tiled panoramic video
表1 MCS方案Table 1 MCS scheme
為了證明本文算法的性能,采用3種算法來對比。第1種算法是在上行部分中采用平均分配資源,即把上行鏈路中的網(wǎng)絡(luò)帶寬資源平均分配到不同的相機中。第2種算法是下行速率自適應(yīng)算法,該算法與傳統(tǒng)的VR視頻傳輸算法相同,都是基于DASH的自適應(yīng)分塊傳輸算法,只考慮從服務(wù)器到用戶的下行部分自適應(yīng)傳輸。第3種是下行視角自適應(yīng)算法,該算法通過結(jié)合用戶視角預測和網(wǎng)絡(luò)帶寬預測,來實時地進行從服務(wù)器到用戶的下行部分自適應(yīng)傳輸。
分析不同上行鏈路帶寬條件下所有用戶的QoE值,性能如圖5所示。能夠清楚地發(fā)現(xiàn),當上行鏈路帶寬相同時,本文算法能夠達到更高的QoE值,說明在上行部分有著更好的性能。此外,下行速率自適應(yīng)算法在不同上行帶寬條件下,在4種算法之中性能較差。
對比下行鏈路中不同資源塊數(shù)量對系統(tǒng)整體QoE的影響,如圖6所示??梢园l(fā)現(xiàn),在4種算法中,本文算法在不同下行鏈路資源塊數(shù)量條件下仍有較高的QoE值,性能要遠高于下行速率自適應(yīng)算法和上行平均分配資源算法,略高于下行視角自適應(yīng)算法。同時可以發(fā)現(xiàn),下行視角自適應(yīng)算法的性能要優(yōu)于下行速率自適應(yīng)算法,這也體現(xiàn)出了視角預測與網(wǎng)絡(luò)帶寬預測在VR視頻自適應(yīng)傳輸中的重要性。下行視角自適應(yīng)算法的性能仍要略低于本文算法,這也說明了上下行傳輸一體化的優(yōu)良性。
表2給出了4種算法在相同上下行鏈路帶寬、用戶數(shù)目時的系統(tǒng)QoE值和比較情況??梢园l(fā)現(xiàn),本文算法的QoE值比上行平均分配資源算法提高了14.27%,比下行視角自適應(yīng)算法提高了11.58%,比下行速率自適應(yīng)算法提高了23.47%。
圖5 上行鏈路與系統(tǒng)QoE值的關(guān)系Fig.5 Relationship between uplink and system QoE value
圖6 下行鏈路與系統(tǒng)QoE值的關(guān)系Fig.6 Relationship between downlink and system QoE value
表2 不同算法QoE值比較Table 2 QoE value comparison among different algorithms
圖7 用戶數(shù)目與系統(tǒng)QoE值的關(guān)系Fig.7 Relationship between user number and system QoE value
圖7為用戶數(shù)目與系統(tǒng)QoE值的關(guān)系??梢园l(fā)現(xiàn),系統(tǒng)QoE值隨總用戶數(shù)的增加而一直增加,但是增加的速度會逐漸下降,甚至會降低。這是因為當用戶數(shù)目增加到一定程度時,系統(tǒng)為了確保每個用戶都能正常地觀看視頻,犧牲了每個用戶所得到的碼率等級,即下降了每塊視頻的碼率等級。
本文提出了一種基于QoE的多用戶自適應(yīng)傳輸系統(tǒng),通過對仿真結(jié)果的分析可以得出如下結(jié)論:
1)提出的VR視頻傳輸系統(tǒng)與傳統(tǒng)的360°全景視頻傳輸系統(tǒng)相比,不僅考慮了下行傳輸也考慮了上行傳輸部分。
2)提出的基于聯(lián)合KKT條件和分支定界法的速率自適應(yīng)選擇算法可以解決所提出的傳輸系統(tǒng)中的資源分配問題。
3)提出的速率自適應(yīng)選擇算法與上行鏈路平均分配資源算法相比系統(tǒng)QoE 值提高了14.27%,與傳統(tǒng)的VR視頻速率自適應(yīng)算法相比系統(tǒng)QoE值提高了23.47%。