文/徐媛媛 朱艷麗
虛擬現(xiàn)實(shí)技術(shù)(Virtual Reality, 簡(jiǎn)稱VR)通過(guò)使用具有交互性的軟件和硬件來(lái)模擬生成一個(gè)具有真實(shí)感和沉浸感的三維環(huán)境,使得用戶有身臨其境的體驗(yàn)?;诖?,VR技術(shù)在游戲、電影、教育、醫(yī)療等眾多領(lǐng)域有著廣泛的應(yīng)用,例如可以通過(guò)VR實(shí)現(xiàn)虛擬購(gòu)物、就醫(yī)、以及觀看演唱會(huì)等。由于價(jià)格及便利性的優(yōu)勢(shì),面向普通消費(fèi)者的主要是頭戴式虛擬現(xiàn)實(shí)設(shè)備.用戶可以通過(guò)頭戴式顯示器(Head Mounted Display, 簡(jiǎn)稱HMD),透過(guò)光學(xué)鏡片在距離很近的屏幕上觀看虛擬場(chǎng)景。
隨著VR用戶的增加,VR應(yīng)用內(nèi)容逐漸豐富。同時(shí),伴隨云技術(shù)的興起,設(shè)備之間進(jìn)行屏幕內(nèi)容分享的需求也在急劇增加,并相應(yīng)的產(chǎn)生了如云游戲、無(wú)線屏幕顯示、鏡像屏幕、以及屏幕虛擬化等應(yīng)用。在這些應(yīng)用中,屏幕分享通常需要以屏幕內(nèi)容視頻的形式在VR設(shè)備之間進(jìn)行實(shí)時(shí)地傳輸,并引發(fā)了相關(guān)屏幕內(nèi)容視頻編碼的研究。
關(guān)于屏幕內(nèi)容編碼的研究得到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,尤其是在提高編碼效率上。高效視頻編碼(HEVC)中的屏幕內(nèi)容編碼擴(kuò)展標(biāo)準(zhǔn)文獻(xiàn)[1,2]提出幾項(xiàng)新的編碼工具,例如幀內(nèi)塊復(fù)制、調(diào)色板模式、自適應(yīng)色彩變換、自適應(yīng)運(yùn)動(dòng)矢量精度等。在文獻(xiàn)[3]中,作者將屏幕內(nèi)容分成色彩和結(jié)構(gòu)兩分量而不使用變換來(lái)提高壓縮性能。根據(jù)屏幕內(nèi)容含有較少種類顏色的特性,文獻(xiàn)[4]使用了一種基于色彩表和色彩索引圖的編碼方式。在[5]中,研究者根據(jù)混合屏幕內(nèi)容的特點(diǎn),提出了同時(shí)采用色度采樣編碼器和全色度編碼器的編碼方式,取得了較好的編碼效果。文獻(xiàn)[6]設(shè)計(jì)了與全色度HEVC結(jié)合的誤差限自適應(yīng)的有損字典編碼方案。除了有損屏幕內(nèi)容編碼,文獻(xiàn)[7,8]為無(wú)損屏幕內(nèi)容幀內(nèi)編碼提出了一個(gè)模板匹配預(yù)測(cè)的編碼方法,達(dá)到了很好的壓縮效果。
雖然已有的屏幕內(nèi)容編碼方法在提高壓縮性能已經(jīng)取得了很大進(jìn)展。然而,上述屏幕內(nèi)容編碼方法并未考慮虛擬現(xiàn)實(shí)的屏幕內(nèi)容特性。為此,本文提出了有效區(qū)域和無(wú)效區(qū)域的劃分方法,并進(jìn)一步提出了對(duì)無(wú)效區(qū)域像素進(jìn)行處理的方法,來(lái)提高頭戴式虛擬現(xiàn)實(shí)屏幕內(nèi)容視頻的幀內(nèi)編碼壓縮性能。實(shí)驗(yàn)結(jié)果驗(yàn)證了該方法的有效性。
在內(nèi)容分布上,VR HMD屏幕內(nèi)容視頻與普通屏幕內(nèi)容視頻有不同的特點(diǎn)。如圖1(a)和圖1(b)所示,首先普通屏幕內(nèi)容視頻通常是單視圖的,而HMD屏幕內(nèi)容視頻中具有左眼和右眼兩個(gè)視圖。為了得到立體感,VR HMD會(huì)為左、右眼提供同一場(chǎng)景不同視角的兩幅圖像。大腦將融合這兩幅圖像感知深度信息,從而得到一個(gè)立體的圖像。其次,VR HMD的屏幕有效區(qū)域呈桶型,屏幕除去桶型有效區(qū)域的剩余部分則為無(wú)效區(qū)域,而普通屏幕內(nèi)容視頻通常不存在無(wú)效區(qū)域。
編碼過(guò)程中,有效區(qū)域邊界處的圖像塊包括實(shí)際有效區(qū)域像素和無(wú)效區(qū)域像素。與均勻的塊相比,這些非均勻塊在離散余弦變換(DCT)和量化后產(chǎn)生更多DCT高頻分量,從而導(dǎo)致比特率增加。通常的編碼方案是為高頻分量較少或高頻分量幅值較小這種情況設(shè)計(jì)的(例如Z字形掃描、DCT變換系數(shù)),高頻分量的量化亦會(huì)導(dǎo)致解碼恢復(fù)的圖像在區(qū)域邊緣有振鈴效應(yīng)。因此,筆者要對(duì)無(wú)效區(qū)域的處理方法進(jìn)行研究來(lái)提高虛擬現(xiàn)實(shí)屏幕內(nèi)容視頻的編碼效率。
根據(jù)屏幕內(nèi)容中左右眼視圖對(duì)稱的特性,先將屏幕內(nèi)容區(qū)域一分為二,只對(duì)其中一個(gè)區(qū)域進(jìn)行有效性區(qū)域劃分,然后鏡像映射到另外一個(gè)區(qū)域中。VR HMD為了糾正光學(xué)鏡片的枕型失真將有效區(qū)域預(yù)先處理為桶型。視場(chǎng)越大、觀測(cè)范圍越大,有效區(qū)域的桶型失真越嚴(yán)重。可以看出,未經(jīng)處理的無(wú)效區(qū)域的像素值統(tǒng)一編碼處理成了固定像素?;谶@個(gè)觀察,筆者提出采用基于閾值的圖像分割法進(jìn)行無(wú)效區(qū)域與有效區(qū)域的劃分。如果將無(wú)效區(qū)域記為C0,有效區(qū)域記為C1,用x(i,j)表示位于位置(i,j)的原始像素值用x(i,j)表示位于位置(i,j)的原始像素值,用f表示無(wú)效區(qū)域的像素值,那么區(qū)域劃分算法可以用如下公式表示:
圖1:不同類別的視頻序列舉例
圖2:無(wú)效區(qū)域劃分和編碼處理方法
如果像素值與無(wú)效區(qū)域像素值比較接近,那么該像素屬于無(wú)效區(qū)域,否則屬于有效區(qū)域。筆者無(wú)需對(duì)所有像素值進(jìn)行比較。如圖2所示,對(duì)于每一行的所有像素來(lái)說(shuō),筆者只需要分別從圖像幀的最左邊、最中間的像素分別向右、向左搜索獲得邊界點(diǎn)A和B。類似的,從圖像幀的最中間、最右邊的像素分別向右、向左搜索獲得邊界點(diǎn)C和D。對(duì)于圖像上方和下方的某些行的所有像素都屬于無(wú)效區(qū)域,這個(gè)時(shí)候就不用記錄邊界點(diǎn)。
表 1:編碼處理前后的編碼效率對(duì)比
圖3:編碼處理前后的視頻序列
編碼過(guò)程中,有效區(qū)域邊界處的圖像塊包括實(shí)際有效區(qū)域像素和無(wú)效區(qū)域像素。與均勻的塊相比,這些非均勻塊在離散余弦變換(DCT)和量化后產(chǎn)生更多DCT高頻分量,從而導(dǎo)致比特率增加。通常的編碼方案是為高頻分量較少或高頻分量幅值較小這種情況設(shè)計(jì)的(例如Z字形掃描、DCT變換系數(shù)),高頻分量的量化亦會(huì)導(dǎo)致解碼恢復(fù)的圖像在區(qū)域邊緣有振鈴效應(yīng)。
另外,由于雙視圖中無(wú)效區(qū)域像素值均為固定值,導(dǎo)致在有效區(qū)域桶型邊緣使用幀內(nèi)塊復(fù)制模式進(jìn)行塊預(yù)測(cè)效率不高。由于左右眼視圖存在視差,已經(jīng)編碼重建的左眼視圖含有不規(guī)則有效區(qū)域,使得左眼視圖的參考?jí)K或右眼視圖的待編碼塊處于桶型邊緣時(shí)含有部分無(wú)效區(qū)域的樣本值。待編碼的圖像塊與參考圖像塊之間的這種不匹配導(dǎo)致額外的預(yù)測(cè)誤差,降低了編碼效率。
本文采用改變無(wú)效區(qū)域的樣本值的方案來(lái)提高不規(guī)則編碼塊的編碼效率。筆者發(fā)現(xiàn),如果編碼單元內(nèi)部的相關(guān)性較大,說(shuō)明該編碼單元具備了高效壓縮的可能,從而編碼比特率也就越低。因此,筆者提出了一種利用有效區(qū)域邊緣的像素值對(duì)無(wú)效區(qū)域進(jìn)行編碼處理的方法。本文提出的編碼處理方法是按行進(jìn)行的。如圖2所示,以圖像的邊界、圖像的中線以及4個(gè)邊界點(diǎn),可以將每一行無(wú)效區(qū)域的像素按照位置分為四段。從左至右,這四段區(qū)域的無(wú)效區(qū)域像素值分別可以用邊界點(diǎn)A右邊、邊界點(diǎn)B左邊、邊界點(diǎn)C右邊、以及邊界點(diǎn)D左邊的像素值進(jìn)行編碼處理。通過(guò)這種編碼處理方式,可以讓無(wú)效區(qū)域其像素值與其余區(qū)域內(nèi)容更為相關(guān)來(lái)減少DCT高頻分量。
筆者通過(guò)錄制VR應(yīng)用得到了測(cè)試VR HMD的測(cè)試序列。首先按照文中提出的區(qū)域劃分算法對(duì)測(cè)試序列進(jìn)行無(wú)效區(qū)域與有效區(qū)域劃分,然后使用提出的無(wú)效區(qū)域處理方法對(duì)無(wú)效區(qū)域像素值進(jìn)行改變。圖3(a)和(b)分別顯示了編碼處理前后的視頻序列。編碼處理后的視頻已經(jīng)觀察不到桶型的邊界了。
本文使用HEVC屏幕內(nèi)容編碼的參考軟件模型HM-16.9+SCM-8.0對(duì)編碼處理前后的視頻序列進(jìn)行編碼來(lái)驗(yàn)證編碼處理算法的有效性。在編碼時(shí),量化參數(shù)QP的取值分別為22,27,32,37,使用了全幀內(nèi)編碼模式。測(cè)試結(jié)果如表1所示。從表中可以看出,經(jīng)過(guò)編碼處理以后,視頻的碼率會(huì)發(fā)生下降,而有效區(qū)域的重建質(zhì)量卻得到了提升。在QP取值為37的情況下,編碼處理后碼率節(jié)約了6.2%,而有效區(qū)域的PSNR卻提高了多達(dá)2.77dB。這些說(shuō)明了本文提出的編碼處理算法能有效地提升虛擬現(xiàn)實(shí)屏幕內(nèi)容視頻編碼的壓縮性能。
與普通的屏幕內(nèi)容視頻不同,頭戴式虛擬現(xiàn)實(shí)設(shè)備的屏幕內(nèi)容畫面分為桶性有效區(qū)域和不規(guī)則無(wú)效區(qū)域,視頻壓縮性能會(huì)受到區(qū)域間的不規(guī)則邊界的影響。為了提高頭戴式虛擬現(xiàn)實(shí)屏幕內(nèi)容視頻的幀內(nèi)編碼壓縮性能,本文提出了有效區(qū)域和無(wú)效區(qū)域的劃分方法,并進(jìn)一步提出了對(duì)無(wú)效區(qū)域像素進(jìn)行處理的方法。實(shí)驗(yàn)結(jié)果驗(yàn)證了編碼處理后該類視頻的編碼效率有所提高。