一種3d-hevc深度視頻幀內(nèi)快速編碼方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種多視點(diǎn)視頻信號(hào)的編碼技術(shù),尤其是設(shè)及一種3D-皿VC深度視頻 帖內(nèi)快速編碼方法。
【背景技術(shù)】
[0002] 隨著視頻技術(shù)的不斷進(jìn)步,3D(化ree-dimensional)視頻技術(shù)已經(jīng)在消費(fèi)娛樂、視 頻會(huì)議及遠(yuǎn)程醫(yī)療等很多方面得到了廣泛應(yīng)用。目前,基于多視點(diǎn)彩色加深度(Multiview VideoplusD邱th,MVD)的自由視點(diǎn)視頻化reeViewpointVideo,FVV)系統(tǒng)是3D視頻的主 要實(shí)現(xiàn)方式。在FVV系統(tǒng)中,觀眾可W自由選擇觀看角度,更好地獲取身臨其境的視覺感受, 而為了達(dá)到運(yùn)種目的,需要得到足夠多的視點(diǎn)。在MVD格式視頻中,可W利用已有的真實(shí)視 點(diǎn),通過基于深度圖的繪制(D巧thImageBasedRendering,DIBR)技術(shù)得到足夠多的虛擬 視點(diǎn),其中,深度視頻表征距離信息,同一場(chǎng)景像素點(diǎn)的深度值之間差別很小,因此深度視 頻紋理較為簡(jiǎn)單,邊緣信息較為重要。
[0003] 深度視頻的獲取方式包括深度相機(jī)、深度估計(jì)軟件及Kinect等,由于成本限制,因 此目前的深度視頻主要通過深度估計(jì)軟件獲得,但運(yùn)種估計(jì)得到的深度視頻很不準(zhǔn)確,本 應(yīng)平坦的區(qū)域存在很多紋理,會(huì)降低虛擬視點(diǎn)質(zhì)量,且帖內(nèi)編碼時(shí)會(huì)增加空間冗余,消耗更 多的編碼碼率,因此在編碼之前對(duì)估計(jì)的深度視頻進(jìn)行處理是必要的。當(dāng)前編碼MVD格式視 頻的最新標(biāo)準(zhǔn)是3D-HEVC,它是在新一代高效視頻編碼標(biāo)準(zhǔn)化ighEfficiencyVideo Coding,HEVC)基礎(chǔ)上的擴(kuò)展。3D-肥VC帖內(nèi)編碼的復(fù)雜度很高,主要有兩方面原因:一方面, 為了適應(yīng)高清和超高清視頻編碼,采用了更大的編碼單元(Coding化it,CU),包括從64X 64到8X8四個(gè)等級(jí),分別用0到3四個(gè)CU深度表示,在CU遞歸劃分過程中,需要遍歷每個(gè)深度 的CU;另一方面,為了提高帖內(nèi)預(yù)測(cè)精度,肥VC采用了35種帖內(nèi)預(yù)測(cè)模式,對(duì)每層CU進(jìn)行編 碼時(shí)都需要遍歷運(yùn)35種預(yù)測(cè)模式,3D-HEVC為了適應(yīng)深度視頻的邊緣信息較為重要的特點(diǎn), 在深度視頻帖內(nèi)編碼時(shí)增加了4種深度模型模式(DepthModelingModes,DMMs)。統(tǒng)計(jì)表 明,3D-HEVC深度視頻的編碼時(shí)間是彩色視頻的編碼時(shí)間的10倍左右,對(duì)于紋理更為簡(jiǎn)單的 深度視頻來說是不合理的。
[0004] 目前,很多學(xué)者已經(jīng)提出了降低3D-HEVC深度視頻帖內(nèi)編碼復(fù)雜度的方法,但運(yùn)些 方法都集中在減少DMMs的執(zhí)行或提出新的深度視頻帖內(nèi)預(yù)測(cè)模式代替DMMs,運(yùn)些方法降低 3D-肥VC深度視頻帖內(nèi)編碼時(shí)間有限,主要是因?yàn)檫\(yùn)些方法沒有考慮深度視頻較為簡(jiǎn)單,最 優(yōu)CU深度主要集中在0和1的特點(diǎn)。對(duì)于估計(jì)得到的深度視頻,也沒有在編碼前提前處理,W 提高編碼和繪制性能。
【發(fā)明內(nèi)容】
[000引本發(fā)明所要解決的技術(shù)問題是提供一種3D-皿VC深度視頻帖內(nèi)快速編碼方法,其 在保證虛擬視點(diǎn)質(zhì)量不下降的前提下,能夠顯著地降低3D-HEVC深度視頻帖內(nèi)編碼復(fù)雜度。 [0006]本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種3D-皿VC深度視頻帖內(nèi)快速 編碼方法,其特征在于包括訓(xùn)練階段和測(cè)試階段兩個(gè)過程,所述的訓(xùn)練階段過程的具體步 驟如下:
[0007] ①-1、選取若干個(gè)深度視頻,將選取的所有深度視頻中的所有視頻帖構(gòu)成訓(xùn)練視 頻帖集合,將訓(xùn)練視頻帖集合中當(dāng)前待處理的視頻帖定義為當(dāng)前帖;
[0008] ①-2、對(duì)當(dāng)前帖中的所有邊緣像素點(diǎn)和所有非邊緣像素點(diǎn)進(jìn)行不同的濾波處理W 完成對(duì)當(dāng)前帖的預(yù)處理;
[0009] ①-3a、按序處理預(yù)處理后的視頻帖中的每個(gè)最大編碼單元,將預(yù)處理后的視頻帖 中當(dāng)前待處理的最大編碼單元定義為當(dāng)前最大編碼單元,并記為化CU;
[0010] ①-3b、如果化CU為預(yù)處理后的視頻帖中最左側(cè)的所有最大編碼單元中的一個(gè)或 最上側(cè)的所有最大編碼單元中的一個(gè),則采用原始3D-肥VC編碼平臺(tái)對(duì)化CU進(jìn)行編碼,再執(zhí) 行步驟①-3c;
[0011] 如果化CU不為預(yù)處理后的視頻帖中最左側(cè)的所有最大編碼單元中的一個(gè)且不為 最上側(cè)的所有最大編碼單元中的一個(gè),則獲取化CU的特征向量,記為fGl?,然后采用原始 3D-肥VC編碼平臺(tái)對(duì)化CU進(jìn)行編碼,再執(zhí)行步驟①-3c,其中,fGlgu的維數(shù)為17,fGlgu中的17個(gè) 特征按序分別為MSECl?、xMSECl?、yMSECL?、SobCLCU、mseLl?、xMSELlcu、yMSELL?、SobLLCU、 MSEULCU、XM沈ULCU、yM沈ULCU、SobULCU、SADC-LLCU、SADC-ULCU、LDmax、UDmax及TDmax,M沈CLCU、XM沈CLCU和 yMSEGLgu對(duì)應(yīng)表示化CU中的所有像素點(diǎn)的像素值的均方誤差、水平方向的均方誤差和垂直 方向的均方誤差,SobGLG嗦示化CU中的所有像素點(diǎn)的像素值的Sobel梯度值之和,MSELLgu、 xMSELLGU和yMSELLGU對(duì)應(yīng)表示化CU的左相鄰最大編碼單元化CU中的所有像素點(diǎn)的像素值的均 方誤差、水平方向的均方誤差和垂直方向的均方誤差,Sob^EU表示化CU的左相鄰最大編碼 單元UXU中的所有像素點(diǎn)的像素值的Sobel梯度值之和,MSEULgu、xMSEULgu和yMSEULGU對(duì)應(yīng)表 示化CU的上相鄰最大編碼單元化CU中的所有像素點(diǎn)的像素值的均方誤差、水平方向的均方 誤差和垂直方向的均方誤差,SobULGU表示化CU的上相鄰最大編碼單元化CU中的所有像素點(diǎn) 的像素值的Sobel梯度值之和,SAQG-llgu表示化CU與化CU之間的絕對(duì)差和,SAQG-ulgu表示化CU 與化CU之間的絕對(duì)差和,LDmax表示化CU的最大劃分深度,UDmax表示化CU的最大劃分深度, TDmax表示當(dāng)前帖相對(duì)應(yīng)的彩色視頻帖中與化CU對(duì)應(yīng)的最大編碼單元化CU的最大劃分深度;
[0012] ①-3c、將預(yù)處理后的視頻帖中下一個(gè)待處理的最大編碼單元作為當(dāng)前最大編碼 單元,并記為化CU,然后返回步驟①-3b繼續(xù)執(zhí)行,直至預(yù)處理后的視頻帖中的所有最大編 碼單元處理完畢;
[0013] ①-4、將訓(xùn)練視頻帖集合中下一帖待處理的視頻帖作為當(dāng)前帖,然后返回步驟①-2繼續(xù)執(zhí)行,直至訓(xùn)練視頻帖集合中的所有視頻帖處理完畢;
[0014] ①-5、將訓(xùn)練視頻帖集合中的所有視頻帖中除最左側(cè)的所有最大編碼單元和最上 側(cè)的所有最大編碼單元外的所有最大編碼單元各自的特征向量作為輸入?yún)?shù),將訓(xùn)練視頻 帖集合中的所有視頻帖中除最左側(cè)的所有最大編碼單元和最上側(cè)的所有最大編碼單元外 的所有最大編碼單元各自采用原始3D-皿VC編碼平臺(tái)編碼時(shí)的最大劃分深度作為輸出參 數(shù),且所有最大編碼單元各自的特征向量與最大劃分深度一一對(duì)應(yīng)輸入到BP神經(jīng)網(wǎng)絡(luò)中進(jìn) 行訓(xùn)練,得到訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)測(cè)試模型;
[0015] 所述的測(cè)試階段過程的具體步驟如下:
[0016] ②-1、對(duì)于任意一帖待測(cè)試的深度視頻帖,將其定義為測(cè)試帖;
[0017 ]②-2、對(duì)測(cè)試帖中的所有邊緣像素點(diǎn)和所有非邊緣像素點(diǎn)進(jìn)行不同的濾波處理W完成對(duì)測(cè)試帖的預(yù)處理;
[0018]②-3、按照步驟①-3a至步驟①-3c的過程,W相同的方式獲取預(yù)處理后的測(cè)試帖 中除最左側(cè)的所有最大編碼單元和最上側(cè)的所有最大編碼單元外的每個(gè)最大編碼單元的 特征向量;
[0019]②-4、將預(yù)處理后的測(cè)試帖中除最左側(cè)的所有最大編碼單兀和最上側(cè)的所有最大 編碼單元外的所有最大編碼單元各自的特征向量作為輸入?yún)?shù),輸入到訓(xùn)練好的BP神經(jīng)網(wǎng) 絡(luò)測(cè)試模型中,預(yù)測(cè)得到預(yù)處理后的測(cè)試帖中除最左側(cè)的所有最大編碼單元和最上側(cè)的所 有最大編碼單元外的每個(gè)最大編碼單元的最大劃分深度的預(yù)測(cè)值;
[0020] ②-5、對(duì)預(yù)處理后的測(cè)試帖中的每個(gè)最大編碼單元進(jìn)行編碼,具體過程為:
[0021] ②-5a、按序處理預(yù)處理后的測(cè)試帖中的每個(gè)最大編碼單元,將預(yù)處理后的測(cè)試帖 中當(dāng)前待處理的最大編碼單元定義為當(dāng)前最大編碼單元,并記為化Cir;
[0022] ②-5b、如果化CU'為預(yù)處理后的測(cè)試帖中最左側(cè)的所有最大編碼單元中的一個(gè)或 最上側(cè)的所有最大編碼單元中的一個(gè),則采用原始3D-皿VC編碼平臺(tái)對(duì)化CU'進(jìn)行編碼,再 執(zhí)行步驟②-5c;
[0023] 如果化CU'不為預(yù)處理后的測(cè)試帖中最左側(cè)的所有最大編碼單元中的一個(gè)且不為 最上側(cè)的所有最大編碼單元中的一個(gè),則執(zhí)行W下步驟:
[0024] bl、判斷化CU'的最大劃分深度的預(yù)測(cè)值PD'與測(cè)試帖相對(duì)應(yīng)的彩色視頻帖中與 CLCir對(duì)應(yīng)的最大編碼單元化Cir的最大劃分深度TD'的大小關(guān)系,如果PD'的值大于TD'的 值,則將PD'的值重置為TD'的值,然后執(zhí)行步驟b2;如果PD'的值小于或等于TD'的值,則保 持PD'的值不變,然后執(zhí)行步驟b2;
[0025] b2、將化Cir重新定義為當(dāng)前編碼單元,令CD'表示當(dāng)前編碼單元的劃分深度,CD' 的初始值為0,然后執(zhí)行步驟b3;
[0026] b3、采用化nny邊緣檢測(cè)算法對(duì)當(dāng)前編碼單元進(jìn)行邊緣檢測(cè),得到當(dāng)前編碼單元的 邊緣信息,如果CD'大于或等于PD',且滿足下述條件之一 :1)當(dāng)前編碼單元中不存在邊緣信 息,2)PD'的值已經(jīng)被重置為TD',3)CD'大于或等于TD',則對(duì)當(dāng)前編碼單元不進(jìn)行繼續(xù)劃 分,至此已完成當(dāng)前編碼單元的編碼,再執(zhí)行步驟b4;如果CD'小于PD',則對(duì)當(dāng)前編碼單元 進(jìn)行繼續(xù)劃分,執(zhí)行步驟b5;
[0027]b4、如果CD'等于0,則執(zhí)行步驟②-5c;
[0028] 如果CD'等于1,則判斷當(dāng)前編碼單元所在層的四個(gè)編碼單元是否均已處理完畢, 若已全部處理完畢,則執(zhí)行步驟②-5c;若未全部處理完畢,則將當(dāng)前編碼單元所在層的四 個(gè)編碼單元中的下一個(gè)待處理的編碼單元作為當(dāng)前編碼單元,再執(zhí)行步驟b3;
[0029] 如果CD'不等于0且不等于1,則判斷當(dāng)前編碼單元所在層的四個(gè)編碼單元是否均 已處理完畢,如果已全部處理完畢,則將當(dāng)前編碼單元的上一層中下一個(gè)待處理的編碼單 元作為當(dāng)前編碼單元,再執(zhí)行步驟b3;如果未全部處理完畢,則將當(dāng)前編碼單元所在層的四 個(gè)編碼單元中的下一個(gè)待處理的編碼單元作為當(dāng)前編碼單元,再執(zhí)行步驟b3;
[0030] b5、將當(dāng)前編碼單元的下一層四個(gè)編碼單元中當(dāng)前待處理的編碼單元作為當(dāng)前編 碼單元,并令〔0'=〔0'+1,然后返回步驟63繼續(xù)執(zhí)行,其中,〔0'=〔0'+1中的"="為賦值符 號(hào);
[0031 ] 在上述編碼單元的遞歸劃分過程中,當(dāng)CD'為加寸,如果PD'為0、當(dāng)前編碼單元中不 存在邊緣信息且PD'的值未被重置為TD',或者PD'大于0,則當(dāng)前編碼單元的預(yù)測(cè)方向從編 號(hào)為〇、1及從24到34的預(yù)測(cè)方向中遍歷得到;如果為其余情況,則當(dāng)前編碼單元的預(yù)測(cè)方向 從全部的預(yù)測(cè)方向中遍歷得到;
[0032] 當(dāng)CD'為1時(shí),如果PD'為1、當(dāng)前編碼單元中不存