孫 昊,陳曉兵,陳枻豪,丁軼萍,王金聲
(1.浙江傳媒學院,浙江 杭州 310018;2.澳門城市大學,澳門 氹仔 999078;3.杭州文化廣播電視集團,浙江 杭州 310008)
智能時代,廣播電視行業(yè)順應際遇,方興未艾。繼虛擬現(xiàn)實(Virtual Reality,VR)技術的興起,全新新聞生產(chǎn)模式——“VR+新聞”漸進大眾視野,成為學界、業(yè)界的關注焦點。2016年伊始,央視網(wǎng)在體壇風云人物頒獎典禮上,首次采用VR技術進行全景直播,同年,央視新聞客戶端、重慶報業(yè)集團打造的上游新聞客戶端先后推出VR頻道,設置VR新聞發(fā)布專欄[1]。行業(yè)在技術元年的諸多嘗試,為電視新聞奠定了全新的傳播與發(fā)展思路。然而,“VR+新聞”雖以其新形式、新視野、新體驗給予行業(yè)新的路徑遐想,但其本質(zhì)特征的呈現(xiàn)依賴于新聞圖像的高質(zhì)量、高傳輸、高儲存技術。目前,沒有現(xiàn)成的、純熟的VR系統(tǒng)能針對超高分辨率圖像完成有效實時瀏覽,成為亟需解決的行業(yè)技術難艱。設計與開發(fā)有效的新聞圖像VR在線系統(tǒng),完成超高分辨率圖像的傳播,將適用于廣電新聞領域,也將適用于超高分辨率全景旅游、超高分辨率廣告展示等其他應用領域。該共性技術的解決,將聯(lián)動虛擬現(xiàn)實技術的多方應用,意義深遠。
虛擬現(xiàn)實VR的超高分辨率新聞圖像在線展示的技術開發(fā),主要困囿于“超高分辨率新聞圖像瀏覽”“新聞圖像插值”“圖像加速”等技術問題。
傳媒領域,新聞作為受眾獲取信息來源的常見方式,真實感是其向來的致力追求。新聞真實感的特質(zhì)使其對新聞圖像的質(zhì)量與精度愈發(fā)有所要求。為此,相關專家曾作出許多嘗試。GRIFFIN W[2]等人開發(fā)出一例以靜態(tài)多分辨率環(huán)境為技術主導的大圖像瀏覽系統(tǒng)。此系統(tǒng)針對各像素進行多細節(jié)層次(Levels of Detail,LOD)選取的方式,實現(xiàn)大圖像的快速瀏覽,但此舉忽視了緩存和繪畫圖像數(shù)據(jù)的載入等問題,也未有相宜的超出硬件限制的虛擬化算法。Zoomify大圖像瀏覽系統(tǒng)由Zoomify公司開發(fā),選用AS語言,以Flash的形式呈現(xiàn)大圖像。此系統(tǒng)將大圖像進行分塊,繼而完成圖像中不同分辨率的細節(jié)層次的結構構造。Zoomify僅支持TIFF,BMP和JPEG三種格式的圖像儲存,而此類格式的圖像都有計量存儲容量上限,難以支持1億字節(jié)大小以上的繪畫圖像的瀏覽。
近年來,諸多系統(tǒng)對于高分辨率新聞圖像瀏覽技術應用的探索[3-6],為行業(yè)發(fā)展作出貢獻,但仍未解決該技術為實現(xiàn)所面臨的緩存及大圖像數(shù)據(jù)載入等核心問題?,F(xiàn)今,新聞圖像瀏覽系統(tǒng)常受置于計算機內(nèi)存大小的限制,因而難以實行高分辨率圖像的便捷瀏覽,是困擾技術持續(xù)發(fā)展應用的一大難點。
20世紀之前,研究者主要采用基于插值的方法來解決單幅圖像超分辨問題,如雙線性插值以及基于雙線性的改進插值方法[7]。超高分辨率圖像的自由放縮,依附于圖像插值技術的處理。圖像插值利用已知原始圖像相鄰像素點的像素值,求解未知目標圖像像素點的像素值,以便由原始圖像再生出更高或更低分辨率的圖像。在大圖像瀏覽的預處理階段,為生成圖像不同分辨率的多分辨率層次,需由圖像插值運算實現(xiàn)。TIAN[8]最先提出基于DE的RDH算法,通過像素對之間的差值進行擴展以嵌入秘密數(shù)據(jù)。常見的圖像處理插值法有最近鄰元法、雙線性內(nèi)插法等。但此類技術可能會造成插值生成的圖像灰度上的不連續(xù),在灰度變化的地方可能出現(xiàn)明顯的鋸齒狀或計算量較大、高頻分量受損、圖像輪廓模糊等問題。
圖像插值技術如何適用于VR高分辨率圖像的呈現(xiàn)亟需解決。TALAB[9]等人利用sober算子確定圖像的邊緣區(qū)域,原圖像像素點處于邊緣區(qū)域時,沿著sober算子的邊緣方向進行自適應插值,而當原圖像的像素點不屬于圖像的邊緣時,則采用傳統(tǒng)的雙線性插值算法,大大降低運行速度。
傳統(tǒng)的CPU對每層不同分辨率的圖像像素進行插值運算,其速度相當緩慢。而在構造細節(jié)層次圖像、實現(xiàn)多層次縮小時,這是必備步驟。統(tǒng)一計算設備架構(Compute Unified Device Architecture,CUDA)是一種由NVIDIA公司推出的通用并行計算架構,提供C語言編程接口,是為密集運算開發(fā)的一套工具軟件。其對程序命令啟動數(shù)千個線程進行計算,配置與管理顯卡內(nèi)存和所有線程,解決GPU復雜的計算問題。在計算機圖形學分支中的平面設計軟件或地圖等領域,CUDA的圖形加速優(yōu)勢明顯。但VR屬于三維虛擬技術,其多維的真實感的傳遞需要巨大的數(shù)據(jù)吞吐。CUDA與VR系統(tǒng)的對接,需要進一步探索與實踐。
“VR+新聞”新聞報道中,其超高分辨率新聞圖像的傳輸,需倚仗超高分辨率圖像的快速多分辨率表達及漸進式傳輸方法、超高分辨率圖像的緩存方法、超高分辨率圖像的存儲及訪問方法,從而使形式得到技術支撐。
對于超高分辨率圖像的多分辨率表達,采用圖像不同分辨率的細節(jié)層次的方法。圖像不同分辨率的細節(jié)層次的最下層設置為分辨率最高的圖像(也稱為原始圖像),越往上層,其層所代表的圖像的分辨率也越低。通過預先處理,得到各種不同分辨率的細節(jié)層次金字塔圖像模型。
具體圖像的不同細節(jié)的多分辨率金字塔模型的構建過程如下:將原始圖像作為金字塔最底層的圖像,并將其序號標記為L0。通過對該圖像進行縮小,一般按照長寬各縮小一半計算,得到一副往上一層的圖像。該分辨率的藝術圖像被標記為序號L1。以此類推,直至得到一個在Web上可以流暢展示的圖像,該分辨率為最小的分辨率圖像,標記為LN。
為實現(xiàn)觀眾放大縮小新聞圖像的流暢感,需在金字塔多分辨率的基礎上增加一個插值層,使得基于Web的瀏覽比通過客戶端軟件瀏覽更加流暢。為了提高插值的速度,采用CUDA的應用程序接口(Application Programming Interface,API)來利用GPU的并行計算。將CUDA中的圖像卷積函數(shù)中的中間數(shù)據(jù)預先保存到常量寄存器,在全局寄存器中重新申請新的存儲空間來保存要瀏覽的圖像。每個進程塊可以劃分為8×8個不同的線程,每1個線程按照實際需要被設定完成一個圖像的像素點的瀏覽展示的計算。進程中的所有線程完成后,將所有的計算結果進行拼接和融合,保存在全局寄存器中。
首先在服務器端構建緩存系統(tǒng),對于緩存的圖像數(shù)據(jù)采用不同的組織方式,每個放縮級別的圖像塊表示下一放縮級別的4個圖像塊。為了減少緩存中文件數(shù)據(jù)的數(shù)量,將同一層的所有的圖像塊存儲在同一個相同的文件中。緩存中每個圖像文件會給定一個索引號來表示它在這一層中。這個索引號的長度能夠通過公式得到,公式如下所示:
式中:LTid表示索引號的最短位長度。索引號的產(chǎn)生,基于放縮級別和在相應放縮級別上的z軸次序的圖像塊序列號。式(1)描述了如何確定緩存中每個圖像塊的索引號。
圖1(a)描述了一個提供兩個放縮級別的圖像服務器。在放縮級別1中有4個圖像塊,在放縮級別2中有16個圖像塊。在較低的放縮級別的圖像塊(放縮級別1)比較高級的圖像塊(放縮級別2)有更小的索引號。處于同一個放縮級別中的圖像塊,每個圖像塊的索引號是按照z軸次序給出的。在某個放縮級別的整個圖像中,給定一個圖像塊的行數(shù)和列數(shù),這個圖像塊的索引號能夠通過以下公式獲得:
式中:ZL,RN,CN分別表示放縮級別、行數(shù)和列數(shù),TID是一個計算某個給定放縮級別、行數(shù)、列數(shù)的圖像塊索引號的函數(shù),Bit_shuffling是一個根據(jù)行數(shù)和列數(shù)獲得z軸序列編碼的函數(shù)。正如圖1(b)所描述的那樣,對行數(shù)和列數(shù)進行交叉2進制編碼,從而得到圖像塊的z軸序列的2進制編碼。
圖1 圖像塊索引號的產(chǎn)生
在分割階段,先對原始的超高分辨率圖像進行縮小采樣,寬、高各自分別縮小一半,然后在對其不斷縮小,達到最低分辨率。這個最低分辨率就是縮略圖。在生成多分辨率圖像的金字塔模型,針對每個分辨率的藝術圖像還要進行小塊的仔細劃分,每一個8×8的小塊,采用自定義格式,共包含8個部分:超高清圖像文件頭部信息、超高清圖像分層的信息、拍攝的色溫等信息、不同分辨率的細節(jié)層次的結構信息、超高清圖像的細分塊的信息數(shù)據(jù)以及縮略圖。
針對原型系統(tǒng)開發(fā)思路、主要模塊、工作流程的細化設計,將服務于超高分辨率新聞圖像VR在線展示技術系統(tǒng)在“新聞+VR”新領域的實施。
系統(tǒng)達成的理想效果是,觀眾在VR上流暢地瀏覽超高分辨率新聞圖像,能夠進行放大、縮小、上下左右移動等操作。超高分辨率新聞圖像的在線展示系統(tǒng)可分成后臺數(shù)據(jù)庫(用于存放各種古代圖像的信息)、前臺瀏覽展示系統(tǒng)。后臺數(shù)據(jù)庫管理子系統(tǒng)包含數(shù)據(jù)庫管理客戶端和數(shù)據(jù)庫管理服務器。新聞發(fā)布者可以通過數(shù)據(jù)庫管理客戶端向服務器端上傳大圖像。數(shù)據(jù)庫管理服務器可以接收大圖像,并使用切割工具將大圖像切割成不同分辨率的小面片存儲。前臺瀏覽子系統(tǒng)滿足觀眾在VR端瀏覽切割好的大圖像。
系統(tǒng)主要包含服務器端模塊、客戶端模塊以及預處理模塊三個模塊。其中,客戶端模塊與目前流行的VR開源系統(tǒng)對接,預處理模塊主要對圖像的格式進行轉(zhuǎn)換、生成多分辨率圖像、對圖像進行切分??蛻舳撕头掌鞫四K中,除了在線展示模塊沒有持久化數(shù)據(jù)層之外,其他的模塊都采用了J2EE的三層架構。
(1)業(yè)務邏輯層。該層重點讓服務器端運用JAVA編成JaVa Bean,通過Cache技術對自定義文件圖像塊進行加速讀取。
(2)服務器端表示層。該層通過JSP技術來呈現(xiàn)對應的頁面,并運用
(3)客戶端表示層。該層通過js,css及html等技術手段,運用客戶端VR系統(tǒng)來呈現(xiàn)新聞圖片,完成瀏覽器與客戶端在線實時交互。
服務器端和客戶端的交互采用了AJAX技術,其在不更新整個頁面的前提下維護頁面中的數(shù)據(jù),使得Web應用程序可以更加迅速地響應觀眾的動作,避免重復發(fā)送網(wǎng)絡上沒有改變的內(nèi)容。
大圖像瀏覽功能采用JS技術開發(fā),由圖像的移動和放縮兩個部分組成。為了提高放縮的層次性,圖像的放縮在自定義所保存的不同分辨率的細節(jié)層次的任何兩層之間都新加了四個層次,每兩層之間水平和垂直方向均相差0.2的比率。為了提高中間層次圖像的顯示效果,采用對不同分辨率的細節(jié)層次高一層分辨率的圖像進行縮小。為了使圖像數(shù)據(jù)在到達客戶端之前能正常顯示,要求新聞圖像實現(xiàn)模糊到清晰的過渡,即圖像數(shù)據(jù)未到達客戶端前將小圖像放大進行模糊顯示,圖像塊全部完成后再進行替換,最終實現(xiàn)超高分辨率圖像的交互速度大于每秒15幀。
原型系統(tǒng)利用緩存技術、加速技術、新聞圖像多分辨率表達技術等,實現(xiàn)超高分辨率新聞圖像在虛擬現(xiàn)實VR系統(tǒng)上實時快速瀏覽,開發(fā)的工作流程如圖2所示。
圖2 系統(tǒng)開發(fā)工作流程
(1)系統(tǒng)開發(fā)語言。使用JNI封裝切割程序,便于服務器端的servlet程序能直接方便地調(diào)用切割程序,如圖3所示。
圖3 系統(tǒng)開發(fā)語言
(2)超大圖像的多分辨率切割和表達。實現(xiàn)對圖像的分步驟切割,并從服務器端實時地把切割進度傳遞到客戶端,最終以進度條的形式將切割進度實時顯示出來。原先的切割程序調(diào)用一次即可完成對整個圖片的切割,這樣,上層的調(diào)用代碼無法掌握切割的進度,而在切割幾個GB的大圖像時又比較耗時,如果不能讓用戶實時看到切割進度,用戶的體驗會比較差。
(3)Web瀏覽的兼容性問題解決。解決大圖像只能在Firefox瀏覽器上正常瀏覽,在其他瀏覽器上無法正??s放的兼容問題,如圖4所示。
圖4 Web瀏覽的兼容性
(4)基本解決圖像瀏覽時出現(xiàn)的卡頓、不流暢的問題。具體工作如表1所示。
表1 解決瀏覽過程中的卡頓、不流暢問題的具體工作
科技讓電視新聞革新,創(chuàng)造了“VR+新聞”的新型報道模式,使觀眾沉浸到交互式三維動態(tài)視景中。超高分辨率新聞圖像系統(tǒng)將以快速多分辨率表達以及漸進式傳輸、存儲和訪問方法,實現(xiàn)超高清新聞數(shù)字圖像多分辨率的表達建模及數(shù)據(jù)索引,提升VR領域在全景新聞圖像展示方面的應用水平,繼而加速廣電媒體融合進程,不斷提升“VR+新聞”模式的影響力。