本發(fā)明涉及視頻編碼領(lǐng)域,特別是涉及一種三維視頻編碼方法和裝置。
背景技術(shù):
:隨著數(shù)字媒體技術(shù)的快速發(fā)展及生活水平的不斷提高,人們對于視頻觀看提出了更高的要求,以固定視點觀看的傳統(tǒng)平面(二維)視頻,已無法滿足人們的需求。三維電視和自由視點視頻應運而生,三維電視和自由視點視頻增加了場景對象的深度信息,使圖像不再局限于顯示屏平面,仿佛能夠走出顯示屏,使用戶感受到深度感和沉浸感。多視點視頻加深度(Multi-viewVideoplusDepth,MVD)的這種三維場景表示方式已逐漸成為多媒體系統(tǒng)中主流數(shù)據(jù)表示格式,MVD視頻數(shù)據(jù)包含多通道彩色與深度視頻,數(shù)據(jù)量是傳統(tǒng)平面2D視頻的幾十倍甚至上百倍,對媒體計算平臺的信號處理、傳輸和存儲提出了重大挑戰(zhàn)。為了有效壓縮MVD巨大的數(shù)據(jù)量,3D視頻聯(lián)合專家組(JointCollaborativeTeamon3DVideo,JCT-3V)著重推進基于高效視頻編碼標準(HighEfficiencyVideoCoding,HEVC)的三維視頻研究以及多視點視頻標準化,即3D-HEVC。其采用了基于率失真優(yōu)化的運動預測和模式選擇技術(shù),以及其他一系列先進的視頻編解碼技術(shù)。三維視頻除了傳輸視點外,在用戶端還需要綜合利用彩色信息與深度信息獲得虛擬視點視頻圖像信息,以供三維顯示裝置顯示較佳的三維效果?,F(xiàn)有的編碼中,率失真優(yōu)化只考慮了傳輸視點圖像失真,而沒有考慮合成的虛擬視點失真,三維視頻的主、客觀質(zhì)量不能達到最優(yōu)。技術(shù)實現(xiàn)要素:基于此,有必要針對上述技術(shù)問題,提供一種三維視頻編碼方法和裝置,能提高三維編碼視頻的主、客觀質(zhì)量從而提高三維視頻的編碼效率。一種三維視頻編碼方法,待編碼三維視頻包括多視點彩色視頻和多視點深度視頻,多視點彩色視頻包括多個視點不同時刻的彩色視頻幀,多視點深度視 頻包括多個視點不同時刻的深度視頻幀,將深度視頻幀和彩色視頻幀分為A視頻幀和B視頻幀,同一視點同一時刻的彩色視頻幀和深度視頻幀中先編碼的視頻幀為A視頻幀,后編碼的視頻幀為B視頻幀,將A視頻幀分割得到A視頻塊后進行編碼得到已編碼A視頻塊,將待編碼B視頻幀按照和A視頻幀相同的分割方式得到B視頻塊為待編碼塊,所述方法包括:步驟S110:獲取由所述B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的虛擬繪制塊或獲取所述B視頻塊對應的虛擬視點圖像塊,將所述虛擬繪制塊或虛擬視點圖像塊作為參考塊;步驟S120:將所述B視頻塊在當前編碼模式下進行編碼得到預編碼B視頻塊;步驟S130:獲取由所述預編碼B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的重建虛擬繪制塊;步驟S140:計算所述參考塊和重建虛擬繪制塊在空間方向上的空域失真,計算所述參考塊和重建虛擬繪制塊在時間方向上的時域失真,將空域失真和時域失真進行融合得到繪制失真;步驟S150:載入B視頻幀的拉格朗日乘子,獲取編碼后的B視頻塊的預編碼比特數(shù),根據(jù)所述繪制失真、拉格朗日乘子和預編碼比特數(shù)計算得到率失真代價;步驟S160:遍歷所有編碼模式重復步驟S120至步驟S150,比較率失真代價,將率失真代價最小的編碼模式作為所述B視頻塊的最佳編碼模式;獲取下一個B視頻塊重復步驟S110至步驟S160,直到待編碼B視頻幀包含的所有B視頻塊編碼完成。在其中一個實施例中,所述計算所述參考塊和重建虛擬繪制塊在時間方向上的時域失真的步驟包括:獲取所述參考塊BCVS(i,j,t)在之前時刻所對應的前向參考塊BCVS(i,j,t-k),其中i表示塊位置橫向坐標,j表示塊位置縱向位置坐標,t表示時刻,k表示時刻索引,k>0;獲取所述重建虛擬繪制塊在之前時刻所對應的前向重建繪制塊計算所述參考塊BCVS(i,j,t)和前向參考塊BCVS(i,j,t-k)不同像素位置的第一亮度像素差異其中ii,jj為像素位置索引值,0≤ii≤M-1,0≤jj≤N-1,M表示參考塊的水平寬度,N表示參考塊的豎直高度;計算所述重建虛擬繪制塊和前向重建繪制塊不同像素位置的第二亮度像素差異在參考塊的像素范圍內(nèi)計算所述第一亮度像素差異和對應的第二亮度像素差異的變化平均值得到所述時域失真。在其中一個實施例中,所述計算所述參考塊和重建虛擬繪制塊在時間方向上的時域失真的步驟包括:根據(jù)公式計算得到所述時域失真其中IVS(i+ii,j+jj,t)為參考塊BCVS(i,j,t)在像素位置(i+ii,j+jj)的亮度像素值,IVS(i+ii,j+jj,t-k)為前向參考塊BCVS(i,j,t-k)在像素位置(i+ii,j+jj)的亮度像素值,為重建虛擬繪制塊在像素位置(i+ii,j+jj)的亮度像素值,為前向重建虛擬繪制塊在像素位置(i+ii,j+jj)的亮度像素值。在其中一個實施例中,在所述載入B視頻幀的拉格朗日乘子的步驟之前包括:獲取所述B視頻幀之前時刻所對應的前向A視頻幀和前向B視頻幀,并進行繪制得到虛擬繪制幀;獲取所述B視頻幀之前時刻所對應的前向重建A視頻幀和前向重建B視頻幀,并進行繪制得到重建虛擬繪制幀;計算所述虛擬繪制幀和重建虛擬繪制幀在空間方向上的幀空域失真,計算所述虛擬繪制幀和重建虛擬繪制幀在時間方向上的幀時域失真,將幀空域失真 和幀時域失真進行融合得到幀繪制失真;通過公式計算得到B視頻幀的拉格朗日乘子λ(n,t),其中R(n,t′)為B視頻幀之前時刻的前向B視頻幀F(xiàn)(n,t′)編碼后的比特數(shù),φ1(n,t′)為所述幀空域失真,QVS(n,t′)為所述幀繪制失真,n表示視點索引,t′表示B視頻幀之前的時刻。在其中一個實施例中,所述將空域失真和時域失真進行融合得到繪制失真的步驟為:通過計算得到繪制失真DVS(i,j),其中表示空域失真,表示時域失真,ω為加權(quán)系數(shù),其中0≤ω≤1;所述將幀空域失真和幀時域失真進行融合得到幀繪制失真的步驟為:將所述繪制失真以幀為單位相加得到幀繪制失真。在其中一個實施例中,在所述載入B視頻幀的拉格朗日乘子的步驟之前包括步驟之前,還包括:計算所述前向A視頻幀和對應的前向重建A視頻幀在空間方向上的前向編碼失真Q′(n,t′);將前向編碼失真Q′(n,t′)和幀繪制失真QVS(n,t′)通過公式Q(n,t′)=(1-α)·Q′(n,t′)+α·QVS(n,t′)得到幀編碼失真Q(n,t′),其中0≤α≤1;通過公式計算得到拉格朗日乘子,其中R(n,t′)為B視頻幀之前時刻的前向B視頻幀F(xiàn)(n,t′)編碼后的比特數(shù),n表示視點索引,t′表示時刻。在其中一個實施例中,所述方法還包括:在待編碼三維視頻包括的多視點彩色視頻和多視點深度視頻編碼完成后,在所有視點和所有時刻范圍內(nèi),進行以下步驟:依次獲取彩色視頻幀和深度視頻幀進行繪制得到第n個視點和t時刻對應的 虛擬視頻繪制幀F(xiàn)VS(n,t)或依次獲取第n個視點和t時刻的B視頻幀對應的虛擬視點圖像幀CVS(n,t),將虛擬視頻繪制幀F(xiàn)VS(n,t)或虛擬視點圖像幀CVS(i,j)作為參考幀F(xiàn)CVS(n,t),其中0<n<N-1,0<t<T-1;依次獲取重建彩色視頻幀和重建深度視頻幀進行繪制得到第n個視點和t時刻的重建虛擬視頻繪制幀依次計算所述參考幀和重建虛擬視頻繪制幀在時間方向上第n個視點和t時刻的時域失真φ1(n,t);依次計算所述參考幀和重建虛擬視頻繪制幀在空間方向上第n個視點和t時刻對應的空域失真φ2(n,t);依次將時域失真φ1(n,t)和空域失真φ2(n,t)進行加權(quán)得到第n個視點和t時刻的視頻繪制失真QVS(n,t);依次分別計算A視頻幀和重建A視頻幀在空間方向上第n個視點和t時刻的視頻編碼失真Q′(n,t);依次將視頻繪制失真QVS(n,t)和視頻編碼失真Q′(n,t)進行融合得到第n個視點和t時刻的視頻失真Q(n,t);根據(jù)公式計算得到三維視頻編碼失真一種三維視頻編碼裝置,待編碼三維視頻包括多視點彩色視頻和多視點深度視頻,多視點彩色視頻包括多個視點不同時刻的彩色視頻幀,多視點深度視頻包括多個視點不同時刻的深度視頻幀,將深度視頻幀和彩色視頻幀分為A視頻幀和B視頻幀,同一視點同一時刻的彩色視頻幀和深度視頻幀中先編碼的視頻幀為A視頻幀,后編碼的視頻幀為B視頻幀,將A視頻幀分割得到A視頻塊后進行編碼得到已編碼A視頻塊,將待編碼B視頻幀按照和A視頻幀相同的分割方式得到B視頻塊為待編碼塊,其特征在于,所述裝置包括:參考塊獲取模塊,用于獲取由所述B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的虛擬繪制塊或獲取所述B視頻塊對應的虛擬視點圖像 塊,將所述虛擬繪制塊或虛擬視點圖像塊作為參考塊;預編碼模塊,用于將所述B視頻塊在當前編碼模式下進行編碼得到預編碼B視頻塊;重建虛擬繪制塊獲取模塊,用于獲取由所述預編碼B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的重建虛擬繪制塊;繪制失真模塊,用于計算所述參考塊和重建虛擬繪制塊在空間方向上的空域失真,計算所述參考塊和重建虛擬繪制塊在時間方向上的時域失真,將空域失真和時域失真進行融合得到繪制失真;率失真代價計算模塊,用于載入B視頻幀的拉格朗日乘子,獲取編碼后的B視頻塊的預編碼比特數(shù),根據(jù)所述繪制失真、拉格朗日乘子和預編碼比特數(shù)計算得到率失真代價;最佳編碼模式得到模塊,用于遍歷所有編碼模式重復進入預編碼模塊至率失真代價計算模塊,比較率失真代價,將率失真代價最小的編碼模式作為所述B視頻塊的最佳編碼模式;重復編碼模塊,用于獲取下一個B視頻塊,重復進入?yún)⒖級K獲取模塊至最佳編碼模式得到模塊,直到待編碼B視頻幀包含的所有B視頻塊編碼完成。在其中一個實施例中,所述繪制失真模塊包括:前向參考塊獲取單元,用于獲取所述參考塊BCVS(i,j,t)在之前時刻所對應的前向參考塊BCVS(i,j,t-k),其中i表示塊位置橫向坐標,j表示塊位置縱向位置坐標,t表示時刻,k表示時刻索引,k>0;前向重建繪制塊獲取單元,用于獲取所述重建虛擬繪制塊在之前時刻所對應的前向重建繪制塊第一亮度像素差異計算單元,用于計算所述參考塊BCVS(i,j,t)和前向參考塊BCVS(i,j,t-k)不同像素位置的第一亮度像素差異其中ii,jj為像素位置索引值,0≤ii≤M-1,0≤jj≤N-1,M表示參考塊的水平寬度,N表示參考塊的豎直高度;第二亮度像素差異計算單元,用于計算所述重建虛擬繪制塊和前向 重建繪制塊不同像素位置的第二亮度像素差異時域失真計算單元,用于在參考塊的像素范圍內(nèi)計算所述第一亮度像素差異和對應的第二亮度像素差異的變化平均值得到所述時域失真。在其中一個實施例中,所述裝置還包括:三維視頻質(zhì)量評價模塊,用于在待編碼三維視頻包括的多視點彩色視頻和多視點深度視頻編碼完成后,在所有視點和所有時刻范圍內(nèi),依次獲取彩色視頻幀和深度視頻幀進行繪制得到第n個視點和t時刻對應的虛擬視頻繪制幀F(xiàn)VS(n,t)或依次獲取第n個視點和t時刻的B視頻幀對應的虛擬視點圖像幀CVS(n,t),將虛擬視頻繪制幀F(xiàn)VS(n,t)或虛擬視點圖像幀CVS(i,j)作為參考幀F(xiàn)CVS(n,t),其中0<n<N-1,0<t<T-1,依次獲取重建彩色視頻幀和重建深度視頻幀進行繪制得到第n個視點和t時刻的重建虛擬視頻繪制幀依次計算所述參考幀和重建虛擬視頻繪制幀在時間方向上第n個視點和t時刻的時域失真φ1(n,t),依次計算所述參考幀和重建虛擬視頻繪制幀在空間方向上第n個視點和t時刻對應的空域失真φ2(n,t),依次將時域失真φ1(n,t)和空域失真φ2(n,t)進行加權(quán)得到第n個視點和t時刻的視頻繪制失真QVS(n,t),依次分別計算A視頻幀和重建A視頻幀在空間方向上第n個視點和t時刻的視頻編碼失真Q′(n,t),依次將視頻繪制失真QVS(n,t)和視頻編碼失真Q′(n,t)進行融合得到第n個視點和t時刻的視頻失真Q(n,t),根據(jù)公式計算得到三維視頻編碼失真上述三維視頻編碼方法和裝置,通過獲取由B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的虛擬繪制塊或獲取所述B視頻塊對應的虛擬視點圖像塊,將虛擬繪制塊或虛擬視點圖像塊作為參考塊,將B視頻塊在當前編碼模式下進行編碼得到預編碼B視頻塊,獲取由預編碼B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的重建虛擬繪制塊,計算參考塊和重 建虛擬繪制塊在空間方向上的空域失真,計算參考塊和重建虛擬繪制塊在時間方向上的時域失真,將空域失真和時域失真進行融合得到繪制失真,載入B視頻幀的拉格朗日乘子,獲取編碼后的B視頻塊的預編碼比特數(shù),根據(jù)繪制失真、拉格朗日乘子和預編碼比特數(shù)計算得到率失真代價,遍歷所有編碼模式重復編碼,比較率失真代價,將率失真代價最小的編碼模式作為B視頻塊的最佳編碼模式,獲取下一個B視頻塊重復編碼,直到待編碼B視頻幀包含的所有B視頻塊編碼完成。在編碼過程中,率失真代價的計算考慮了繪制失真,更好地符合人眼視覺系統(tǒng)的3D感知效果,使編碼器得到更準確的最佳編碼模式進行編碼,能提高編碼后的虛擬視點視頻圖像質(zhì)量,能提高三維編碼視頻的主、客觀質(zhì)量從而提高三維視頻的編碼效率。附圖說明圖1為三維多視點視頻系統(tǒng)示意圖;圖2為一個實施例中三維視頻編碼方法的流程圖;圖3為一個實施例中計算時域失真的流程圖;圖4為一個實施例中拉格朗日乘子計算方法的流程圖;圖5為另一個實施例中拉格朗日乘子計算方法的流程圖;圖6為一個實施例中三維視頻編碼失真計算方法的流程圖;圖7為一個實施例中三維視頻編碼裝置的結(jié)構(gòu)框圖;圖8為一個實施例中率失真代價計算模塊的結(jié)構(gòu)框圖;圖9為另一個實施例中三維視頻編碼裝置的結(jié)構(gòu)框圖;圖10為各序列在不同三維視頻編碼方法下的率失真性能曲線圖。具體實施方式三維多視點視頻系統(tǒng)如圖1所示,其主要包括采集、視頻編碼、網(wǎng)絡傳輸、視頻解碼、視點繪制和3D(三維)顯示模塊,三維視頻編碼方法可運行于此系統(tǒng)。通過攝像頭采集生成原始多視點視頻,包括彩色視頻和深度視頻,攝像頭還可以采集虛擬視點視頻,虛擬視點視頻是由原始左視點視頻和原始右視點視頻中 間位置的攝像頭采集的視頻,不需要經(jīng)過編碼,只用于進行參考。經(jīng)過多視點視頻編碼器編碼生成碼流,經(jīng)過存儲和傳輸,再經(jīng)過多視點視頻解碼器解碼生成重建多視點視頻,同樣包括重建彩色視頻和深度視頻,再經(jīng)過虛擬視點繪制后進行顯示。如圖2所示,提供了一種三維視頻編碼方法,包括以下步驟:步驟S110,獲取由所述B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的虛擬繪制塊或獲取所述B視頻塊對應的虛擬視點圖像塊,將虛擬繪制塊或虛擬視點圖像塊作為參考塊。具體的,待編碼三維視頻包括多視點彩色視頻和多視點深度視頻,多視點彩色視頻包括n視點t時刻的彩色視頻幀為Fc(n,t),多視點深度視頻包括n視點t時刻的深度視頻幀為Fd(n,t)。同一視點同一時刻的彩色視頻幀F(xiàn)c(n,t)和深度視頻幀F(xiàn)d(n,t)的編碼順序可以自定義,先編碼的視頻幀為A視頻幀,后編碼的視頻幀為B視頻幀,如果先編碼彩色視頻幀F(xiàn)c(n,t),則彩色視頻幀F(xiàn)c(n,t)為A視頻幀,深度視頻幀F(xiàn)d(n,t)為B視頻幀。如果先編碼深度視頻幀F(xiàn)d(n,t),則深度視頻幀F(xiàn)d(n,t)為A視頻幀,彩色視頻幀F(xiàn)c(n,t)為B視頻幀。對A視頻幀采取塊處理方式進行編碼,進行分割后得到A視頻塊,將A視頻塊進行編碼得到已編碼A視頻塊,至于A視頻塊采用何種方法獲取最佳編碼模式不限定,如可以采用傳統(tǒng)的編碼方法對A視頻塊進行編碼。將待編碼B視頻幀按照和A視頻幀相同的分割方式得到B視頻塊為待編碼塊。坐標位置為i,j的A視頻塊記為A'(i,j),已編碼A視頻塊記為坐標位置為i,j的B視頻塊記為B(i,j),BVS(i,j)為由A視頻塊A'(i,j)或已編碼A視頻塊和B視頻塊B(i,j)進行繪制得到的坐標位置為i,j的虛擬繪制塊。將與n視點對應的虛擬視點視頻t時刻的虛擬視點視頻幀按照和A視頻幀相同的分割方式得到虛擬視點圖像塊,獲取坐標位置為i,j的虛擬視點圖像塊CVS(i,j),將虛擬繪制塊BVS(i,j)或虛擬視點圖像塊CVS(i,j)作為參考塊BCVS(i,j)。步驟S120,將B視頻塊在當前編碼模式下進行編碼得到預編碼B視頻塊。具體的,編碼模式是指編碼時與預測方法對應的預測模式,編碼模式往往有多種,如幀內(nèi)編碼模式,幀間編碼模式等。在編碼時遍歷所有的編碼模式或 根據(jù)需要選擇需要的編碼模式快速遍歷。在遍歷時,當前編碼采用的編碼模式為當前編碼模式,對B視頻塊B(i,j)在當前編碼模式下進行編碼得到預編碼B視頻塊步驟S130,獲取由預編碼B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的重建虛擬繪制塊。具體的,將預編碼B視頻塊和已編碼A視頻塊或未編碼A視頻塊A'(i,j)進行繪制得到的坐標位置為i,j的重建虛擬繪制塊步驟S140,計算參考塊和重建虛擬繪制塊在空間方向上的空域失真,計算參考塊和重建虛擬繪制塊在時間方向上的時域失真,將空域失真和時域失真進行融合得到繪制失真。具體的,根據(jù)參考塊BCVS(i,j)和重建虛擬繪制塊分別計算空域失真和時域失真然后將空域失真和時域失真進行融合得到繪制失真DVS(i,j)。計算公式如下:其中f2(·)為空域失真計算函數(shù),f3(·)為時域失真計算函數(shù),ω為系數(shù),其取值范圍為0≤ω≤1。可以理解的是,空域失真計算函數(shù)和時域失真計算函數(shù)可以根據(jù)需要自行設計。在一個實施例中,計算參考塊和重建虛擬繪制塊在時間方向上的時域失真的步驟包括:步驟S141,獲取參考塊BCVS(i,j,t)在之前時刻所對應的前向參考塊BCVS(i,j,t-k),其中i表示塊位置橫向坐標,j表示塊位置縱向位置坐標,t表示時刻,k表示時刻索引,k>0。步驟S142,獲取重建虛擬繪制塊在之前時刻所對應的前向重建繪制塊步驟S143,計算參考塊BCVS(i,j,t)和前向參考塊BCVS(i,j,t-k)不同像素位置 的第一亮度像素差異其中ii,jj為像素位置索引值,0≤ii≤M-1,0≤jj≤N-1,M表示參考塊的水平寬度,N表示參考塊的豎直高度。具體的,可根據(jù)需要自定義第一亮度像素差異的計算公式。如通過直接將參考塊BCVS(i,j,t)和前向參考塊BCVS(i,j,t-k)對應位置像素值相減得到各個像素點的差異像素值作為第一亮度像素差異,或再將差異像素值進行平方計算得到第一亮度像素差異。步驟S144,計算重建虛擬繪制塊和前向重建繪制塊不同像素位置的第二亮度像素差異具體的,可根據(jù)需要自定義第二亮度像素差異的計算公式。如通過直接將重建虛擬繪制塊和前向重建繪制塊對應位置像素值相減得到各個像素點的差異像素值作為第二亮度像素差異,或再將差異像素值進行平方計算得到第二亮度像素差異。步驟S145,在參考塊的像素范圍內(nèi)計算所述第一亮度像素差異和對應的第二亮度像素差異的變化平均值得到所述時域失真。具體的,可自定義變化平均值的計算公式,如直接將第一亮度像素差異和對應的第二亮度像素差異的差值的絕對值在塊的范圍內(nèi)相加,再除以塊的面積得到時域失真,或者將差值的絕對值進行平方計算再在塊的范圍內(nèi)相加再除以塊的面積得到時域失真。在一個實施例中,由公式計算得到所述時域失真其中IVS(i+ii,j+jj,t)為參考塊BCVS(i,j,t)在像素位置(i+ii,j+jj)的亮度像素值,IVS(i+ii,j+jj,t-k)為前向參考塊BCVS(i,j,t-k)在像素位置(i+ii,j+jj)的亮度像素值,為重建虛擬繪制塊在像素位置(i+ii,j+jj)的亮度像素值,為前向重建虛擬繪制塊在像素位置(i+ii,j+jj)的亮度像素值。步驟S150,載入B視頻幀的拉格朗日乘子,獲取編碼后的B視頻塊的預編碼比特數(shù),根據(jù)繪制失真、拉格朗日乘子和預編碼比特數(shù)計算得到率失真代價。具體的,不具體限定率失真代價的具體計算方法,只要計算率失真代價時使用了繪制失真DVS(i,j)都在本方法的保護范圍內(nèi)。在一個實施例中,率失真代價的計算公式為其中λ(n,t)為載入的n視點t時刻的B視頻幀對應的拉格朗日乘子,為B視頻塊B(i,j)預編碼后的比特數(shù),J為B視頻塊B(i,j)的率失真代價。步驟S160,遍歷所有編碼模式重復步驟S120至步驟S150,比較率失真代價,將率失真代價最小的編碼模式作為B視頻塊的最佳編碼模式。具體的,對B視頻塊遍歷所有的編碼模式,得到不同編碼模式下的重建虛擬繪制塊,重復步驟S120至步驟S150,選擇率失真代價最小的模式為B視頻塊的最佳編碼模式。步驟S170,獲取下一個B視頻塊重復步驟S110至步驟S160,直到待編碼B視頻幀包含的所有B視頻塊編碼完成。本實施例中,通過獲取由B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的虛擬繪制塊或獲取所述B視頻塊對應的虛擬視點圖像塊,將虛擬繪制塊或虛擬視點圖像塊作為參考塊,將B視頻塊在當前編碼模式下進行編碼得到預編碼B視頻塊,獲取由預編碼B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的重建虛擬繪制塊,計算參考塊和重建虛擬繪制塊在空間方向上的空域失真,計算參考塊和重建虛擬繪制塊在時間方向上的時域失真,將空域失真和時域失真進行融合得到繪制失真,載入B視頻幀的拉格朗日乘子,獲取編碼后的B視頻塊的預編碼比特數(shù),根據(jù)繪制失真、拉格朗日乘子和預編碼比特數(shù)計算得到率失真代價,遍歷所有編碼模式重復編碼,比較率失真代價,將率失真代價最小的編碼模式作為B視頻塊的最佳編碼模式,獲取下一個B視頻塊重復編碼,直到待編碼B視頻幀包含的所有B視頻塊編碼完成。在編碼過程中,率失真代價的計算考慮了繪制失真,更好地符合人眼視覺系統(tǒng)的3D感知 效果,使編碼器得到更準確的最佳編碼模式進行編碼,能提高編碼后的虛擬視點視頻圖像質(zhì)量,能提高三維編碼視頻的主、客觀質(zhì)量從而提高三維視頻的編碼效率。在一個實施例中,如圖4所示,步驟S150之前還包括:步驟S210,獲取所述B視頻幀之前時刻所對應的前向A視頻幀和前向B視頻幀,并進行繪制得到虛擬繪制幀。具體的,若t為B視頻幀所在時刻,則t′<t表示B視頻幀之前的時刻,將t′時刻對應的前向A視頻幀F(xiàn)a(n,t′)和前向B視頻幀F(xiàn)b(n,t′)進行繪制得到的虛擬繪制幀F(xiàn)VS(n,t′)。優(yōu)選的,可取前一幀所在時刻。步驟S220,獲取B視頻幀之前時刻所對應的前向重建A視頻幀和前向重建B視頻幀,并進行繪制得到重建虛擬繪制幀。具體的,獲取B視頻幀之前時刻所對應的前向重建A視頻幀和前向重建B視頻幀將前向重建A視頻幀和前向重建B視頻幀進行繪制得到的重建虛擬繪制幀步驟S230,計算虛擬繪制幀和重建虛擬繪制幀在空間方向上的幀空域失真,計算虛擬繪制幀和重建虛擬繪制幀在時間方向上的幀時域失真,將幀空域失真和幀時域失真進行融合得到幀繪制失真。具體的,根據(jù)虛擬繪制幀F(xiàn)VS(n,t′)和重建虛擬繪制幀分別計算幀空域失真φ1(n,t′)和幀時域失真φ2(n,t′),然后將幀空域失真φ1(n,t′)和幀時域失真φ2(n,t′)進行融合得到幀繪制失真QVS(n,t′)。計算公式如下:QVS(n,t′)=(1-ω)·φ1(n,t′)+ω·φ2(n,t′)φ1(n,t′)=f2′(FVS(n,t′),F^VS(n,t′))]]>φ2(n,t′)=f3′(FVS(n,t′),F^VS(n,t′))]]>其中f2′(·)為空域失真計算函數(shù),f3′(·)為時域失真計算函數(shù),ω為加權(quán)系數(shù),其取值范圍為0≤ω≤1??梢岳斫獾氖?,空域失真計算函數(shù)和時域失真計算函數(shù)可以根據(jù)需要自行設計。在一個實施例中,φ1(n,t′)=1W×HΣx=0W-1Σy=0H-1[I^VS(x,y)-IVS(x,y)]2φ2(n,t′)=1W×HΣx=0W-1Σy=0H-1[▿I^VS(x,y)-▿IVS(x,y)]2▿I(x,y)=It′(x,y)-It′-1(x,y),]]>其中IVS(x,y)為虛擬繪制幀F(xiàn)VS(n,t′)在像素位置(x,y)的像素值(亮度Y分量),為重建虛擬繪制幀在像素位置(x,y)的像素值(亮度Y分量),其中It′(x,y)表示t′時刻視頻幀像素位置為(x,y)的像素值(亮度Y分量),It′-1(x,y)表示t′-1時刻視頻幀像素位置為(x,y)的像素值(亮度Y分量),W表示當前編碼幀的水平分辨率,H表示當前視頻幀的豎直分辨率,其中x,y為像素位置索引值,0≤x≤W-1,0≤y≤H-1。在一個實施例中,將空域失真和時域失真進行融合得到繪制失真的步驟為:通過計算得到繪制失真DVS(i,j),其中表示空域失真,表示時域失真,ω為加權(quán)系數(shù),其中0≤ω≤1。將幀空域失真和幀時域失真進行融合得到幀繪制失真的步驟為:將繪制失真以幀為單位相加得到幀繪制失真。步驟S240,通過公式計算得到B視頻幀的拉格朗日乘子λ(n,t),其中R(n,t′)為B視頻幀之前時刻的前向B視頻幀F(xiàn)(n,t′)編碼后的比特數(shù),φ1(n,t′)為所述幀空域失真,QVS(n,t′)為所述幀繪制失真,n表示視點索引,t′表示B視頻幀之前的時刻。具體的,在計算拉格朗日乘子時考慮幀繪制失真QVS(n,t′),其中R(n,t′)為當前B視頻幀之前的幀F(xiàn)(n,t′)編碼后的比特數(shù)。其中,為傳統(tǒng)基于視點合成優(yōu)化(VSO)技術(shù)的深度編碼器所采用的拉格朗日乘子。在一個實施例中,如圖5所示,步驟S150之前還包括:步驟S310,計算前向A視頻幀和對應的前向重建A視頻幀在空間方向上的 前向編碼失真Q′(n,t′)。具體的,根據(jù)公式計算前向編碼失真Q′(n,t′),其中f1(·)為傳統(tǒng)的空間方向上編碼失真計算函數(shù),F(xiàn)a(n,t′)為前向A視頻幀,為前向重建A視頻幀。步驟S320,將前向編碼失真Q′(n,t′)和幀繪制失真QVS(n,t′)通過公式Q(n,t′)=(1-α)·Q′(n,t′)+α·QVS(n,t′)得到幀編碼失真Q(n,t′),其中0≤α≤1。步驟S330,通過公式計算得到拉格朗日乘子,其中R(n,t′)為B視頻幀之前時刻的前向B視頻幀F(xiàn)(n,t′)編碼后的比特數(shù),n表示視點索引,t′表示時刻,其中,為傳統(tǒng)視頻編碼器所采用的拉格朗日乘子。在一個實施例中,在待編碼三維視頻包括的多視點彩色視頻和多視點深度視頻編碼完成后,在所有視點和所有時刻范圍內(nèi),如圖6所示,所述方法還包括:步驟S410,依次獲取彩色視頻幀和深度視頻幀進行繪制得到第n個視點和t時刻對應的虛擬視頻繪制幀F(xiàn)VS(n,t)或依次獲取第n個視點和t時刻的B視頻幀對應的虛擬視點圖像幀CVS(n,t),將虛擬視頻繪制幀F(xiàn)VS(n,t)或虛擬視點圖像幀CVS(i,j)作為參考幀F(xiàn)CVS(n,t),其中0<n<N-1,0<t<T-1。具體的,依次獲取第n個視點和t時刻所對應的彩色視頻幀F(xiàn)c(n,t)和深度視頻幀F(xiàn)d(n,t)進行繪制得到第n個視點和t時刻所對應的虛擬視頻繪制幀F(xiàn)VS(n,t),虛擬視點圖像幀是虛擬視點視頻中的圖像幀,依次獲取第n個視點和t時刻的B視頻幀對應的虛擬視點圖像幀CVS(n,t),其中0<n<N-1,0<t<T-1,N表示當前編碼視頻總視點數(shù),T表示當前編碼視頻總幀數(shù),將虛擬視頻繪制幀F(xiàn)VS(n,t)或虛擬視點圖像幀CVS(i,j)作為參考幀F(xiàn)CVS(n,t)。步驟S420,依次獲取重建彩色視頻幀和重建深度視頻幀進行繪制得到第n個視點和t時刻的重建虛擬視頻繪制幀具體的,依次獲取第n個視點和t時刻所對應的重建彩色視頻幀和重 建深度視頻幀進行繪制得到第n個視點和t時刻所對應的已編碼虛擬視頻繪制幀其中0<n<N-1,0<t<T-1。步驟S430,依次計算參考幀和重建虛擬視頻繪制幀在時間方向上第n個視點和t時刻的時域失真φ1(n,t),依次計算參考幀和重建虛擬視頻繪制幀在空間方向上第n個視點和t時刻對應的空域失真φ2(n,t),依次將時域失真φ1(n,t)和空域失真φ2(n,t)進行加權(quán)得到第n個視點和t時刻的視頻繪制失真QVS(n,t)。具體的,計算公式如下:QVS(n,t)=(1-ω)·φ1(n,t)+ω·φ2(n,t)φ1(n,t)=f2(FCVS(n,t),F^VS(n,t))]]>φ2(n,t)=f3(FCVS(n,t),F^VS(n,t))]]>其中f2(·)為空域失真計算函數(shù),f3(·)為時域失真計算函數(shù),ω為加權(quán)系數(shù),其取值范圍為0≤ω≤1。可以理解的是,空域失真計算函數(shù)和時域失真計算函數(shù)可以根據(jù)需要自行設計。在一個實施例中,QVS(n,t)=(1-ω)×φ1(n,t)+ω×φ2(n,t)φ1(n,t)=1W×HΣx=0W-1Σy=0H-1[I^VS(x,y)-IVS(x,y)]γφ2(n,t)=1W×HΣx=0W-1Σy=0H-1[▿I^VS(x,y)-▿IVS(x,y)]γ▿I(x,y)=1kΣτ=0kIt(x,y)-It-τ(x,y),]]>其中IVS(x,y)為參考幀F(xiàn)CVS(n,t)在像素位置(x,y)的像素值(亮度Y分量),為重建虛擬繪制幀在像素位置(x,y)的像素值(亮度Y分量),其中It(x,y)表示當前t時刻視頻幀像素位置為(x,y)的像素值(亮度Y分量),It-τ(x,y)表示t-τ時刻視頻幀像素位置為(x,y)的像素值(亮度Y分量),k為常數(shù),γ∈{1,2},W表示當前視頻幀的水平分辨率,H表示當前視頻幀的豎直分辨率。其中x,y為像素位置索引值,0≤x≤W-1,0≤y≤H-1。步驟S440,依次分別計算A視頻幀和重建A視頻幀在空間方向上第n個視點和t時刻的視頻編碼失真Q′(n,t)。具體的,根據(jù)第n個視點和t時刻的A視頻幀F(xiàn)a(n,t)和重建A視頻幀公式計算得到視頻編碼失真Q′(n,t),其中f1(·)為傳統(tǒng)在空間方向上計算視頻編碼失真的計算函數(shù),其中0<n<N-1,0<t<T-1,N表示當前編碼視頻總視點數(shù),T表示當前編碼視頻總幀數(shù)對應的總時刻數(shù)。在一個實施例中,Q′(n,t)=1W×HΣi=0W-1Σj=0H-1[I^′(x,y)-I′(x,y)]γ,γ∈{1,2}.]]>其中I′(x,y)為A視頻幀F(xiàn)a(n,t)在像素位置(x,y)的像素值(亮度Y分量),為重建A視頻幀在像素位置(x,y)的像素值(亮度Y分量)。步驟S450,依次將視頻繪制失真QVS(n,t)和視頻編碼失真Q′(n,t)進行融合得到第n個視點和t時刻的視頻失真Q(n,t),根據(jù)公式計算得到三維視頻編碼失真具體的,根據(jù)公式Q(n,t)=(1-β)·Q′(n,t)+β·QVS(n,t)得到第n個視點和t時刻的視頻失真Q(n,t),然后進行累加得到三維視頻編碼失真其中β為加權(quán)系數(shù),0<β<1。在一個實施例中,定義虛擬視頻質(zhì)量模型(SVQM)來衡量處理后的多視點彩色視頻和多視點深度視頻的質(zhì)量,記為在一個實施例中,如圖7所示,提供了一種三維視頻編碼裝置,待編碼三維視頻包括多視點彩色視頻和多視點深度視頻,多視點彩色視頻包括多個視點不同時刻的彩色視頻幀,多視點深度視頻包括多個視點不同時刻的深度視頻幀,將深度視頻幀和彩色視頻幀分為A視頻幀和B視頻幀,同一視點同一時刻的彩色視頻幀和深度視頻幀中先編碼的視頻幀為A視頻幀,后編碼的視頻幀為B視頻幀,將A視頻幀分割得到A視頻塊后進行編碼得到已編碼A視頻塊,將待編碼B視頻幀按照和A視頻幀相同的分割方式得到B視頻塊為待編碼塊,包括:參考塊獲取模塊510,用于獲取由B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的虛擬繪制塊或獲取所述B視頻塊對應的虛擬視點圖像塊,將虛擬繪制塊或虛擬視點圖像塊作為參考塊。預編碼模塊520,用于將B視頻塊在當前編碼模式下進行編碼得到預編碼B視頻塊。重建虛擬繪制塊獲取模塊530,用于獲取由預編碼B視頻塊和對應的已編碼或未編碼A視頻塊進行虛擬繪制得到的重建虛擬繪制塊。繪制失真模塊540,用于計算參考塊和重建虛擬繪制塊在空間方向上的空域失真,計算參考塊和重建虛擬繪制塊在時間方向上的時域失真,將空域失真和時域失真進行融合得到繪制失真。率失真代價計算模塊550,用于載入B視頻幀的拉格朗日乘子,獲取編碼后的B視頻塊的預編碼比特數(shù),根據(jù)繪制失真、拉格朗日乘子和預編碼比特數(shù)計算得到率失真代價。最佳編碼模式得到模塊560,用于遍歷所有編碼模式重復進入預編碼模塊至率失真代價計算模塊,比較率失真代價,將率失真代價最小的編碼模式作為B視頻塊的最佳編碼模式。重復編碼模塊570,用于獲取下一個B視頻塊,重復進入?yún)⒖級K獲取模塊至最佳編碼模式得到模塊,直到待編碼B視頻幀包含的所有B視頻塊編碼完成。在一個實施例中,繪制失真模塊540包括:前向參考塊獲取單元541,用于獲取所述參考塊BCVS(i,j,t)在之前時刻所對應的前向參考塊BCVS(i,j,t-k),其中i表示塊位置橫向坐標,j表示塊位置縱向位置坐標,t表示時刻,k表示時刻索引,k>0。前向重建繪制塊獲取單元542,用于獲取所述重建虛擬繪制塊在之前時刻所對應的前向重建繪制塊第一亮度像素差異計算單元543,用于計算所述參考塊BCVS(i,j,t)和前向參考塊BCVS(i,j,t-k)不同像素位置的第一亮度像素差異其中ii,jj為 像素位置索引值,0≤ii≤M-1,0≤jj≤N-1,M表示參考塊的水平寬度,N表示參考塊的豎直高度。第二亮度像素差異計算單元544,用于計算所述重建虛擬繪制塊和前向重建繪制塊不同像素位置的第二亮度像素差異時域失真計算單元545,用于在參考塊的像素范圍內(nèi)計算所述第一亮度像素差異和對應的第二亮度像素差異的變化平均值得到所述時域失真。在一個實施例中,繪制失真模塊540還用于根據(jù)公式計算得到時域失真其中IVS(i+ii,j+jj,t)為參考塊BVS(i,j,t)在像素位置(i+ii,j+jj)的亮度像素值,IVS(i+ii,j+jj,t-k)為前向參考塊BCVS(i,j,t-k)在像素位置(i+ii,j+jj)的亮度像素值,為重建虛擬繪制塊在像素位置(i+ii,j+jj)的亮度像素值,為前向重建虛擬繪制塊在像素位置(i+ii,j+jj)的亮度像素值。在一個實施例中,所述裝置還包括:拉格朗日乘子計算模塊,用于獲取B視頻幀之前時刻所對應的前向A視頻幀和前向B視頻幀,并進行繪制得到虛擬繪制幀,獲取B視頻幀之前時刻所對應的前向重建A視頻幀和前向重建B視頻幀,并進行繪制得到重建虛擬繪制幀,計算虛擬繪制幀和重建虛擬繪制幀在空間方向上的幀空域失真,計算虛擬繪制幀和重建虛擬繪制幀在時間方向上的幀時域失真,將幀空域失真和幀時域失真進行融合得到幀繪制失真,通過公式計算得到B視頻幀的拉格朗日乘子λ(n,t),其中R(n,t′)為B視頻幀之前時刻的前向B視頻幀F(xiàn)(n,t′)編碼后的比特數(shù),φ1(n,t′)為所 述幀空域失真,QVS(n,t′)為所述幀繪制失真,n表示視點索引,t′表示B視頻幀之前的時刻。在一個實施例中,繪制失真模塊540還用于通過計算得到繪制失真DVS(i,j),其中表示空域失真,表示時域失真,ω為加權(quán)系數(shù),其中0≤ω≤1,拉格朗日乘子計算模塊580還用于將繪制失真以幀為單位相加得到幀繪制失真。在一個實施例中,拉格朗日乘子計算模塊580還用于計算前向A視頻幀和對應的前向重建A視頻幀在空間方向上的前向編碼失真Q′(n,t′),將前向編碼失真Q′(n,t′)和幀繪制失真QVS(n,t′)通過公式Q(n,t′)=(1-α)·Q′(n,t′)+α·QVS(n,t′)得到幀編碼失真Q(n,t′),其中0≤α≤1,通過公式計算得到拉格朗日乘子,其中R(n,t′)為B視頻幀之前時刻的前向B視頻幀F(xiàn)(n,t′)編碼后的比特數(shù),n表示視點索引,t′表示時刻。在一個實施例中,如圖9所示,所述裝置還包括:三維視頻質(zhì)量評價模塊580,用于在待編碼三維視頻包括的多視點彩色視頻和多視點深度視頻編碼完成后,在所有視點和所有時刻范圍內(nèi)依次獲取彩色視頻幀和深度視頻幀進行繪制得到第n個視點和t時刻對應的虛擬視頻繪制幀F(xiàn)VS(n,t)或依次獲取第n個視點和t時刻的B視頻幀對應的虛擬視點圖像幀CVS(n,t),將虛擬視頻繪制幀F(xiàn)VS(n,t)或虛擬視點圖像幀CVS(i,j)作為參考幀F(xiàn)CVS(n,t),其中0<n<N-1,0<t<T-1,依次獲取重建彩色視頻幀和重建深度視頻幀進行繪制得到第n個視點和t時刻的重建虛擬視頻繪制幀依次計算參考幀和重建虛擬視頻繪制幀在時間方向上第n個視點和t時刻的時域失真φ1(n,t),依次計算參考幀和重建虛擬視頻繪制幀在空間方向上第n個視點和t時刻對應的空域失真φ2(n,t),依次將時域失真φ1(n,t)和空域失真φ2(n,t)進行加權(quán)得到第n個視點和t時刻的視頻繪制失真QVS(n,t),依次 分別計算A視頻幀和重建A視頻幀在空間方向上第n個視點和t時刻的視頻編碼失真Q′(n,t),依次將視頻繪制失真QVS(n,t)和視頻編碼失真Q′(n,t)進行融合得到第n個視點和t時刻的視頻失真Q(n,t),根據(jù)公式計算得到三維視頻編碼失真具體的,在一個實施例中,實驗采用JVT-3V所推薦實驗平臺HTM-11.0,主要配置說明如表1所示。測試序列從主觀實驗測試序列中選擇GhostTownFly、Newspaper、PoznanHall2、BookArriaval、PoznanStreet和PoznanCarPark六個序列作為測試。原始HTM-11.0和本發(fā)明方法的編碼實驗在同一臺計算機上進行,計算機配置為DELLOPTIPLEXGX620系列臺式電腦,Intel(R)Xero(R)雙核2.40GHzE5620CPU,內(nèi)存容量48GB,MicrosoftWindows7專業(yè)版64位操作系統(tǒng)。原始HTM-11.0平臺編碼方法標記為“Org_HTM”,本發(fā)明方法標記為“Proposed”,測試結(jié)果采用繪制視頻的SVQM作為編碼深度視頻的質(zhì)量評估,類似BDBR(BjontegaardDeltaBitRate)和BDPSNR(BjontegaardDeltaPSNR),采用BDBR(BjontegaardDeltaBitRate)來衡量相同SVQM條件下的碼率增益,BDSVQM(BjontegaardDeltaSVQM)來衡量相同碼率條件的SVQM增益。表13D-HTM主要配置說明GOP4I幀周期16視點間編碼結(jié)構(gòu)P-I-P輸入序列兩個視點加深度時域編碼結(jié)構(gòu)IPPPEarlyVSOSkipOFFRDOQON繪制算法1DfastVSRSVSOONTextureQP25,30,35,40VSDOFFDepthQP34,39,42,45表2表示Org_HTM和Proposed兩種三維視頻編碼方法下的實驗測試結(jié)果,從表2可知,本發(fā)明方法Proposed相對于Org_HTM算法性能有顯著地提升,其中平均BDBR和平均BDSVQM分別為-22.6%和0.49dB。圖10表示各序列在不同三維視頻編碼方法(Org_HTM和Proposed)下的RD性能曲線,從圖中可以看出,本發(fā)明方法具有更好的RD性能曲線。表2各深度編碼框架的實驗結(jié)果以上所述實施例的各技術(shù)特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權(quán)利要求為準。當前第1頁1 2 3