趙海武 顧 曉 陳佳玲 余玲芝
(上海大學通信與信息工程學院 上海 200444)
隨著多媒體信息技術的迅速發(fā)展,全景視頻(Panoramic Video)技術成為了信息技術領域的熱點之一,并被運用到越來越多的場景中。與傳統(tǒng)的平面視頻相比,全景視頻包含更多信息,但同時也需要更大的數(shù)據(jù)量來承載信息[1]。因此,為了推廣全景視頻的應用,高效的全景視頻壓縮技術是極其重要的。
全景視頻本質上是個包含全景的球面視頻[2],而現(xiàn)有的視頻編碼標準如HEVC、AVS2等并無對球面視頻進行處理的功能[3-4]。因為球面形式的視頻難以直接存儲和顯示,所以需按特定方法將其采樣成平面矩形視頻,以利于后續(xù)的壓縮編碼,該過程被稱為映射。
相關領域的學者已經(jīng)提出了許多將球面映射到二維平面的方法,其中最常用的是經(jīng)緯圖映射(Equirectanglar Mapping,ERM)[5]和六面體映射(Cubic Mappin,CBM)[6],這兩種方法也是大部分頭戴式設備支持的方法。然而,這兩種方法都使得視頻中存在大量冗余數(shù)據(jù),其中經(jīng)緯圖映射算法在兩極區(qū)域存在嚴重過采樣的現(xiàn)象,視頻內容被拉伸變形。
基于對現(xiàn)有映射算法的分析,本文提出了一種新的球面視頻映射算法:基于緯度分段映射算法(Latitude-Based Segmentation Mapping,LBSM),這種算法能有效降低視頻內容的變形程度,同時減少冗余數(shù)據(jù)。為了適應常用的編碼標準和提升視頻的主觀質量,本文還針對該算法的特點提出了相應的編碼策略。
在現(xiàn)有的球面映射算法中,傳統(tǒng)的方法有經(jīng)緯圖映射算法和六面體映射算法。除此之外,一些新的映射算法諸如二十面體映射(Icosahedral Mapping,ISM)[7]、雙環(huán)帶映射(Double Ring Mapping,DRM)[8]也在近幾年相繼被提出,這兩種新方法對于全景視頻的壓縮效果相較于傳統(tǒng)方法有一定提升。
經(jīng)緯圖映射算法有著操作簡單和易于實現(xiàn)的特點,也因此成為了最常用的球面映射算法。如圖1所示,經(jīng)緯圖映射算法的基本原理是對于球面上任意緯度的信息,都用相同的數(shù)據(jù)量來保存,從而將視頻從球面映射到矩形平面。在球面上,緯度越靠近赤道,則信息量越大,并且兩極和赤道的信息量差距懸殊。在赤道處需要采樣數(shù)千個像素點的情況下,在兩極處通常僅采樣幾個像素點便已足夠。而在經(jīng)緯圖映射算法中,兩極與赤道處的采樣點數(shù)是相等的,從而導致了數(shù)據(jù)冗余和內容變形。視頻內容拉伸變形的程度與緯度θ的余弦成反比,即1/cos(θ),可得兩極處變形程度為無限大。這種變形不但影響觀眾的觀看體驗,而且在后續(xù)編碼流程中難以進行運動搜索,影響到壓縮效果[8]。
(a) 球面模型 (b) 經(jīng)緯圖展開圖1 經(jīng)緯圖映射算法
為解決視頻兩極的變形問題,六面體映射算法被提出。六面體映射算法如圖2所示,即把球面映射到一個正六面體上,可得到等大的6個矩形面,并且這6個面有著較好的相鄰關系。該方法雖然降低了兩極處的變形,但同時每個矩形面邊緣處的視頻內容都被放大且變形了,從而導致觀看體驗不佳,也不利于后續(xù)的壓縮編碼[6]。
(a) 六面體分割 (b) 六面體展開圖2 六面體映射算法
綜上所述,以上兩種映射算法雖然被廣泛應用,但都存在較明顯缺陷。在理想的映射算法中,當視頻從球面映射到平面時,應避免視頻內容的嚴重變形。同時,為了保證相鄰像素塊之間的預測編碼不受影響,也應盡量保持像素間的相鄰性。根據(jù)以上要素,中國數(shù)字音視頻編解碼技術標準工作組(Audio Video coding Standard,AVS)提出并制定了新的全景視頻壓縮編碼標準(IEEE1857.9)[9],其中包括了雙環(huán)帶映射(DRM)算法和二十面體映射算法(ISM)。
與正六面體映射算法類似,ISM算法將球面映射到20個正三角形,再根據(jù)它們之間的相鄰關系將它們排布為一整個矩形。圖3展示了ISM的映射模型,由于正二十面體的外表面較為貼近球面,使得其冗余數(shù)據(jù)較少,且沒有區(qū)域存在嚴重變形的情況。然而,在將20個三角形排布為矩形的過程中,需要將一些在內容上本不相鄰的像素安排在相鄰位置,這導致像素間相鄰性變差,從而影響到幀內和幀間的預測編碼過程以及視頻內容的主觀質量[7]。
(a) 正二十面體分割 (b) 排列前 (c) 排列后圖3 ISM映射算法
DRM算法依據(jù)球面本身的幾何特征,通過兩個相互正交的環(huán)形區(qū)域將整個球面分割為14個大小相近的不同區(qū)域后,再進一步映射到14個大小完全相等的矩形,每個矩形各自對應一個區(qū)域,并最終將它們排布成一整個更大的矩形。圖4所示為DRM算法的映射模型,通過DRM映射得到的14個矩形,其總體的冗余數(shù)據(jù)量和形變程度都較小,但也有少數(shù)存在較大形變的區(qū)域,使得觀看這些特定區(qū)域時的觀感較差。另外,在總共14個矩形的排布過程中,需要把其中3個矩形截下一部分并填補到別處,這也降低了視頻內容的像素間相鄰性[8]。
(a) 雙環(huán)帶分割 (b) 排列前 (c) 排列后圖4 DRM映射算法
綜合上述多種映射算法的優(yōu)缺點,為了減少全景視頻內容的拉伸變形,以及更好地保持像素間的相鄰性,同時兼顧視頻的主觀質量,本文提出了一種新的全景視頻映射算法,名為基于緯度分段映射算法。
除了映射算法,全景視頻還需要特定的質量評價方法。因為映射后的全景視頻在不同區(qū)域的采樣密度不同,所以傳統(tǒng)的失真計算方法PSNR并不適用于全景視頻。為解決該問題,針對全景視頻的失真計算方法SPSNR[10]和WSPSNR[11]被提出。SPSNR取球面上均勻分布的大量像素點,并計算它們的PSNR。而WSPSNR則在計算全景視頻的PSNR時,為每個像素點分配相應的權重。在本文的實驗中,使用SPSNR和WSPSNR代替PSNR。
本文提出的基于緯度分段映射算法,其基本原理是用4條緯線將包含全景的球面分割成5個部分,然后對各部分分別用不同方式進行采樣。首先,如圖5所示,分割后的5個部分,從北極到南極依次記為S1、S2、S3、S4、S5,它們各自對應了球面上不同的緯度范圍。假設南極極點的緯度為-90°,北極極點的緯度為90°,那么S1、S2、S3、S4、S5對應的緯度范圍分別是90°到70°、70°到30°、30°到-30°、-30°到-70°、-70°到-90°。
圖5 球面切分
接著,如圖6所示,其中的坐標系內被實線包圍的區(qū)域是球面沿緯線平鋪展開后的形狀。為了降低球面映射到平面后拉伸變形的程度,球面經(jīng)過采樣后的形狀應盡可能地貼近該實線。因此,對于信息量較小的高緯度處應采樣較少點數(shù),而對于信息量較大的低緯度處應采樣較多點數(shù),從而使得球面上不同緯度處的采樣密度盡可能均勻。
圖6 球面展開
假設圖6中球面赤道的采樣點數(shù)為M,兩極之間一共有N行采樣點,將從北極到南極的第i行采樣點記作L(i),1≤i≤N。根據(jù)S1、S2、S3、S4、S5各自的緯度范圍,則它們對應的行分別為L(1)到L(N/9)、L(N/9+1)到L(N/3)、L(N/3+1)到L(2N/3)、L(2N/3+1)到L(8N/9)、L(8N/9+1)到L(N)。
進一步,為每行采樣點設計合適的采樣點數(shù)C(i),經(jīng)過采樣后的形狀如圖6中坐標系內虛線所示,C(i)可由下式得到:
(1)
通過以上采樣方案,實現(xiàn)了對球面的較為均勻的采樣,從而減少了圖像的冗余數(shù)據(jù)和拉伸變形。
經(jīng)本方案采樣后,可得到寬M、高N且包含空白區(qū)域的平面圖。通過調整S1、S2、S3、S4、S5各個部分的像素位置,可以將該平面圖排布成一個寬M、高N7/9且不包含空白區(qū)域的矩形。
S1的像素排布方法如圖7所示,當N=27時,S1包含3行像素點。通過像素的水平位移,S1變?yōu)?個小三角形,它們分別由數(shù)字1、2、3、4標識。再對這4個三角形分別進行旋轉和平移,即可組成一個正方形。S5的像素排布方法與S1同理。
圖7 S1、S5像素排布方法,N=27
S2、S3、S4的像素排布方式如圖8所示,其中N=13.5。S2包含了由數(shù)字1、2標識的像素點,S3包含了由數(shù)字3標識的像素點,S4包含了由數(shù)字4、5標識的像素點。將由2標識的三角形通過平移和旋轉拼接到S2的左側,并用同樣的方法將由5標識的三角形拼接到S4的左側,S3的像素點位置保持不變。如圖8所示,此時在右上角和右下角各留有一塊正方形的空白區(qū)域。
圖8 S2、S3、S4像素排布方法,N=13.5
最后,將由S1得到的正方形拼接到S2、S3、S4的右上角,由S5得到的正方形拼接到S2、S3、S4的右下角。如此就得到了一個緊湊的、沒有空白區(qū)域的矩形。圖9展示了對某全景圖像的排布過程,它保持了較好的像素間相鄰性,僅在右上角和右下角存在少量不連續(xù)的內部邊界。
圖9 LBSM排布過程
經(jīng)過像素排布的步驟之后,圖像內部通常會存在邊界。在編碼時,這些內部邊界任意一側的像素都會受到另一側像素影響而產生突變,導致視頻的主觀質量降低。
在本文的方法中,圖像在經(jīng)過排布后雖然消除了空白區(qū)域,但是S1和S2、S3之間仍然存在內邊界,S5和S3、S4之間亦存在相同情況。這時可以通過在映射和編碼兩個步驟之間,加入一個擴邊的步驟來降低甚至消除內邊界對視頻主觀質量的影響。
最常見的擴邊方法是對邊界處像素進行簡單復制,但這并不適用于圖像內部邊界的擴邊。不同于可以直接向外擴充的外邊界,在對內邊界進行擴充之前,要先在內邊界兩側留出適量空檔用于填入擴充的像素點,否則原有像素會被擴充的像素覆蓋。因此對式(1)進行修改,調整S1、S2、S4、S5的比例使排布后的內邊界兩側空出一定區(qū)域,由此得到如下公式,其中W是空檔的寬度,如圖10(a)所示,在本文方法中W=16。
(2)
(a) 預留空檔示意圖 (b) 相鄰像素塊示意圖圖10 內邊界擴邊方法
由于全景視頻包含了整個球面上的信息,而球面是一個無縫的面,球面上任意像素在它四周所有方向都能找到與之相鄰的像素,所以可在球面上找到與內邊界相鄰的像素塊。如圖10(b)所示,將與內邊界相鄰的6塊像素塊A、B、C、D、E、F填充到A’、B’、C’、D’、E’、F’的位置。其中B、C、E、F和B’、C’、E’、F’的分辨率可能不同,這種情況下重新對B、C、E、F進行采樣即可。最后,為了避免擴充的像素點與原有的像素點混淆,應在解碼后的視頻中舍去擴充的像素點。
本文采用IEEE1857.9通測條件[9]進行實驗,其中一共有12個測試序列,包括8個4 K序列和4個8 K序列,均以ERM形式存儲。在測試過程中,用ERM序列模擬原始球面,將8 K序列映射到4 K序列數(shù)據(jù)量,將4 K序列映射到3 K序列數(shù)據(jù)量,然后用IEEE1857.9參考編碼器RD16.1進行編碼(本文中3 K為3 072×1 536分辨率,4 K為4 096×2 048分辨率,8 K為8 192×4 096分辨率)。編碼性能用BD-rate度量,并且使用全景視頻峰值信噪比計算方法SPSNR和WSPSNR代替PSNR。用于計算BD-rate的編碼器QP參數(shù)則取27、32、38和45這四個測試點。
圖11所示為測試流程圖,由于ERM是最常用的映射算法,因此將其作為基準算法與本文算法進行比較,同時一起進行比較的算法還有最新的DRM和ISM算法。表1和表2分別展示了用SPSNR和WSPSNR代替PSNR的情況下,各個映射算法相對于ERM的BD-rate。
圖11 全景視頻映射方法測試流程圖
序列名ISM/%DRM/%LBSM/%Fengjing1-24.50-25.17-27.59Fengjing3-12.88-17.35-22.87Hangpai1-6.84-9.28-9.73Hangpai2-12.28-14.88-8.90Hangpai3-5.11-9.30-8.88Xinwen13.040.25-1.86Xinwen27.943.62-0.55Yanchanghui27.42-1.59-8.18THEPLACE7.875.74-3.24Natatorium-9.46-10.26-10.32Highway-31.12-25.00-26.16Canolafield-8.14-0.15-8.45Average-7.01-8.61-11.39
表2 用WSPSNR時各映射算法相對于基準算法的BD-Rate
由表1、表2可知,在使用SPSNR和WSPSNR的情況下,LBSM算法比ERM分別節(jié)省了11.39%和11.76%的碼率,比ISM分別多節(jié)省了4.38%和3.08%的碼率,比DRM分別多節(jié)省了2.78%和1.95%的碼率。同時,DRM對內容相對靜止的序列的壓縮效果較差,ISM則對運動明顯的序列壓縮效果不佳,而LBSM對于運動明顯和不明顯的序列都有較好壓縮效果。因此,LBSM的適用范圍更廣。綜上所述,本文提出的LBSM算法不僅明顯優(yōu)于常用的ERM算法,也優(yōu)于最新的DRM算法和ISM算法。
除客觀效果外,圖12還展示了LBSM算法的主觀效果,其中黑色方框內的部分是一處內邊界所在位置。圖12(a)對應未使用擴邊的方法,可看到明顯痕跡;圖12(b)對應使用擴邊的方法,用肉眼難以看到痕跡,顯然擴邊方法對全景視頻主觀質量有顯著改善。
(a) 無擴邊主觀效果 (b) 有擴邊主觀效果圖12 LBSM主觀視覺效果圖
本文提出了一種有效的全景視頻映射算法,通過設計球面映射到平面后每行像素的采樣點數(shù)實現(xiàn)對球面較為均勻的采樣,然后將所有像素排布為一個緊湊的矩形,最后通過擴邊來提升視頻的主觀質量。實驗數(shù)據(jù)表明,本文算法的編碼性能比ERM算法有了極大提升,同時也優(yōu)于最新的DRM和ISM算法。
實際上,全景視頻的壓縮效率與映射和編碼兩者都有關,而本文所述算法僅局限于映射部分,并未對編碼部分做改進,這也是全景視頻映射算法的欠缺之處。關于編碼部分的改進,還有待進一步的研究。