(烽火通信科技股份有限公司,武漢 430074)
近年來,教育行業(yè)正持續(xù)進(jìn)行數(shù)字化轉(zhuǎn)型,視頻媒體技術(shù)作為數(shù)字化轉(zhuǎn)型的重要部分在教育領(lǐng)域得到廣泛的應(yīng)用,諸如遠(yuǎn)程教育和泛在教育等新的教育形式都依賴于視頻媒體技術(shù)的發(fā)展。隨著教育形式的多樣化,教師和學(xué)生對視頻的呈現(xiàn)形式提出了越來越高的要求,相較于傳統(tǒng)視頻的單視角二維表現(xiàn),視頻教學(xué)更加需要有三維的表現(xiàn)方式。
多視點視頻[1]是一種滿足人們?nèi)S觀看視頻需求的方法,其在錄制視頻時,由多個布置在不同視點的相機從不同視角對同一場景進(jìn)行拍攝,從而得到一組視頻信號。用戶在觀看時,可以自由切換多視點視頻中的視點來看到不同視角的內(nèi)容,從而得到“環(huán)視”和“運動視差”的效果。
本文將從多視點視頻在教育場景下應(yīng)用的需求和挑戰(zhàn)出發(fā),提出結(jié)合內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,CDN)的解決方案,并對其中的關(guān)鍵技術(shù)進(jìn)行探討。
多視點視頻技術(shù)適用于實操型的遠(yuǎn)程教學(xué)場景,如:各種類型的實驗、手工制作和體育教學(xué)等。為達(dá)到更好的教學(xué)效果,學(xué)生需能夠?qū)σ曨l呈現(xiàn)的視角進(jìn)行變換和控制,同時還需能從不同角度觀看教學(xué)過程。
遠(yuǎn)程觀看的多視點教學(xué)視頻需要支持多路視頻并發(fā)傳輸?shù)膶崟r直播、時移回看和在線點播等功能,并支持播放過程中學(xué)生通過不同的交互方式(如遙控器方向鍵/觸摸板、鼠標(biāo)拖動和手機/平板電腦點觸等)對視點進(jìn)行自由切換。
多視點視頻的教學(xué)應(yīng)用主要面臨以下3個方面的挑戰(zhàn):
(1) 帶寬的挑戰(zhàn):多視點視頻使用的相機越多,相機陣列覆蓋的范圍就越大,用戶體驗也越好,而帶寬需求隨視點個數(shù)的增加線性增加。以4K視頻為例,單路相機錄制的視頻采用高效視頻編碼(High Efficiency Video Coding,HEVC)壓縮后所需帶寬約為30 Mbit/s,20路相機同時傳輸需600 Mbit/s帶寬,更高的帶寬將給用戶帶來更佳的服務(wù)體驗,但高帶寬也帶來傳輸瓶頸的問題。
(2) 時延和丟包的挑戰(zhàn):用戶在進(jìn)行視點切換時,通過終端發(fā)出視點切換命令,終端需要與服務(wù)器進(jìn)行信令交互,并由服務(wù)器切換視點碼流。切換命令發(fā)出到切換后新視點碼流顯示的時延若超過500 ms將帶來明顯的卡頓,降低用戶的使用體驗。
(3) 平滑視點切換的挑戰(zhàn):由于相機個數(shù)限制以及排列間距影響,視點切換播放時會使用戶有不連續(xù)的感覺。為保證切換的平滑性,需要依據(jù)兩視點的視頻碼流計算出其間的虛擬視點視頻。但此種計算會消耗大量計算資源。
CDN是媒體內(nèi)容分發(fā)和傳輸?shù)墓ぞ撸瑢⑵渑c多視點視頻結(jié)合,可最大限度降低內(nèi)容傳輸對帶寬的需求,降低用戶交互響應(yīng)時延,提高用戶的體驗。同時,利用CDN的邊緣計算能力,可實現(xiàn)平滑視點切換的計算,減少終端的計算壓力。
圖1所示為一種教育場景下多視點視頻端到端應(yīng)用解決方案,該方案包括:視頻采集、編碼、傳輸和解碼/播放等。
圖1 多視點視頻端到端應(yīng)用
教學(xué)場景下多視點視頻的采集需要多個相機組成相機陣列,面對教師從多個角度進(jìn)行拍攝。相機陣列的配置主要有一維平行、環(huán)形匯聚、十字交叉、面陣和球型等方式,目前使用較多的是一維平行和環(huán)形匯聚陣列,如圖2所示。
圖2 多視點相機一維平行和匯聚陣列
采集模塊設(shè)置要點:
(1) 相機的個數(shù)越多,覆蓋角度越大。但受限于傳輸帶寬,相機個數(shù)的選擇應(yīng)結(jié)合分辨率要求、壓縮能力以及帶寬消耗綜合考慮。
(2) 相機的參數(shù)應(yīng)該一致,如分辨率、水平/垂直角度和鏡頭焦距/光圈/畸變等。
(3) 相機的間距一般要小于人的雙眼瞳孔中心間距。間距越小,顯示的深度范圍越大。
(4) 所有相機采集同步是保證顯示效果及虛擬視點合成的基礎(chǔ)。
多視點相機陣列采集的原始視頻占用帶寬巨大。以4K畫質(zhì)、20路相機為例,原始視頻需求帶寬高達(dá)120 Gbit/s,不適合直接傳輸,在采集的同時需要在本地進(jìn)行壓縮編碼以降低帶寬的占用。
原始視頻的壓縮編碼可選分路與合路兩種方式:
(1) 視點分路編碼
對相機陣列生成的每一路原始視頻各自獨立進(jìn)行壓縮編碼,多路并行發(fā)送[2],當(dāng)前主流的編碼標(biāo)準(zhǔn)包括HEVC和音視頻編碼標(biāo)準(zhǔn)(Audio Video coding Standard,AVS)2等。
分路編碼的優(yōu)點是只需在采集視頻的本地進(jìn)行一次編碼,終端接收單路視頻可直接解碼播放;缺點在于未消除多視點間存在的冗余信息,存在部分帶寬浪費。
需要注意的是,如果后端存在虛擬視點計算的需求,則要求多路編碼在時間上同步。編碼時應(yīng)配置參數(shù)保證多路視頻流在相同時間點生成I幀。
(2) 視點合路編碼
針對同一對象進(jìn)行多視點拍攝采集的視頻,多個視點間圖像存在相關(guān)性,編碼時可利用其他視點已解碼圖片作為參考圖像進(jìn)行包括幀間預(yù)測以及位移估值在內(nèi)的視點間預(yù)測,從而降低編碼后文件的大小。通過利用視點間的相關(guān)性,可以將所有原始視頻經(jīng)多視點合路壓縮編碼到一個文件中。
現(xiàn)有主流的多視點合路編碼標(biāo)準(zhǔn)包括3D視頻編碼擴展開發(fā)聯(lián)合合作團(tuán)隊(Joint Collaborative Team on 3D Video Coding Extension Development,JCT-3V)工作組開發(fā)的3D-HEVC標(biāo)準(zhǔn)[3]與國內(nèi)AVS工作組開發(fā)的3D-AVS2標(biāo)準(zhǔn)[4],二者均利用視差技術(shù)和紋理圖/深度圖相關(guān)性[5]實現(xiàn)多視點視頻的壓縮合路。
合路壓縮編碼的優(yōu)點在于能夠提高多視點編碼的壓縮率,缺點是消耗算力巨大。經(jīng)測試,普通中央處理器編碼一幀圖像以分鐘計[6],且在解碼端需要占用同樣的計算資源對合路視頻進(jìn)行解碼分離。
編碼后的視頻需要使用流媒體形式封裝傳輸,主流的傳輸協(xié)議包括實時流傳輸協(xié)議(Real Time Streaming Protocol,RTSP)、實時消息傳輸協(xié)議(Real Time Messaging Protocol,RTMP)、超文本傳輸協(xié)議(Hyper Text Transfer Protocol, HTTP)、實時流(HTTP Live Streaming,HLS)和基于HTTP的動態(tài)自適應(yīng)流(Dynamic Adaptive Streaming over HTTP,DASH HTTP)等。表1所示為這幾種流媒體協(xié)議的特點對比。RTSP多用于傳統(tǒng)交互式網(wǎng)絡(luò)電視(Internet Protocol Television,IPTV),RTMP和HLS多用于互聯(lián)網(wǎng)視頻,DASH則是新一代的流媒體承載標(biāo)準(zhǔn),在加載速度、擴展性和兼容性等多方面有更好的表現(xiàn)。
表1 主流流媒體協(xié)議對比
注:TCP為傳輸控制協(xié)議;UDP為用戶數(shù)據(jù)報協(xié)議;TS為傳輸流;FLV為Flash視頻;MP4為MPEG-4第14部分;MPEG為動態(tài)圖像專家組。
流媒體協(xié)議的選擇應(yīng)基于場景需求,例如直播需要較高的實時性,傳輸線路可靠性低時應(yīng)支持自適應(yīng)碼率播放和快速加載需要視頻切片等。同時,在多視點視頻分路編碼條件下,需要在流媒體協(xié)議的保留字段中定義視頻幀的時間同步信息,以便在切換視點以及虛擬視點計算時對齊前后視點同一時刻的視頻幀。
在教育多視點視頻應(yīng)用中,視頻內(nèi)容的傳輸由CDN教育云服務(wù)承載。采集編碼的多視點視頻內(nèi)容首先注入到內(nèi)容制作側(cè)邊緣CDN節(jié)點,由其發(fā)布到對應(yīng)區(qū)域節(jié)點,再發(fā)布到中心節(jié)點,通過中心節(jié)點向其他區(qū)域節(jié)點推送。而用戶側(cè)邊緣CDN節(jié)點接收到用戶的直播/點播請求會向相應(yīng)CDN區(qū)域節(jié)點請求內(nèi)容。面向用戶提供服務(wù)、緩存視頻內(nèi)容和信令交互都由用戶側(cè)邊緣CDN節(jié)點完成。CDN教育云服務(wù)通過縮短服務(wù)端與用戶間的網(wǎng)絡(luò)距離和分散不同地區(qū)用戶的服務(wù)請求,降低了多視點視頻的傳輸時延。
在遠(yuǎn)程教育場景中,學(xué)生通過不同終端(電視機頂盒、手機、平板和計算機等)向教育云的CDN邊緣服務(wù)節(jié)點請求多視點內(nèi)容的流媒體播放,CDN拉取多視點直播碼流(直播)或從存儲中讀取相應(yīng)的多視點視頻(點播/時移回看),利用其邊緣計算能力,分離出某個視點碼流提供給用戶。針對分路編碼的碼流只需將單路視點的視頻碼流取出,而合路編碼的碼流則需要CDN對合路視頻拆分解碼,再取出單路視點視頻碼流,會消耗較多CDN計算資源。
學(xué)生在觀看多視點教學(xué)視頻的過程中通過終端控制視點的切換,終端在信令中攜帶視點的偏移量和時間點發(fā)送至邊緣CDN節(jié)點,由CDN進(jìn)行下一個視點碼流的發(fā)送。為保證切換過程的平滑性,可利用CDN的邊緣計算能力,將兩個相鄰視點間的視頻幀拼接裁剪出多個虛擬視點輸出。虛擬視點的計算會消耗大量計算資源,可以考慮3種漸進(jìn)式的實現(xiàn):
(1) 切換視點時,由CDN直接提供下個視點的碼流,不進(jìn)行虛擬視點合成,CDN在不同視點碼流間做好時間同步即可,此方式適合對平滑切換無要求的場景。
(2) 靜態(tài)畫面合成虛擬視點,即在用戶發(fā)出切換視點命令時,CDN通過算法拼接截取出虛擬視點顯示的畫面發(fā)送到終端顯示。這種方式由于僅對靜態(tài)畫面進(jìn)行處理,是當(dāng)前可行的多視點平滑切換方案。
(3) 動態(tài)畫面合成虛擬視點,即在視頻播放過程中根據(jù)用戶命令計算動態(tài)的視點切換視頻,此種方式需要將多個視點的每一幀圖像取出進(jìn)行虛擬視點合成計算,對CDN邊緣計算能力要求極高,是今后改進(jìn)的方向。
本文提出了一種多視點視頻結(jié)合CDN應(yīng)用的端到端解決方案,分析了其關(guān)鍵技術(shù),并論證了解決方案的可行性。隨著視頻編碼、網(wǎng)絡(luò)和CDN技術(shù)的發(fā)展,多視點視頻正逐步由實驗研究轉(zhuǎn)向?qū)嶋H應(yīng)用,以其為代表的視頻三維化與實際教學(xué)體驗相結(jié)合,將成為未來視頻演進(jìn)的一個發(fā)展趨勢。