技術探索

360度全景視訊與OTT平台技術介紹

工研院資通所  鍾國煌

在VR崛起的時代,OTT平台如何改變及發展新的技術,以因應及滿足使用者是值得探討的議題。在VR崛起的時代,OTT平台如何改變及發展新的技術,以因應及滿足使用者是值得探討的議題。

OTT平台發展多年,作為解決方案所需的各項影音技術已日趨成熟。虛擬實境挾著全新使用者體驗的優勢,在短短的時間內迅速抓住眾多使用者的目光。本文將就OTT平台在VR崛起的時代,如何改變及發展新的技術,以因應及滿足使用者需求進行探討。

VR及OTT平台簡介

虛擬實境(Virtual Reality,VR),是利用電腦模擬產生一個三維空間的虛擬世界,提供使用者關於視覺等感官的模擬,讓使用者感覺仿佛身歷其境,可以及時、沒有限制地觀察三維空間內的事物[1]。VR的應用擴及各個領域,包括醫療照護、工程、房地產、零售、軍事、教育、電玩遊戲、直播賽事及影視娛樂等。
VR具有多感知性(Multi-Sensory)的特性,為了要讓使用者融入虛擬世界,可以創造出視覺、聽覺、觸覺、嗅/味覺及方向感等人的感知系統;不過目前多數虛擬實境技術,仍著重在視覺及聽覺兩者上,其中360°全景服務可提供使用者360°沉浸式的觀看體驗。
OTT(Over The Top)是指通過互聯網向用戶提供各種應用服務[2],而OTT TV是指基於開放互聯網的視頻服務,終端可以是電視機、電腦、機頂盒、PAD、智慧手機等等。OTT TV平台透過網際網路提供視訊服務,經過多年的發展,作為解決方案所需的各項技術已日漸成熟。
當使用者想要觀看360°全景服務的影像,可以透過網際網路,由平台端傳送給終端設備進行觀看,因此可借助原有OTT TV平台所發展的各項技術做為基礎;但360°全景服務的特性稍有不同,例如,使用者只能看到局部畫面、解析度及頻寬需求大、使用者介面的改變等;要在原有的OTT平台上提供360°的全景服務,必須重新檢視及考量各項原有的OTT平台技術是否符合所需,如VR內容產製、編解碼技術、網路頻寬、使用者介面等;以下將就這些技術逐一進行說明。

VR技術簡介

投影方式
人類生活在3D空間,而螢幕是2D的顯示畫面,要提供觀眾沉浸式的體驗,必須有一種機制,能夠將3D空間的球體真實場景展開對應到2D圖片上,並且在觀看時還原回來;這種將水平360°、垂直180°的空間對應到2D平面的過程,即是投影(projection)方式。
目前有多種使用於VR的投影方式。其中最為人所知的等距柱狀投影法(Equirectangular Projection),原來被使用於世界地圖的製作,現在則成為大部份VR360投影所使用的方式;這種根據經緯度的劃分方式,會由於像素密度分布不均的因素,造成高品質的區域集中在「南、北極」等頂端部分,而「赤道」周圍則是畫質最差的部分。

圖1  Equirectangular projection圖1 Equirectangular projection

傳統的立方體貼圖(Cube Map)投影方式可以稍微緩解這種南北極像素密度高、赤道像素密度低的現象;將球體變形成為立方體,然後展開立方體的六個面,即是立方體貼圖的方式。雖然立方體貼圖的效果優於等距柱狀投影法,但六方體的中心位置和邊及角的像素密度仍存在不均勻的情況。

圖2  Traditional Cube Maps圖2 Traditional Cube Maps

為了改善像素密度不均勻,Google提出了Equi-Angular Cubemap(EAC)[4]的作法;其作法如下圖所示

圖3  Equi-Angular Cubemap圖3 Equi-Angular Cubemap

其中,左方的是傳統立方體貼圖,右方則是EAC的作法,由圖中可看出,EAC的作法能更有效地分配像素密度。
下圖為Equirectangular projection、cubemap projection及Equi-angular Cubemap作法的比較;其中綠色部分為最佳情況,代表像素密度與理想狀態接近。黃與橘則是密度不足,畫質較差。藍色則是密度過剩,浪費儲存容量。

圖4  Equirectangular projection(左)、Cubemap projection(中)及Equi-angular Cubemap projection(右)比較圖圖4 Equirectangular projection(左)、Cubemap projection(中)及Equi-angular Cubemap projection(右)比較圖

VR傳輸方法
VR 360的傳輸分為兩種方式:(1)將360°環繞的全景畫面全部傳送給終端設備,當用戶轉動頭部時,繪製畫面的處理由終端設備完成;(2)根據用戶的視角姿態建構不同的畫面資料,終端判斷用戶視角的姿態,向頭端請求對應的畫面資料。
若使用第一種方式,視訊內容儲存的方式很類似原有的OTT平台系統,不同之處在於VR 360系統儲存的是全景的畫面,如上所述,更大的解析度需要更多的運算資源。[3]
若使用的是第二種方式,在頭端部分,需將畫面先切成數個區域並予以編號,同時在描述檔案(如HLS的m3u8、MPEG DASH的MPD等)記載這些資訊,當使用者播放影片時,終端設備會依據使用者姿態要求對應的區域影像;需注意的是,雖然各區域的影像可以事先產生,但使用者在觀賞影片時,終端設備即時將姿態資源傳送給頭端系統,再取回對應的影片串流,這整個時間需在極短的時間內完成,若延遲過長,會嚴重影響到使用者的體驗。
Facebook提出的金字塔型編碼(Pyramid encoding)方式[5],其基本概念與cube map類似,但是以金字塔型取代掉原來的立方體,使用者正前方所關注的部分,即金字塔底部,以較高的解析度呈現,其餘四面則以較低解析度呈現。

圖5  Put the sphere inside a pyramid圖5 Put the sphere inside a pyramid

當使用者的視角改變時,終端設備會向頭端要求新的視角畫面。實作上,整個球體共有三十個視角,當一部VR 360影片被上傳後,會先被轉換成30個視角的金字塔型畫面,且每個視角有五種解析度,共有150種組合。因為使用者轉動頭部的動作可能很頻繁,一個片段的長度只有一秒鐘,每一秒鐘都會依據使用者的網路狀況及視角決定下一個串流,並至頭端取回該串流。使用金字塔型編碼法,可降低流量約80%左右。

Field of View(FOV)
當使用VR服務時,用戶是處於一個空間球的虛擬環境中,看到的區域其實只是整個全景畫面的一小部分。空間球可以分為左右橫向360°及上下縱向180°,人眼無法在同一時間看到所有的角度,裝置可讓人眼接收到的面積由終端設備的視角(Field of View, FOV)決定。以一般常用的4K解析度為例,若FOV為90°,使用者實際看到的畫面僅剩960x960的解析度。[3] 人類的單眼水平視野大約在170°至175°,組合後的雙眼視野約為200°至220°,而在兩個單眼視野重疊約114°的範圍,人類可以感知物體的立體感。[8]

圖6 Field of View圖6 Field of View

要得到較大的FOV,可以讓眼睛更接近透鏡,或是加大透鏡的尺寸。
因此,在透鏡的選擇上,可以使用較輕薄的透鏡,但這會增加透鏡到顯示螢幕的距離,從而增加頭盔的尺寸;使用較厚的透鏡,具有較短的焦距,可縮短透鏡到顯示螢幕的距離,縮小頭盔的尺寸,但需處理幾何失真和色差的問題。

OTT平台提供VR服務技術之探討

編解碼技術
編解碼技術在OTT平台占有重要角色;由於VR360畫面需要更大的解析度及更快的畫面刷新率,會造成Bitrate的提昇。若要在同樣的Bitrate下,得到更好的畫質,可選擇更先進的編碼方式,如使用H.265取代H.264,但是編碼器及解碼器需要額外的運算能力;先進的編解碼器、更大的解析度及更快的畫面刷新率,皆需要更多的系統運算資源;另外,若是使用如Http Live Streaming(HLS)的可適性串流機制,或是Facebook金字塔型編碼方式,皆需對同一份內容進行多種格式的轉碼,所需的運算資源更為龐大。因此,在配置系統資源時,需做謹慎的評估及考量。

網路頻寬
原有的OTT平台技術,使用者透過螢幕觀賞影片,終端設備收到的影片內容會完整顯示在螢幕上,而在VR 360視訊串流服務,需傳送完整的全景畫面,再由終端設備依據使用者頭部姿態決定顯示畫面,因此,需要傳送更大的解析度畫面。 除了畫面大小外,為了克服VR使用者容易頭暈的問題,每秒顯示畫面(Frame Per Second, FPS)也需要更高;一般影音內容常使用每秒30張的規格,在VR的應用中,每秒60張是常見的規格,甚至已開始出現每秒90張或每秒120張的內容。 為了讓使用者有更好的觀賞體驗,必須傳送數倍於使用者觀賞的畫面大小,及較以往更快的每秒顯示畫面,這直接影響到網路頻寬需求。

VR內容產製
自OTT時代開始,內容一向是決定一個OTT平台是否能成功的關鍵因素。技術固然是支撐起OTT平台不可或缺的要件,內容卻是能不能吸引消費者的最重要因素。VR 360全景相機是拍攝VR360影片的必備工具。目前市面上已有多種VR360攝影機,LG 360 Cam[9]、Ricoh Theta S[10]、Samsung Gear 360[11]等消費型VR360攝影機,是以雙魚眼廣角鏡頭捕捉全景畫面;GoPro Odyssey[12]、Facebook Surround 360[13]、GoPro Omni、Nokia Ozo[14]等專業VR360攝影機,則以多支相機固定在支架上,同時擷取多個角度的畫面,再縫合成全景畫面。 VR360影片的拍攝,絕不只是將鏡頭換成360全景鏡頭這麼簡單而已;傳統的電影拍攝,其視角是在拍攝之時就已確定,觀眾的視角被限制在編劇期望看到的範圍內;到了VR時代,觀眾可以自由選擇想觀看的視角,自由性極高, 這也意味著傳統的拍攝手法及原則將會被打破,電視及電視的製作將會面臨新的挑戰,而新的工具也需要隨著拍攝方法的演進被開發出來。

使用者介面及裝置
OTT平台與以往傳統媒體的觀看載具有非常明顯的不同;早期傳統媒體的觀看,大多侷限於電視機上,當演進到OTT平台時代,使用者可以在傳統電視、電腦、平板、手機及其他各式各樣的終端設備操作及觀看節目。而VR 360的使用者介面,又會再一次發生明顯的變革。 在傳統媒體及OTT平台媒體中,使用者大部分觀看的內容是影像及聲音,且視角是固定的。在VR360全景服務服務中,使用者可自由地轉動頭部變動自身姿態,終端設備依據姿態的變化,繪出使用者觀看的畫面。 市面上已出現多種VR 360終端設備,可粗略分為兩類 (1)外接式VR頭盔:其特點是性能強,價格高,體驗好,但需自電腦連接一條線至VR頭盔,便利性受限;代表產品為Oculus Rift[15]、HTC Vive[16]及Sony PSVR[17]等。 (2)以手機為終端設備,通常需另外搭配頭盔外殼,以手機插入具透鏡的頭盔外殼中使用;代表產品有Samsung Gear、Google Cardboard、Google Daydream[18]等。 介於這兩者之間,則有一體式頭戴顯示器,自帶螢幕、運算單元與儲存設備,無需外接設備即可獨立運行。 另外,由於目前大部分VR 360的終端設備,使用者在觀看節目時處於封閉的視野空間,沉浸於虛擬世界之中,無法看到外面的世界,因此,傳統遙控器的方式不適合使用,必須發展新的人機介面;目前已出現數種在VR下使用的操控方式,例如:眼球控制、語音辨識、在頭盔旁的觸控介面及按鈕、手持式控制器等,可以預見的是,未來各廠商也會陸續開發出各種更符合使用者使用的人機介面方式,以符合VR服務使用者的使用習慣。

OTT平台對360°全景視訊延遲之考量

OTT平台服務分為Live直播及VoD隨選視訊兩大類服務。Live直播應用服務,為了要抵抗網路的Packet Loss、Jitter及Out-of-order等狀況,在播放端會配置一段大的緩衝區,以實現重傳、排序封包及穩定輸出待解碼封包等功能,提供使用者更好的體驗。
這種作法,會造成從攝影機收錄畫面到使用者實際看到畫面的延遲時間長達數十秒;由於使用者一般觀看影片的地點,可能是自家客廳,因此使用者對延遲的要求不會很高。
但是若使用者在現場觀看,長時間端到端延遲會讓使用者有不好的觀看體驗,例如,球員打擊出一支全壘打,使用者耳朵聽到現場歡聲雷動的歡呼聲,VR頭盔顯示的畫面卻延遲了三十秒才出現,勢必不能被使用者所接受。將端到端延遲時間降低至數百微秒以內,是這種使用情境的需求。
要達到如此短的延遲要求,必須對每一個部份斤斤計較;首先,對畫面縫合、編解碼器等需要大量運算時間的元件,必需達到即時運算的要求。
另外,為了盡可能降低延遲時間,大量的緩衝區無法存在,緩衝區會被縮減到幾個frame的大小,這種配置會需要網路端的配合,因此,需提升對網路的品質要求。例如,若事先知道網路條件,封包重傳、排序封包及網路jitter的時間需約100ms的時間,在每秒60張的設定下,必須保留6張frame的緩衝區空間,因而造成100ms的延遲。
適當地設定編碼器,也可以降低延遲時間。經過編碼後的資料,可分為I-frame、P-frame及B-frame三種;I-frame可完全依自身的資料進行解碼,P-frame需依靠前一張畫面進行解碼,B-frame則需依據前後的資料進行解碼。
例如,若有一段視訊,編號為1的是I-frame,編號為2的是P-frame,需依靠編號1的I-frame進行解碼,編號為3的是B-frame,需依靠編號2及編號4的frame進行解碼;當要解碼編號3的B-frame時,需等待編號4的frame到達才能進行,因此,會產生額外一張frame的延遲;若對延遲時間十分要求,將編碼器設定為不產生B frame,可有效降低延遲時間。

圖7 B-frame解碼順序說明圖7 B-frame解碼順序說明

選擇適合的傳輸協定,也可降低延遲時間;一般而言,在低延遲的直播使用情境中,會選擇使用UDP而非TCP;但UDP是一種不可靠的傳輸協定,必須搭配其他機制克服封包錯誤的問題;例如,可搭配RTP,利用RTP提供的Sequence Number及Timestamp進行重新排序,或是利用Forward Error Correction更正封包錯誤的問題。
另外在VR的世界裡,最常被討論及引人注意的,是用戶頭部移動與頭盔即時刷新圖像到用戶眼睛之間的延遲時間,延遲會影響沉浸式的體驗,造成玩家的嘔吐和不適感,當這兩者的延遲時間低於20ms時,延遲就幾乎無法察覺。[7]
造成延遲的原因很多,如傳感器刷新不同步,或渲染的幀率及傳感器的刷新率不同步、螢幕刷新延遲、掃描逐行顯示等。要降低延遲有數種方法,例如,使用雙GPU立體渲染、合理安排數據採樣、避免渲染全部重新編碼、合理安排每一畫面的渲染時間等方式。

VR的未來機會與運用

VR未來的應用與想像力結合後,可以發展出無限可能;除了現有的視覺與聽覺感官外,人類尚有觸覺、嗅覺、味覺及其他各種知覺,要讓使用者能有更加沉浸於虛擬世界的體驗,未來逐一整合這些知覺將是重要的方向之一。因此,包括如何模擬各種知覺、如何結合、傳送及同步多種不同的感官訊號等,皆是重要的題目;另外,由VR發展出的新應用,例如,如何透過VR遠端操控,如何更進一步提供更低延遲的360°全景視訊服務等,也將逐一帶動各項新技術的演進與發展。

虛擬實境在各項領域的應用蓬勃發展,其中影音相關的360°全景視訊服務是最早發展的應用之一;本文以OTT平台技術為觀點出發,探討OTT平台技術未來要如何因應VR服務的需求,需發展關於網路頻寬、編解碼技術、VR內容產製、使用者介面及裝置等各項技術,並簡短介紹發展低延遲場內直播所需注意的面向,以提供有志於此一領域的研發人員參考。

參考文獻

[1]https://zh.wikipedia.org/wiki/虛擬實境,維基百科:虛擬實境
[2]https://zh.wikipedia.org/wiki/OTT服務,維基百科:OTT服務
[3]“面向VR業務的承載網絡需求白皮書”, 華為iLab, 2016
[4]“Bringing pixels front and center in VR video”, Chip Brown
[5]“Next-generation video encoding techniques for 360 video and VR”, Evgeny Kuzyakov, https://code.facebook.com/posts/1126354007399553/next-generation-video-encoding-techniques-for-360-video-and-vr/
[6]“Improving VR videos”, YouTube Engineering and Developers Blog, https://youtube-eng.googleblog.com/2017/03/improving-vr-videos.html
[7]“JOHN CARMACK’S DELIVERS SOME HOME TRUTHS ON LATENCY”, John Carmack, http://oculusrift-blog.com/john-carmacks-message-of-latency/682/
[8]“Field of View for Virtual Reality Headsets Explained”, VR Lens Lab, https://vr-lens-lab.com/field-of-view-for-virtual-reality-headsets/
[9]“LG 360 Cam”, http://www.lg.com/tw/lg-friends/lg-LGR105.ATWNTS
[10]“Ricoh Theta S”, https://theta360.com/ct/
[11]“Samsung Gear 360”, http://www.samsung.com/global/galaxy/gear-360/
[12]“GoPro Odyssey”, https://gopro.com/news/here-is-odyssey
[13]“Facebook Surround 360”, https://facebook360.fb.com/facebook-surround-360/
[14]“Nokia Ozo”, https://ozo.nokia.com/vr/
[15]“Oculus Rift”, https://www.oculus.com/rift/
[16]“HTC Vive”, https://www.vive.com/tw/
[17]“Sony PS VR”, https://www.playstation.com/en-au/explore/playstation-vr/
[18]“Google Daydream”, https://vr.google.com/daydream/