• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種面向多投影顯示的全景視頻分塊編碼方法

      2020-03-13 10:25:18梅元喬姜忠鼎
      關(guān)鍵詞:轉(zhuǎn)碼分塊全景

      梅元喬 姜忠鼎

      1(復(fù)旦大學(xué)上海市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室 上海 201203)2(復(fù)旦大學(xué)軟件學(xué)院 上海 201203)

      0 引 言

      虛擬現(xiàn)實(shí)被稱為“下一代通用計(jì)算平臺(tái)”,它使用計(jì)算機(jī)創(chuàng)建出逼真的三維立體虛擬場景,用戶可以與虛擬環(huán)境進(jìn)行交互,從而得到強(qiáng)烈的沉浸感。現(xiàn)有的虛擬現(xiàn)實(shí)呈現(xiàn)設(shè)備主要包括頭戴式顯示設(shè)備和多投影顯示設(shè)備。頭戴式顯示設(shè)備在用戶左右眼前的屏幕中顯示帶有視差的立體圖像,并根據(jù)用戶的頭部運(yùn)動(dòng)實(shí)時(shí)呈現(xiàn)相應(yīng)視角的畫面內(nèi)容。頭戴式顯示設(shè)備的缺點(diǎn)在于只能單個(gè)用戶佩戴,難以多人參與,并且一般為單機(jī)驅(qū)動(dòng),容易出現(xiàn)性能瓶頸。多投影顯示設(shè)備使用LCD拼接屏和投影機(jī)陣列構(gòu)建大尺寸的顯示屏幕,可通過集群驅(qū)動(dòng)解決單機(jī)性能有限的問題,具有視角廣、分辨率高、支持多人參與的優(yōu)點(diǎn)。

      全景視頻觀看是虛擬現(xiàn)實(shí)的重要應(yīng)用場景,其將全空間的三維場景映射到二維空間中,用戶無需搭建三維場景即可體驗(yàn)身臨其境的沉浸感。目前超高清全景視頻拍攝及生成技術(shù)快速發(fā)展,Insta360最新VR相機(jī)Titan已支持11K 2D及10K 3D全景視頻的拍攝。超高分辨率也對(duì)視頻編碼和傳輸技術(shù)提出了挑戰(zhàn),傳統(tǒng)的編碼方式已不再能滿足VR全景視頻超高分辨率的需求。大部分VR顯示設(shè)備的呈現(xiàn)區(qū)域有限,因此全景視頻中大量內(nèi)容無需顯示,針對(duì)這一特點(diǎn),研究者使用分塊編碼[1-3]和FOV傳輸[4-6]的策略節(jié)約視頻解碼和網(wǎng)絡(luò)傳輸?shù)拈_銷,從而實(shí)現(xiàn)超高分辨率全景視頻的流暢播放。

      新一代的視頻編碼標(biāo)準(zhǔn)HEVC提供了tile機(jī)制,允許將視頻按照橫向和縱向劃分成多塊,每個(gè)分塊可獨(dú)立解碼。Misra等[2]從并行化和MTU兩個(gè)方面詳細(xì)討論了如何利用HEVC中的分塊機(jī)制提高解碼和傳輸效率。應(yīng)用實(shí)例方面,許多研究者基于HEVC的分塊機(jī)制實(shí)現(xiàn)了全景視頻的分塊編碼和傳輸系統(tǒng)。Skupin等[3]實(shí)現(xiàn)了面向VR頭盔的全景視頻的視口自適應(yīng)編解碼策略,為視口區(qū)域提供高分辨率碼流,非視口區(qū)域則提供低分辨率的碼流。Zare等[4]使用分塊的策略優(yōu)化全景視頻的傳輸效率,為每個(gè)視頻準(zhǔn)備兩個(gè)不同碼率的版本,播放時(shí)用戶FOV范圍內(nèi)的圖像以高碼率傳輸,F(xiàn)OV外的圖像則以低碼率傳輸。Corbillon等[5]擴(kuò)展了上述方法,設(shè)計(jì)了一種視口自適應(yīng)的全景視頻流式傳輸系統(tǒng),每個(gè)視頻的多個(gè)版本不僅碼率不同,還在不同區(qū)域的質(zhì)量上存在差異,視頻的部分區(qū)域質(zhì)量高于該視頻的其他區(qū)域,客戶端播放時(shí)選擇碼率合適且能為其視口區(qū)域提供全質(zhì)量呈現(xiàn)的視頻版本。

      但是現(xiàn)有的研究還存在一些問題。視頻每幀內(nèi)容從解碼到顯示需要一段時(shí)間,很可能解碼和顯示時(shí)的可見分塊列表不相同,導(dǎo)致某些需要呈現(xiàn)的分塊尚無內(nèi)容。為此許多研究者對(duì)視角運(yùn)動(dòng)軌跡進(jìn)行預(yù)測,以提高分塊可見性檢測的準(zhǔn)確率,如Fan等[7]利用頭部運(yùn)動(dòng)信息和視頻內(nèi)容構(gòu)建神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測。然而可見分塊預(yù)測的準(zhǔn)確率無法達(dá)到100%。針對(duì)該問題,現(xiàn)有的方案[3-5]基本都采用低分辨率圖像的方案處理。頭戴式顯示設(shè)備中僅單人觀看視頻,視線集中于視口中央?yún)^(qū)域,但是多投影顯示設(shè)備支持多人參與,因此屏幕邊緣區(qū)域呈現(xiàn)內(nèi)容不清晰將嚴(yán)重影響用戶體驗(yàn)。

      HEVC對(duì)視頻幀隨機(jī)訪問的支持較弱,視頻跳轉(zhuǎn)到某個(gè)需要補(bǔ)償?shù)姆顷P(guān)鍵幀分塊時(shí)需要較長的解碼時(shí)間。此外,多投影顯示通過集群驅(qū)動(dòng)以及拼接融合技術(shù)可達(dá)到很高的分辨率,而HEVC視頻的分辨率上限只有8K。針對(duì)這些問題,已有的研究實(shí)現(xiàn)了一種基于JPEG圖像序列的視頻幀切分編碼格式[11],每幀均可獨(dú)立解碼,以一定的壓縮率為代價(jià),降低了分塊視頻的隨機(jī)訪問延遲,從而縮短分塊預(yù)測錯(cuò)誤時(shí)補(bǔ)償解碼的等待時(shí)間。此外JPEG分塊編碼不存在分辨率上限,可以滿足多投影顯示的需求。然而視頻播放過程中需要補(bǔ)償解碼的分塊數(shù)量過多時(shí),依然會(huì)造成播放卡頓。

      基于上述討論,本文實(shí)現(xiàn)了一種面向多投影顯示的全景視頻分塊編碼方法,減少單機(jī)的性能開銷。實(shí)驗(yàn)結(jié)果表明,該分塊編碼格式可以有效地提升多投影顯示設(shè)備中高分辨率全景視頻播放的流暢度。

      1 基于JPEG圖像序列的全景視頻分塊編碼

      全景視頻有許多不同的映射方式[9-10],目前最主流的是等量矩形投影(Equirectangular Projection,ERP),也被稱為經(jīng)緯圖。本文的分塊編碼方法針對(duì)ERP全景視頻。

      傳統(tǒng)的視頻編碼方式每幀以整幅圖片為單位進(jìn)行編碼,但是對(duì)于全景視頻而言,由于顯示設(shè)備的呈現(xiàn)范圍有限,每幀圖像中大量區(qū)域無需顯示,卻依然占用了解碼和渲染的計(jì)算資源,導(dǎo)致播放性能降低。將視頻每幀的圖像數(shù)據(jù)分塊編碼,播放時(shí)僅解碼和渲染可見分塊是解決該問題的基本思想。如視頻共有N個(gè)分塊,所有分塊交集為空,并集為視頻全部內(nèi)容,第i個(gè)分塊包含的數(shù)據(jù)量為Si,則視頻每幀所需處理的總數(shù)據(jù)量T如下:

      (1)

      (2)

      1.1 立體全景視頻分塊編碼

      本文的全景視頻分塊編碼方法提供了對(duì)左右立體、上下立體和左右分離三種立體格式的支持,編碼時(shí)左右眼畫面均采用完全相同的分塊方式。對(duì)左右立體和上下立體而言,每個(gè)分塊由其左右眼的畫面按照左右或上下排列的方式拼合而成,每個(gè)分塊的畫面依次存儲(chǔ)。對(duì)左右分離格式而言,左眼和右眼的每個(gè)分塊單獨(dú)編碼,存儲(chǔ)時(shí)首先依次寫入左眼所有分塊,然后依次寫入右眼所有分塊,如圖1所示。

      圖1 左右分離立體全景視頻分塊編碼示意圖

      立體顯示方面常見的技術(shù)包括被動(dòng)立體和主動(dòng)立體。被動(dòng)立體的多投影顯示系統(tǒng)中,單機(jī)僅需解碼和渲染單眼畫面,而左右分離的全景視頻僅需讀取和解碼單眼的分塊數(shù)據(jù),可以顯著提升多投影顯示系統(tǒng)的播放效率。對(duì)于主動(dòng)立體的多投影顯示系統(tǒng),則可使用左右立體或上下立體減少需要解碼的分塊數(shù)量。

      1.2 雙分辨率視頻流動(dòng)態(tài)適配

      全景視頻觀看視角旋轉(zhuǎn)時(shí),可見分塊列表實(shí)時(shí)變化。雖然JPEG圖像序列降低了分塊視頻的隨機(jī)訪問延遲,但是當(dāng)需要補(bǔ)償解碼的分塊數(shù)量過多時(shí),依然會(huì)造成播放卡頓。因此本文的分塊編碼格式添加了雙分辨率流適配機(jī)制:每幀數(shù)據(jù)除了包含所有分塊的原分辨率圖像,還包含一幅未分塊的低分辨率圖像,存儲(chǔ)于每幀分塊數(shù)據(jù)的末尾,如圖2所示。

      圖2 雙分辨率視頻流示意圖

      播放器解碼預(yù)測可見的分塊圖像以及該幅低分辨率圖像。主線程每幀渲染之前獲取需要補(bǔ)償解碼的分塊列表,然后使用預(yù)測算法計(jì)算補(bǔ)償解碼的總時(shí)間,如預(yù)測時(shí)間小于一定閾值則進(jìn)行補(bǔ)償解碼,否則在未解碼的區(qū)域呈現(xiàn)低分辨率圖像,避免當(dāng)前幀卡頓。該機(jī)制可以在不明顯降低視頻播放流暢度的同時(shí),為用戶盡可能提供高分辨率的視頻內(nèi)容。

      1.3 非均勻分塊編碼

      一般而言,較小的分塊可以減少視口相同時(shí)所需解碼和渲染的數(shù)據(jù)量,但是分塊數(shù)量過多也會(huì)造成額外的指令開銷。本文的分塊編碼格式在已有的均勻分塊基礎(chǔ)上,添加了非均勻分塊的支持。在某些實(shí)際應(yīng)用場景下,如視頻極點(diǎn)附近存在重要內(nèi)容,或者多投影顯示的屏幕參數(shù)與視頻邊界不匹配時(shí),非均勻分塊可以帶來更好的性能。而在其他情況下,非均勻分塊與均勻分塊的播放性能接近。

      本文的分塊編碼方法支持橫向和縱向的非均勻劃分。如視頻總分辨率為W×H,橫向按照(x1,x2,…,xm)的比例劃分成M塊,縱向按照(y1,y2,…,yn)的比例劃分成N塊,bpp為每個(gè)像素所占的字節(jié)數(shù),則第i行第j列的分塊包含的數(shù)據(jù)量Si,j如下:

      (3)

      (4)

      Si,j=Wj×Hi×bpp

      (5)

      2 分塊參數(shù)確定流程

      經(jīng)本文研究,多投影顯示系統(tǒng)中全景視頻分塊編碼的參數(shù)需綜合考慮以下因素確定:單機(jī)視口范圍、屏幕尺寸、視頻內(nèi)容、解碼和渲染指令本身的開銷。下面給出分塊參數(shù)確定的整體流程:

      (1) 根據(jù)解碼和渲染指令本身的開銷確定分塊總數(shù)的上限;

      (2) 根據(jù)單機(jī)視口范圍確定視頻水平方向的劃分?jǐn)?shù)量和均勻度;

      (3) 根據(jù)視頻內(nèi)容預(yù)測用戶的觀看興趣點(diǎn);

      (4) 根據(jù)觀看興趣點(diǎn)和屏幕尺寸確定垂直方向的劃分?jǐn)?shù)量和均勻度。

      整個(gè)流程中,步驟(1)與硬件有關(guān),需要通過測試進(jìn)行估算。集群系統(tǒng)中每個(gè)節(jié)點(diǎn)的視口范圍一般較為接近,因此水平方向可均勻劃分。所以實(shí)際應(yīng)用過程中應(yīng)著重考慮步驟(3)和步驟(4) 確定分塊參數(shù)。本節(jié)將通過兩個(gè)實(shí)例具體說明。

      實(shí)例1:全景視頻在興趣點(diǎn)集中于極點(diǎn)附近,如某些標(biāo)志性高大建筑。由于ERP的像素分布是不均勻的,將其映射到球幕空間時(shí),極點(diǎn)附近的像素密度遠(yuǎn)高于赤道附近,因此視角旋轉(zhuǎn)到極點(diǎn)附近時(shí)會(huì)覆蓋更多的分塊。如圖3所示,一個(gè)8K(7 680×3 840)的全景視頻采用4×3的均勻分塊,每個(gè)分塊大小為1 920×1 280,RGB格式大約占7.5 MB的空間。對(duì)于同樣大小的FOV,極點(diǎn)附近覆蓋了4個(gè)視頻分塊,需處理7.5×4=30 MB的數(shù)據(jù),而赤道附近只覆蓋了2個(gè)視頻分塊,需處理7.5×2=15 MB的數(shù)據(jù),因此可能出現(xiàn)赤道附近視頻流暢播放,而極點(diǎn)附近視頻掉幀的現(xiàn)象。

      (a) 視角位于赤道附近 (b) 視角位于極點(diǎn)附近圖3 均勻分塊策略下相同大小的FOV 在不同視角下覆蓋的視頻分塊

      對(duì)此我們可以調(diào)整豎直方向的分塊均勻度,以減少極點(diǎn)附近的解碼開銷。如圖4所示,該8K的全景視頻橫向依然均勻分四塊,縱向則按照1∶2∶1的比例分為三塊,因此第1、3行的分塊大小為1 920×960,RGB格式大約占6 MB的空間,第2行的分塊大小為1 920×1 920,RGB格式大約占12 MB的空間。此時(shí)極點(diǎn)附近覆蓋4個(gè)視頻分塊,需處理6×4=24 MB的數(shù)據(jù),而赤道附近占2個(gè)分塊,需處理12×2=24 MB的數(shù)據(jù)。可以看到同樣是4列3行的分塊,此時(shí)極點(diǎn)和赤道附近所需處理的數(shù)據(jù)量相同。

      (a) 視角位于赤道附近 (b) 視角位于極點(diǎn)附近圖4 非均勻分塊策略下相同大小的FOV 在不同視角下覆蓋的視頻分塊

      實(shí)例2:全景視頻的興趣點(diǎn)集中于赤道附近,用戶觀看時(shí)視角主要在水平方向旋轉(zhuǎn)。此時(shí)可使用縱向非均勻分塊使屏幕顯示區(qū)域與屏幕所覆蓋的分塊區(qū)域盡可能吻合。圖5(a)中一個(gè)8K的全景視頻采用4×3的均勻分塊策略,每個(gè)分塊大小為1 920×1 280,RGB格式大約占7.5 MB的空間。屏幕顯示區(qū)域覆蓋了2個(gè)分塊,需處理7.5×2=15 MB的數(shù)據(jù)。而圖5(b)中,該視頻按照縱向1.5∶1∶1.5的比例分塊即可使得赤道區(qū)域的分塊在縱向上覆蓋整個(gè)屏幕。此時(shí),赤道附近的分塊大小為1 920×960,RGB格式大約占6 MB的空間,需要處理的總數(shù)據(jù)量為6×2=12 MB<15 MB。

      (a) 4×3均勻分塊 (b) 4×3非均勻分塊圖5 針對(duì)屏幕尺寸的非均勻分塊優(yōu)化

      3 分塊全景視頻轉(zhuǎn)碼生成工具

      針對(duì)上述全景視頻分塊編碼格式,本文實(shí)現(xiàn)了相應(yīng)的視頻轉(zhuǎn)碼生成工具。對(duì)于點(diǎn)播全景視頻,我們實(shí)現(xiàn)了離線轉(zhuǎn)碼工具,預(yù)先將其轉(zhuǎn)碼成分塊全景視頻格式的文件;而對(duì)于直播視頻,我們實(shí)現(xiàn)了實(shí)時(shí)轉(zhuǎn)碼組件,將網(wǎng)絡(luò)直播流實(shí)時(shí)轉(zhuǎn)碼為分塊全景視頻格式的內(nèi)存數(shù)據(jù)流。本文使用FFmpeg+JPEG-Turbo對(duì)進(jìn)行視頻轉(zhuǎn)碼:首先使用FFmpeg解碼出RGB視頻幀,然后根據(jù)配置將該視頻幀劃分成多個(gè)分塊,接下來使用JPEG-Turbo對(duì)每個(gè)視頻幀分塊進(jìn)行壓縮,最后組成一幀分塊編碼格式的視頻數(shù)據(jù)。該轉(zhuǎn)碼工具的整體框架如圖6所示。

      圖6 分塊全景視頻轉(zhuǎn)碼生成工具框架圖

      離線轉(zhuǎn)碼方面,本文實(shí)現(xiàn)了一套可視化轉(zhuǎn)碼工具,用戶輸入原視頻路徑、分塊全景視頻輸出路徑、立體格式、分辨率、壓縮質(zhì)量、編號(hào)區(qū)間以及分塊配置等信息,將原視頻轉(zhuǎn)碼為自定義分塊視頻文件格式,如圖7所示。該自定義視頻文件由Header和Payload兩部分組成:Header部分包含視頻的基本信息(分辨率、幀率、時(shí)長)、分塊配置信息以及視頻跳轉(zhuǎn)表,其中跳轉(zhuǎn)表的每個(gè)表項(xiàng)存儲(chǔ)了某一幀號(hào)視頻數(shù)據(jù)在整個(gè)文件中的偏移量,視頻跳轉(zhuǎn)時(shí)檢索該表即可;Payload部分則依次存儲(chǔ)了視頻每一幀每個(gè)分塊的數(shù)據(jù)。

      圖7 自定義分塊視頻文件格式示意圖

      實(shí)時(shí)轉(zhuǎn)碼組件可將直播視頻流根據(jù)分塊配置實(shí)時(shí)轉(zhuǎn)碼為分塊全景視頻內(nèi)存流。實(shí)時(shí)轉(zhuǎn)碼對(duì)性能有很高的要求,如視頻的幀率是30 fps,那么平均每幀的轉(zhuǎn)碼時(shí)間就不能高于33 ms,因此我們需要對(duì)轉(zhuǎn)碼效率進(jìn)行優(yōu)化。實(shí)時(shí)轉(zhuǎn)碼由直播流解碼和分塊圖像壓縮兩個(gè)步驟組成。直播流解碼由FFmpeg完成,一般使用解碼流水線進(jìn)行優(yōu)化,該技術(shù)已經(jīng)較為成熟。分塊圖像壓縮方面,本文使用并發(fā)壓縮技術(shù)優(yōu)化轉(zhuǎn)碼性能。

      本文使用線程池進(jìn)行分塊圖像的并發(fā)壓縮。最常用的線程池?cái)?shù)據(jù)結(jié)構(gòu)基于生產(chǎn)者消費(fèi)者模式設(shè)計(jì),如圖8所示。線程池維護(hù)一個(gè)任務(wù)隊(duì)列,存儲(chǔ)需要執(zhí)行的任務(wù)列表,并對(duì)外提供添加任務(wù)的接口。線程池初始化時(shí)創(chuàng)建若干線程,每個(gè)線程從任務(wù)列表中獲取任務(wù)并執(zhí)行。這種方案實(shí)現(xiàn)簡單,邏輯清晰,但是用在超高清視頻幀的并發(fā)壓縮上卻存在內(nèi)存占用過高的問題。本系統(tǒng)中,任務(wù)列表中的每個(gè)任務(wù)存儲(chǔ)了未壓縮的RGB格式數(shù)據(jù),由于全景視頻的分辨率很高,RGB格式數(shù)據(jù)占用的空間很大,如一個(gè)8K×4K的視頻,每幀數(shù)據(jù)需要占用大約100 MB的空間,如果任務(wù)列表容量為8,CPU邏輯核心數(shù)為12,那么在轉(zhuǎn)碼過程中該線程池最高可能占用(8+12)×100 MB=2 GB的內(nèi)存空間,而整個(gè)流媒體服務(wù)器的FFmpeg解碼、網(wǎng)絡(luò)傳輸模塊都需要使用大量內(nèi)存。系統(tǒng)運(yùn)行時(shí),內(nèi)存空間較少的機(jī)器將使用虛擬內(nèi)存機(jī)制將部分內(nèi)存轉(zhuǎn)移到磁盤,從而導(dǎo)致整個(gè)系統(tǒng)性能下降。

      圖8 基于生產(chǎn)者消費(fèi)者模式的線程池

      針對(duì)這一問題,本文采用了另一種內(nèi)存池的設(shè)計(jì)方式:內(nèi)存池不再維護(hù)一個(gè)任務(wù)列表,而是直接管理線程,如圖9所示。線程池維護(hù)一個(gè)線程隊(duì)列,初始化時(shí)創(chuàng)建與CPU邏輯核心數(shù)相同的線程到線程隊(duì)列中。當(dāng)需要壓縮一個(gè)視頻幀時(shí),從線程隊(duì)列中取出一個(gè)線程,將該視頻幀的壓縮計(jì)算設(shè)置為其當(dāng)前任務(wù);每個(gè)線程完成其壓縮任務(wù)后,將自己重新添加到線程隊(duì)列中。這種策略雖然設(shè)計(jì)上較為復(fù)雜,但是其內(nèi)存占用不會(huì)超過(12+1)×100 MB=1 300 MB,相比于前一個(gè)方案顯著優(yōu)化了內(nèi)存使用。

      圖9 內(nèi)存優(yōu)化的線程池

      4 實(shí) 驗(yàn)

      4.1 實(shí)驗(yàn)環(huán)境

      本文搭建了多投影顯示系統(tǒng)對(duì)該全景視頻分塊編碼格式進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)使用的多投影顯示系統(tǒng)采用被動(dòng)立體技術(shù),使用兩臺(tái)計(jì)算機(jī)分別負(fù)責(zé)左右眼的畫面渲染,操作系統(tǒng)和硬件配置如表1所示。每臺(tái)計(jì)算機(jī)連接3臺(tái)投影機(jī),使用多投影校正技術(shù)拼接融合出完整連續(xù)的畫面,投影到一個(gè)高2.6米、半徑4米的120°柱面屏幕上。用戶站在該柱面屏幕前,佩戴偏振立體眼鏡觀看超高清的全景視頻。

      表1 多投影顯示系統(tǒng)顯示節(jié)點(diǎn)的操作系統(tǒng)和硬件配置表

      本文使用Insta 360 Pro全景相機(jī)搭建全景視頻直播流實(shí)驗(yàn)環(huán)境。該相機(jī)支持4K@30 fps的全景視頻直播流拍攝,局域網(wǎng)內(nèi)可通過RTMP協(xié)議獲取直播流數(shù)據(jù)。直播流實(shí)驗(yàn)使用的網(wǎng)絡(luò)硬件設(shè)備為千兆以太網(wǎng)。

      4.2 實(shí)驗(yàn)結(jié)果與分析

      對(duì)該分塊編碼全景視頻的整體播放效果進(jìn)行實(shí)驗(yàn),圖10展示了該多投影顯示系統(tǒng)中使用被動(dòng)立體技術(shù)播放8K 3D全景視頻的效果圖。

      圖10 8K 3D全景視頻播放效果圖

      表2給出了該多投影顯示系統(tǒng)中不同分辨率分塊編碼全景視頻的播放幀率,所有視頻均為4×4均勻分塊。實(shí)驗(yàn)結(jié)果表明點(diǎn)播視頻從6K到12K均可流暢播放,直播方面則可流暢播放Insta 360 Pro相機(jī)實(shí)時(shí)拍攝的4K@30 fps全景視頻。

      表2 不同分辨率分塊全景視頻播放幀率統(tǒng)計(jì)表

      下面對(duì)本文分塊編碼方法的各個(gè)技術(shù)細(xì)節(jié)進(jìn)行實(shí)驗(yàn)。首先對(duì)分塊的隨機(jī)訪問效率進(jìn)行實(shí)驗(yàn),使用FFmpeg進(jìn)行HEVC視頻的解碼,除了軟解碼,F(xiàn)Fmpeg還支持CUVID硬解碼,因此我們比較HEVC軟解碼、HEVC硬解碼和本文JPEG圖像序列解碼三種情況下視頻分塊隨機(jī)訪問的開銷。

      測試視頻的總分辨率為7 680×3 840@29.97 fps,4×4均勻分塊,每個(gè)分塊大小為1 920×960,HEVC視頻的關(guān)鍵幀間隔為1秒。我們?cè)?~4秒之間隨機(jī)采樣100次,記錄三種情況下從開始跳轉(zhuǎn)到解碼出相應(yīng)視頻幀的時(shí)長,實(shí)驗(yàn)結(jié)果如圖11所示??梢钥吹剑琂PEG圖像序列方案的隨機(jī)訪問解碼時(shí)長遠(yuǎn)低于HEVC軟解碼,并且比HEVC硬解碼要穩(wěn)定許多。因此JPEG圖像序列的編碼方式可以有效降低隨機(jī)訪問的延遲,縮短分塊預(yù)測錯(cuò)誤時(shí)補(bǔ)償解碼的等待時(shí)間,從而在不明顯影響播放流暢度的前提下,給用戶呈現(xiàn)高清晰度的視頻畫面。

      圖11 不同解碼方式隨機(jī)訪問開銷折線圖

      分塊策略方面,我們測試使用分塊編碼與否對(duì)視頻播放性能的影響。使用離線轉(zhuǎn)碼工具生成4K(3 840×1 920)、6K(5 760×2 880)、8K(7 680×3 840)、10K(9 600×4 800)、12K(11 520×5 760)五種不同分辨率的分塊編碼全景視頻,幀率均為29.97 fps,每種視頻包含未分塊和4×4均勻分塊兩個(gè)副本。虛擬相機(jī)的視口大小根據(jù)柱面屏幕參數(shù)計(jì)算得到。圖12展示了不同視頻分辨率下,使用分塊編碼與否對(duì)視頻播放幀率的影響。可以看到,視頻分辨率不超過8K時(shí),不論是否使用分塊編碼,視頻均可按照視頻本身的幀率(29.97 fps)播放;而當(dāng)視頻分辨率達(dá)到10K及12K時(shí),非分塊的視頻播放幀率明顯下降,而4×4均勻分塊的視頻仍然可以流暢播放。因此分塊編碼可以顯著提高超高清(10K及以上)全景視頻的播放性能。

      圖12 不同分辨率及分塊編碼啟用與否條件下 視頻播放幀率折線圖

      分塊均勻性方面,第2節(jié)討論了兩種非均勻分塊帶來更佳播放性能的實(shí)例,這里分別進(jìn)行測試。首先測試全景視頻在興趣點(diǎn)集中于極點(diǎn)附近的情況。我們將一部8K(7 680×3 840)@ 29.97 fps的全景視頻轉(zhuǎn)碼為均勻4×3和非均勻4×3兩種分塊編碼全景視頻,其中非均勻分塊的縱向比例為1∶2∶1,如圖13所示。該視頻的興趣點(diǎn)為埃菲爾鐵塔塔尖,主要位于北極點(diǎn)附近。分塊全景視頻的分辨率和幀率與原視頻相同,虛擬相機(jī)的視口大小根據(jù)柱面屏幕參數(shù)計(jì)算得到。

      (a) 4×3均勻分塊 (b) 4×3非均勻分塊圖13 均勻分塊與非均勻分塊示意圖1

      圖14展示了兩種均勻性配置下,觀察視角為赤道附近和極點(diǎn)附近解碼100幀的總時(shí)間,歐拉角分別為(0,0,0)和(180,0,0)??梢钥吹剑蔷鶆蚍謮K在極點(diǎn)附近的解碼時(shí)間低于均勻分塊策略。此外非均勻分塊極點(diǎn)和赤道附近的解碼時(shí)間相差較小,而均勻分塊策略則相差較大。因此非均勻分塊優(yōu)化了視角位于極點(diǎn)附近的播放性能,使得極點(diǎn)與赤道附近的解碼時(shí)間變得均勻。

      圖14 兩種分塊均勻性配置下不同視角解碼時(shí)間柱狀圖

      另一實(shí)例中,全景視頻的興趣點(diǎn)集中于赤道附近,用戶觀看時(shí)視角主要在水平方向旋轉(zhuǎn),此時(shí)可根據(jù)屏幕尺寸定制分塊參數(shù)。我們將8K(7 680×3 840)@ 29.97 fps的全景視頻轉(zhuǎn)碼為均勻4×3和非均勻4×3兩種分塊編碼全景視頻,其中非均勻分塊的縱向比例為1.5∶1∶1.5,如圖15所示。分塊全景視頻的分辨率和幀率與原視頻相同。視口大小由屏幕尺寸計(jì)算得到,視口的朝向?yàn)槿耙曨l球幕空間的正中央赤道區(qū)域。表3展示了屏幕尺寸一定時(shí),這兩種分塊均勻度配置條件下解碼100幀的總時(shí)間。可以看到,縱向1.5∶1∶1.5非均勻分塊策略的解碼時(shí)間低于均勻分塊。因此針對(duì)屏幕尺寸定制非均勻分塊配置可以在不增加分塊數(shù)量的條件下優(yōu)化播放性能。

      (a) 4×3均勻分塊 (b) 4×3非均勻分塊圖15 均勻分塊與非均勻分塊示意圖2

      表3 屏幕尺寸相同時(shí)兩種分塊均勻性配置下解碼時(shí)間表

      分塊配置4×3均勻分塊4×3非均勻分塊解碼時(shí)間/s2.031.61

      最后我們測試第3節(jié)介紹的并發(fā)壓縮機(jī)制對(duì)實(shí)時(shí)轉(zhuǎn)碼性能的影響。我們使用一臺(tái)Intel(R) Core(TM) i7-8700K CPU @ 3.70 GHz,6核12線程的機(jī)器作為硬件設(shè)備。非并發(fā)模式下創(chuàng)建單個(gè)線程串行壓縮,并發(fā)模式下則創(chuàng)建12個(gè)并發(fā)的壓縮線程。圖16展示了不同直播流分辨率下使用并發(fā)壓縮與否對(duì)轉(zhuǎn)碼時(shí)長的影響,縱軸為服務(wù)器轉(zhuǎn)碼100幀視頻數(shù)據(jù)的總時(shí)間,其中3 840×3 840分辨率的直播流幀率為24 fps,其余為30 fps。與解碼視頻文件不同的是,直播流按照其幀率生成視頻幀,因此轉(zhuǎn)碼速度不會(huì)超過直播流的幀率。可以看到,分辨率較低時(shí)并發(fā)與串行壓縮的效率差別不大,分辨率較高時(shí)并發(fā)壓縮顯著提高了實(shí)時(shí)轉(zhuǎn)碼的效率。

      圖16 不同分辨率下并發(fā)壓縮與串行壓縮轉(zhuǎn)碼時(shí)長折線圖

      5 結(jié) 語

      本文針對(duì)多投影顯示設(shè)備的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了一種面向多投影顯示的全景視頻分塊編碼方法,減少單機(jī)的性能開銷。該方法以已有的JPEG分塊編碼研究[11]為基礎(chǔ),添加對(duì)立體全景視頻分塊編碼的支持,實(shí)現(xiàn)雙分辨率視頻流動(dòng)態(tài)適配機(jī)制,保證視角變化時(shí)視頻的流暢播放;添加非均勻分塊編碼的支持以針對(duì)實(shí)際需求定制分塊參數(shù),優(yōu)化播放性能。最后,本文使用FFmpeg和JPEG-Turbo開源庫實(shí)現(xiàn)了該分塊全景視頻的轉(zhuǎn)碼生成工具,支持離線轉(zhuǎn)碼和實(shí)時(shí)轉(zhuǎn)碼兩種方式,分別用于點(diǎn)播視頻和直播視頻。實(shí)驗(yàn)結(jié)果表明,該分塊編碼策略可以有效地提升多投影顯示設(shè)備中高分辨率全景視頻播放的流暢度。未來將繼續(xù)優(yōu)化該分塊全景視頻轉(zhuǎn)碼、傳輸、解碼和渲染等各個(gè)模塊的性能,以支持更高分辨率全景視頻的流暢播放。

      猜你喜歡
      轉(zhuǎn)碼分塊全景
      移動(dòng)云盤在線轉(zhuǎn)碼功能技術(shù)研究
      戴上耳機(jī),享受全景聲 JVC EXOFIELD XP-EXT1
      視頻轉(zhuǎn)碼技術(shù)在廣播電視中的應(yīng)用研究
      締客世界(2020年1期)2020-12-12 18:18:28
      分塊矩陣在線性代數(shù)中的應(yīng)用
      全景敞視主義與偵探小說中的“看”
      基于IPTV點(diǎn)播業(yè)務(wù)的視頻分段式轉(zhuǎn)碼方案的研究與應(yīng)用
      傳播力研究(2018年7期)2018-05-10 09:42:47
      從5.1到全景聲就這么簡單 FOCAL SIB EVO DOLBY ATMOS
      全景搜索
      特別文摘(2016年21期)2016-12-05 17:53:36
      反三角分塊矩陣Drazin逆新的表示
      基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
      土默特左旗| 广灵县| 乌兰浩特市| 西平县| 仙游县| 崇义县| 平舆县| 乐清市| 永川市| 隆尧县| 榆树市| 庆安县| 慈溪市| 澎湖县| 东兰县| 灌阳县| 阿巴嘎旗| 藁城市| 宕昌县| 洛南县| 犍为县| 肥西县| 天气| 鹤庆县| 唐河县| 双鸭山市| 宜兰县| 西林县| 德惠市| 呈贡县| 广州市| 巴林右旗| 太白县| 微山县| 台湾省| 舞钢市| 曲阳县| 潜江市| 嘉义市| 乌鲁木齐县| 大余县|