黎潔,馮燃生,楊陽(yáng)朝,孫偉,李奇越
(1.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,合肥230000; 2.中國(guó)電子科技集團(tuán)公司電子科學(xué)研究院,北京100084;3.合肥工業(yè)大學(xué) 電氣與自動(dòng)化工程學(xué)院,合肥230000)
近年來(lái),隨著交互式應(yīng)用需求的興起,虛擬現(xiàn)實(shí)(Virtual Reality,VR)技術(shù)越來(lái)越受到用戶(hù)的廣泛歡迎,全景視頻流媒體傳輸就是其中最重要的應(yīng)用之一。根據(jù)資料顯示[1],全球幾大主要的流媒體服務(wù)運(yùn)營(yíng)商(Facebook、YouTube)已開(kāi)始提供全景視頻流媒體服務(wù)[2]。為了給用戶(hù)提供更好的質(zhì)量體驗(yàn)(Quality of Experience,QoE),大多數(shù)VR視頻的分辨率已經(jīng)達(dá)到了4K(4 096×2 160)甚至更高[3]。然而,由于網(wǎng)絡(luò)帶寬的限制,直接傳輸如此高分辨率的視頻不是一個(gè)可行的方案。因此,對(duì)于研究者來(lái)說(shuō)在帶寬受限的條件下,進(jìn)一步提高用戶(hù)的QoE是一項(xiàng)巨大的挑戰(zhàn)[4]。
當(dāng)用戶(hù)觀看VR視頻時(shí),由于顯示設(shè)備視場(chǎng)(Field of View,F(xiàn)oV)的限制,在任一時(shí)刻用戶(hù)往往只能觀看到整個(gè)視頻的某一部分。如果服務(wù)器傳輸整個(gè)視頻的話,大部分的帶寬資源會(huì)被不可避免地浪費(fèi)掉。因此,基于DASH(Dynamic Adaptive Streaming over HTTP)[5]的自適應(yīng)分塊傳輸方式是進(jìn)行VR視頻流媒體傳輸最為提倡的一種方式。在分塊傳輸方式中,一個(gè)完整的VR視頻被分割成許多視頻塊,每個(gè)視頻塊被編碼成不同的質(zhì)量等級(jí),服務(wù)器根據(jù)網(wǎng)絡(luò)帶寬等因素為每個(gè)視頻塊自適應(yīng)選擇一種最優(yōu)的質(zhì)量等級(jí)并傳輸?shù)娇蛻?hù)端[6-8]。
在自適應(yīng)分塊傳輸方式中,有2個(gè)最重要的方案:視角自適應(yīng)和速率自適應(yīng)。前者是預(yù)測(cè)用戶(hù)視角變化的核心,后者是服務(wù)器進(jìn)行資源分配的核心。在此基礎(chǔ)上,出現(xiàn)了很多相關(guān)的研究[9-12]。Qian等[9]提 出 了 一 種 視 角 自 適 應(yīng) 的360°視頻傳輸系統(tǒng),該系統(tǒng)利用機(jī)器學(xué)習(xí)算法進(jìn)行視角預(yù)測(cè)。Corbillon等[10]研究了基于通用理論模型的最優(yōu)全景視頻流媒體傳輸系統(tǒng),結(jié)果顯示所提出的最優(yōu)系統(tǒng)與一般傳輸系統(tǒng)相比能夠節(jié)省45%的帶寬。文獻(xiàn)[11]設(shè)計(jì)了一種速率自適應(yīng)算法,該算法可以最大化預(yù)定義的360°視頻的QoE值。此外,也有結(jié)合視角自適應(yīng)和速率自適應(yīng)的研究。Xie等[12]提出了基于概率模型的360°視頻傳輸系統(tǒng)360ProbDASH,該系統(tǒng)通過(guò)結(jié)合速率和視角自適應(yīng)解決基于QoE的傳輸優(yōu)化問(wèn)題。
然而,上述VR視頻流媒體傳輸系統(tǒng)存在以下關(guān)鍵性限制:①只考慮了單個(gè)用戶(hù),卻忽略了多用戶(hù)的情況。②僅針對(duì)下行鏈路(視頻服務(wù)器到終端用戶(hù))傳輸,忽略了上行鏈路(VR視頻采集設(shè)備到視頻服務(wù)器)傳輸。事實(shí)上,VR視頻直播是另一種重要的應(yīng)用,在學(xué)術(shù)界和工業(yè)界都受到越來(lái)越多的關(guān)注[13-14]。在VR視頻直播中,采集設(shè)備用于記錄VR視頻,并將視頻實(shí)時(shí)傳輸?shù)椒?wù)器。多用戶(hù)可以使用相關(guān)顯示設(shè)備請(qǐng)求和觀看VR視頻。顯然,在帶寬有限的約束下,應(yīng)仔細(xì)研究上下行鏈路視頻速率自適應(yīng)傳輸算法。此外上行視頻和下行視頻是具有相關(guān)性的,單獨(dú)優(yōu)化設(shè)計(jì)會(huì)降低系統(tǒng)整體性能,這使得在該VR視頻直播應(yīng)用中速率自適應(yīng)算法變得更加困難。因此,本文設(shè)計(jì)了一種面向多用戶(hù)的上下行鏈路聯(lián)合全景視頻流媒體采集和傳輸系統(tǒng)。該系統(tǒng)不僅加入了上行和下行鏈路傳輸,還同時(shí)考慮了多用戶(hù)情況下的速率自適應(yīng)。此外,在所設(shè)計(jì)的系統(tǒng)基礎(chǔ)上,定義了一個(gè)QoE驅(qū)動(dòng)下的多用戶(hù)資源分配問(wèn)題。
圖1為系統(tǒng)應(yīng)用場(chǎng)景。系統(tǒng)上行端VR采集設(shè)備一共有C個(gè)相機(jī),下行端共有N個(gè)用戶(hù)。首先,每個(gè)相機(jī)拍攝出相同碼率的高清視頻,每個(gè)視頻都被編碼成不同的質(zhì)量等級(jí),獲得不同碼率的視頻,由服務(wù)器為C個(gè)視頻各選擇一種質(zhì)量等級(jí)進(jìn)行上行傳輸。然后,服務(wù)器將這C個(gè)視頻縫合成一個(gè)完整的VR視頻,并進(jìn)行分塊和壓縮處理。最后,處理過(guò)的VR視頻會(huì)通過(guò)下行鏈路傳輸?shù)矫總€(gè)用戶(hù)。此外,假設(shè)下行鏈路中還存在從用戶(hù)到服務(wù)器的端到端反饋信道,此反饋信道可以將每個(gè)用戶(hù)的帶寬信息及實(shí)時(shí)的視角信息傳輸?shù)椒?wù)器,更好地幫助服務(wù)器進(jìn)行視頻速率自適應(yīng)選擇。

圖1 系統(tǒng)應(yīng)用場(chǎng)景Fig.1 System application scenario
本文設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)如圖2所示。系統(tǒng)主要由4部分組成:C個(gè)相機(jī)、服務(wù)器、客戶(hù)端和N個(gè)用戶(hù)。
QoE驅(qū)動(dòng)上行模塊和下行模塊一起完成優(yōu)化傳輸?shù)墓ぷ鳎春侠磉M(jìn)行視頻碼率自適應(yīng)選擇去最大化所有用戶(hù)的QoE。具體來(lái)說(shuō),服務(wù)器的工作流程為:首先,上行處理模塊為C個(gè)相機(jī)各選擇一種合適的碼率等級(jí),當(dāng)這些視頻上傳到服務(wù)器后,經(jīng)過(guò)縫合、映射等處理生成了一個(gè)VR視頻。然后,下行處理模塊把完整的全景視頻分成多塊,并且將每塊視頻編碼成不同的質(zhì)量等級(jí)。此時(shí),在反饋信道中特征數(shù)據(jù)(用戶(hù)實(shí)時(shí)FoV信息、下行鏈路帶寬信息)的幫助下,下行處理模塊可以確定被傳輸?shù)膲K并為每塊視頻選擇最合適的質(zhì)量等級(jí)。最后,這些塊都將通過(guò)下行鏈路進(jìn)行傳輸,在傳輸?shù)耐瑫r(shí),下行處理模塊還將為每塊視頻選擇一種合適的調(diào)制與編碼策略(Module and Coding Scheme,MCS)。在客戶(hù)端中,當(dāng)所有視頻塊通過(guò)下行鏈路傳輸?shù)娇蛻?hù)端,它們經(jīng)過(guò)解碼、映射、渲染等處理,最終通過(guò)顯示設(shè)備呈現(xiàn)給每個(gè)用戶(hù)。此外,客戶(hù)端的另一個(gè)功能是把用戶(hù)的實(shí)時(shí)FoV信息和下行鏈路帶寬信息通過(guò)反饋信道傳輸給服務(wù)器。

圖2 系統(tǒng)結(jié)構(gòu)Fig.2 System structure
假設(shè)系統(tǒng)中在上行端有C個(gè)相機(jī)(每個(gè)相機(jī)用c表示),下行端有N個(gè)用戶(hù)(每個(gè)用戶(hù)用n表示)。在各個(gè)方向上均勻安裝的C個(gè)相機(jī)能夠形成一個(gè)VR視頻采集系統(tǒng),對(duì)每個(gè)相機(jī)c來(lái)說(shuō),其能夠拍攝產(chǎn)生D′種不同碼率等級(jí)(每種碼率等級(jí)為d′)的 視 頻,用表 示 碼 率 等 級(jí) 為d′的 相機(jī)c產(chǎn)生視頻的碼率。假設(shè)上行鏈路總帶寬為BWUL。當(dāng)C個(gè)視頻上傳到服務(wù)器,服務(wù)器會(huì)對(duì)其進(jìn)行縫合以生成一個(gè)VR視頻,再將其分成T塊(每塊用t表示),然后每塊被編碼成D種質(zhì)量等級(jí)(d表示每種質(zhì)量等級(jí))。用表示 質(zhì) 量 等級(jí)為d的視頻塊t的碼率。顯然,下行鏈路中每塊視頻的質(zhì)量等級(jí)必定小于上行鏈路中每個(gè)視頻的質(zhì)量等級(jí)。在下行鏈路中,假設(shè)一共有YDL個(gè)資源塊(RB),同時(shí)下行鏈路可以提供M 種MCS方案(每種方案用m表示)。用表示在MCS方案為m時(shí),單個(gè)資源塊所能提供的比特率。

通過(guò)QoE表達(dá)式,本文的QoE驅(qū)動(dòng)上下行鏈路聯(lián)合VR流媒體自適應(yīng)采集和傳輸?shù)膯?wèn)題可以描述為:確定上行鏈路中每個(gè)相機(jī)所拍攝的視頻的碼率等級(jí),為下行鏈路中全景視頻的視頻塊選擇一種質(zhì)量等級(jí)和一種MCS方案,來(lái)最大化整個(gè)系統(tǒng)中的所有用戶(hù)的QoE值。可以用問(wèn)題P1來(lái)表示。


約束條件(3)和約束條件(4)是上行部分的約束。約束條件(3)表示任何一個(gè)相機(jī)c只能選擇一種碼率等級(jí),約束條件(4)表示傳輸?shù)腃個(gè)視頻的總碼率不應(yīng)當(dāng)超出整個(gè)上行鏈路的總帶寬。
約束條件(5)~約束條件(7)是下行部分的約束。約束條件(5)和約束條件(6)分別表示任意視頻塊只能選擇一種MCS方案、一種質(zhì)量等級(jí)。約束條件(7)確保了傳輸?shù)乃幸曨l塊的總碼率不超過(guò)整個(gè)下行鏈路所有資源塊所能提供的比特率。
約束條件(8)是整個(gè)系統(tǒng)上下行鏈路聯(lián)合的約束,表示下行鏈路中任意視頻塊的碼率不大于上行鏈路中任意相機(jī)產(chǎn)生的視頻的碼率。
顯然,問(wèn)題P1是一個(gè)非線性整數(shù)規(guī)劃(NIP)問(wèn)題。通過(guò)分析該問(wèn)題的性質(zhì),若將問(wèn)題P1的求解變量松弛為連續(xù)變量后,其目標(biāo)函數(shù)和約束條件均為便于求解的凸函數(shù)。因此,先將問(wèn)題P1進(jìn)行連續(xù)松弛,將非線性整數(shù)規(guī)劃問(wèn)題變成非線性規(guī)劃問(wèn)題,用KKT條件[15]求出該非線性規(guī)劃問(wèn)題的解;再采用分支定界法求解出原問(wèn)題P1的0-1變量解。
該問(wèn)題的拉格朗日函數(shù)為

式中:

因此,可以得到相關(guān)的KKT條件為

通過(guò)聯(lián)合KKT條件相關(guān)的公式(式(16)~式(21))進(jìn)行求解,可以得出經(jīng)過(guò)松弛的非線性問(wèn)題的最優(yōu)解,記為χrelax,接下來(lái)使用分支定界法求出原始問(wèn)題的0-1變量解。
起始輸入為χrelax和Zrelax,Zrelax表示χrelax對(duì)應(yīng)的最優(yōu)目標(biāo)函數(shù)值。輸出結(jié)果為所求的0-1變量解χ0-1和相應(yīng)的最優(yōu)目標(biāo)函數(shù)值Z0-1。
算法1 上下行鏈路VR視頻速率自適應(yīng)選擇算法。
輸入:用KKT條件求解出的對(duì)應(yīng)松弛問(wèn)題的解χrelax和松弛問(wèn)題的最優(yōu)目標(biāo)函數(shù)值Zrelax。
輸出:?jiǎn)栴}P1的符合0-1約束條件的最優(yōu)解χ0-1和問(wèn)題P1的最優(yōu)0-1解對(duì)應(yīng)的最優(yōu)目標(biāo)函數(shù)值Z0-1。
初始化:k=0,L=0,U=Zrelax。
1.從χrelax中任意選則一個(gè)不符合0-1約束條件的解χj,在(0,1)范圍內(nèi)隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù)ε。
2.IF 0≤χj<ε,THEN將約束條件χj=0加入到問(wèn)題P1中,形成子問(wèn)題Ⅰ。
3.ELSE,將約束條件χj=1加入到問(wèn)題P1中,形成子問(wèn)題Ⅱ。
4.END IF
5.繼續(xù)求出子問(wèn)題Ⅰ和子問(wèn)題Ⅱ的松弛問(wèn)題解,記為χk,并將對(duì)應(yīng)最優(yōu)目標(biāo)函數(shù)值記為Zk。
6.U=max{Zk},χk∈[0,1]。
7.L=max{Zk},χk∈{0,1}。
8.IF Zk<L,THEN剪掉這個(gè)分支。
9.ELSE IF Zk>L,THEN回到分支步驟并重復(fù)。
10.ELSE Zk=L,THEN問(wèn)題P1的最優(yōu)解已經(jīng)找到,Z0-1=Zk,χ0-1=χk。
11.END IF
為了驗(yàn)證本文算法的有效性,選擇了6個(gè)用Insta 360 Pro2全景相機(jī)所拍攝的視頻作為上行鏈路的原始視頻,每個(gè)視頻的分辨率都為960×720,長(zhǎng)度為35 s,幀率為30 fps(fps為幀/s)。圖3為所采用的6個(gè)原始視頻的縮略圖。采用HEVC(High Efficiency Video Coding)編碼器對(duì)每個(gè)原始視頻進(jìn)行壓縮,分別以17,20,23,26這4種量化參數(shù)(Quantization Parameter,QP)壓縮,為每個(gè)視頻設(shè)置4種碼率等級(jí):{1.5,2,2.5,3}Mbit/s。使用VR視頻合成軟件AVP(Kolor Autopano Video Pro)完成全景視頻的合成工作。把VR視頻分成4×4=16塊,每塊覆蓋視角為90°×45°。為每塊下行視頻設(shè)置6種不同碼率等級(jí)以供選擇:{0.2,0.4,0.6,0.8,1,1.2}Mbit/s。圖4為使用6個(gè)原始視頻所合成的VR視頻縮略圖。實(shí)驗(yàn)中,用戶(hù)端使用VR頭戴式顯示設(shè)備HTC Vive,使用戶(hù)進(jìn)行觀看以此來(lái)獲得不同用戶(hù)的FoV。具體選擇了100個(gè)用戶(hù)和48個(gè)的VR視頻[16],用戶(hù)觀看不同的VR視頻,通過(guò)所獲得的100個(gè)用戶(hù)FoV數(shù)據(jù),經(jīng)過(guò)計(jì)算分析得出有60%的用戶(hù)FoV大約為120°×90°,這說(shuō)明大多數(shù)用戶(hù)在觀看實(shí)驗(yàn)所用全景視頻時(shí),視角都會(huì)在這個(gè)范圍內(nèi)。因此,將FoV設(shè)置為120°×90°。在下行傳輸過(guò)程中,為每塊視頻提供4種MCS方案。具體見(jiàn)表1。在仿真實(shí)驗(yàn)中,使用所設(shè)計(jì)的算法平均求解一次最優(yōu)解需要1 min。

圖3 6個(gè)原始視頻的縮略圖Fig.3 Thumbnail of six original videos

圖4 采用分塊后的全景視頻Fig.4 Tiled panoramic video

表1 MCS方案Table 1 MCS scheme
為了證明本文算法的性能,采用3種算法來(lái)對(duì)比。第1種算法是在上行部分中采用平均分配資源,即把上行鏈路中的網(wǎng)絡(luò)帶寬資源平均分配到不同的相機(jī)中。第2種算法是下行速率自適應(yīng)算法,該算法與傳統(tǒng)的VR視頻傳輸算法相同,都是基于DASH的自適應(yīng)分塊傳輸算法,只考慮從服務(wù)器到用戶(hù)的下行部分自適應(yīng)傳輸。第3種是下行視角自適應(yīng)算法,該算法通過(guò)結(jié)合用戶(hù)視角預(yù)測(cè)和網(wǎng)絡(luò)帶寬預(yù)測(cè),來(lái)實(shí)時(shí)地進(jìn)行從服務(wù)器到用戶(hù)的下行部分自適應(yīng)傳輸。
分析不同上行鏈路帶寬條件下所有用戶(hù)的QoE值,性能如圖5所示。能夠清楚地發(fā)現(xiàn),當(dāng)上行鏈路帶寬相同時(shí),本文算法能夠達(dá)到更高的QoE值,說(shuō)明在上行部分有著更好的性能。此外,下行速率自適應(yīng)算法在不同上行帶寬條件下,在4種算法之中性能較差。
對(duì)比下行鏈路中不同資源塊數(shù)量對(duì)系統(tǒng)整體QoE的影響,如圖6所示。可以發(fā)現(xiàn),在4種算法中,本文算法在不同下行鏈路資源塊數(shù)量條件下仍有較高的QoE值,性能要遠(yuǎn)高于下行速率自適應(yīng)算法和上行平均分配資源算法,略高于下行視角自適應(yīng)算法。同時(shí)可以發(fā)現(xiàn),下行視角自適應(yīng)算法的性能要優(yōu)于下行速率自適應(yīng)算法,這也體現(xiàn)出了視角預(yù)測(cè)與網(wǎng)絡(luò)帶寬預(yù)測(cè)在VR視頻自適應(yīng)傳輸中的重要性。下行視角自適應(yīng)算法的性能仍要略低于本文算法,這也說(shuō)明了上下行傳輸一體化的優(yōu)良性。
表2給出了4種算法在相同上下行鏈路帶寬、用戶(hù)數(shù)目時(shí)的系統(tǒng)QoE值和比較情況。可以發(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 用戶(hù)數(shù)目與系統(tǒng)QoE值的關(guān)系Fig.7 Relationship between user number and system QoE value
圖7為用戶(hù)數(shù)目與系統(tǒng)QoE值的關(guān)系。可以發(fā)現(xiàn),系統(tǒng)QoE值隨總用戶(hù)數(shù)的增加而一直增加,但是增加的速度會(huì)逐漸下降,甚至?xí)档汀_@是因?yàn)楫?dāng)用戶(hù)數(shù)目增加到一定程度時(shí),系統(tǒng)為了確保每個(gè)用戶(hù)都能正常地觀看視頻,犧牲了每個(gè)用戶(hù)所得到的碼率等級(jí),即下降了每塊視頻的碼率等級(jí)。
本文提出了一種基于QoE的多用戶(hù)自適應(yīng)傳輸系統(tǒng),通過(guò)對(duì)仿真結(jié)果的分析可以得出如下結(jié)論:
1)提出的VR視頻傳輸系統(tǒng)與傳統(tǒng)的360°全景視頻傳輸系統(tǒng)相比,不僅考慮了下行傳輸也考慮了上行傳輸部分。
2)提出的基于聯(lián)合KKT條件和分支定界法的速率自適應(yīng)選擇算法可以解決所提出的傳輸系統(tǒng)中的資源分配問(wèn)題。
3)提出的速率自適應(yīng)選擇算法與上行鏈路平均分配資源算法相比系統(tǒng)QoE 值提高了14.27%,與傳統(tǒng)的VR視頻速率自適應(yīng)算法相比系統(tǒng)QoE值提高了23.47%。