專利名稱:基于標(biāo)準(zhǔn)的h.264解碼器的mvc-3d立體視頻的解碼方法
技術(shù)領(lǐng)域:
本發(fā)明屬于視頻處理技術(shù)領(lǐng)域,具體涉及一種基于標(biāo)準(zhǔn)的H. 264解碼器的MVC-3D 立體視頻的解碼方法。
背景技術(shù):
由于人的雙眼觀察物體的角度略有差異,因此能夠辨別物體遠(yuǎn)近,產(chǎn)生立體的視 覺(jué)。3D視頻正是利用這個(gè)原理,通過(guò)左、右眼分別成像的方式,使得用戶觀看到實(shí)際立體視 頻效果。MVC(Multiview Video Coding)標(biāo)準(zhǔn)是為了便于多視頻點(diǎn)壓縮傳輸而制定的編碼 標(biāo)準(zhǔn),其中雙視頻編碼可為3D雙眼視頻的壓縮傳輸提供服務(wù)。MVC WMereo High profile 于2009年6月成為國(guó)際標(biāo)準(zhǔn),目前已應(yīng)用于Blu-ray 3D等場(chǎng)合。為實(shí)現(xiàn)對(duì)于MVC-3D立體視頻的解碼,通常需要專門的MVC解碼器,解碼器可為 DSP、FPGA、ASIC或是軟件等多種形式。但目前市場(chǎng)上已有大量的標(biāo)準(zhǔn)的H. 264解碼器芯片 和解碼軟件,如果可以使它們也能用于MVC-3D視頻的解碼,而無(wú)須配置專門的MVC解碼器, 將可大大降低實(shí)現(xiàn)MVC-3D解碼的成本,并避免已有投資的浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于標(biāo)準(zhǔn)的H. 264解碼器的MVC-3D立體視頻的解碼方 法,克服了現(xiàn)有技術(shù)的上述不足,可降低解碼系統(tǒng)成本。為了達(dá)到上述設(shè)計(jì)目的,本發(fā)明采用的技術(shù)方案如下一種基于標(biāo)準(zhǔn)的H. 264解碼器的MVC-3D立體視頻的解碼方法,將MVC視頻轉(zhuǎn)換為 1路標(biāo)準(zhǔn)的H. 264視頻流;將轉(zhuǎn)換成的標(biāo)準(zhǔn)的H. 264視頻流送入標(biāo)準(zhǔn)的H. 264解碼器進(jìn)行 解碼處理;再將解碼后的視頻重新排序還原為左、右眼視頻。MVC-3D流轉(zhuǎn)換為標(biāo)準(zhǔn)H. 264流的方法為將標(biāo)準(zhǔn)的MVC-3D視頻流在無(wú)須實(shí)際視 頻解碼和編碼的前提下轉(zhuǎn)換為1路標(biāo)準(zhǔn)的H. 264視頻流,轉(zhuǎn)換過(guò)程對(duì)數(shù)據(jù)重新組織、封裝以 及索引數(shù)據(jù)的信息重構(gòu),轉(zhuǎn)換過(guò)程是以NAL為基本單位的,不同的MVC-3D流的NAL數(shù)據(jù),按 其類型提取出語(yǔ)義信息,再按H. 264規(guī)范的填充成為對(duì)應(yīng)類型的NAL數(shù)據(jù),其中MVC-3D視 頻流中的左、右眼視頻壓縮數(shù)據(jù)NAL,轉(zhuǎn)換后將按左、右眼視頻間隔的次序串行排序,同時(shí)將 修改壓縮數(shù)據(jù)的數(shù)據(jù)頭,以使其符合標(biāo)準(zhǔn)的H. 264視頻封裝標(biāo)準(zhǔn)。MVC-3D流轉(zhuǎn)換為標(biāo)準(zhǔn)H. 264流的轉(zhuǎn)換過(guò)程具體步驟如下SlOl :MVC-3D流的輸入將MVC-3D視頻流按MVC規(guī)范以NAL為單位進(jìn)行類型定義, 定義遵循H. 264規(guī)范,調(diào)用處理函數(shù),處理函數(shù)首先讀取NAL的類型信息,并依據(jù)其類型進(jìn) 入不同的語(yǔ)義信息提取分支;對(duì)于不同NAL數(shù)據(jù),均將其保存在內(nèi)存中,并按MVC規(guī)范中的 NAL定義提取NAL內(nèi)部包含的語(yǔ)義信息,并保存在對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;S102 :H. 264流的輸出以NAL為單位進(jìn)行,其具體實(shí)現(xiàn)機(jī)制為在輸出流的每個(gè) GOP序列頭部,按數(shù)據(jù)結(jié)構(gòu)中保存的tagkqParametersSet和tagPictParameterkt數(shù)據(jù)信息形成符合H. 264規(guī)范的SPS NAL和PPS NAL,并依次輸出;對(duì)于每個(gè)輸入的保存視頻編碼 信息的MVC-3D NAL數(shù)據(jù),均按其輸入次序而依次觸發(fā)H. 264 NAL輸出函數(shù),在函數(shù)的處理 過(guò)程中,先按數(shù)據(jù)結(jié)構(gòu)中保存的tagSliceHeader數(shù)據(jù)形成符合H. 264規(guī)范的SliceHeader 數(shù)據(jù),再輸出實(shí)際的編碼數(shù)據(jù);對(duì)于其他類型的MVC-3D NAL數(shù)據(jù),將不觸發(fā)對(duì)應(yīng)H. ^HNAL 數(shù)據(jù)的輸出。將標(biāo)準(zhǔn)H. 264流解碼并還原為3D左、右眼視頻過(guò)程具體步驟如下S201 :H. 264流解碼轉(zhuǎn)換成的標(biāo)準(zhǔn)的H. 264視頻流送入標(biāo)準(zhǔn)的H. 264解碼器進(jìn)行 解碼處理的具體操作為在形成標(biāo)準(zhǔn)的H. 264視頻流后,以NAL為單位將視頻流送入標(biāo)準(zhǔn)的 H. 264解碼器進(jìn)行解碼;在實(shí)施中,將H. 264數(shù)據(jù)按解碼器的提供的調(diào)用接口送入,再通過(guò) 其接口得到解碼后的數(shù)據(jù)。S202 左、右眼視頻還原解碼后的視頻重新排序還原為左、右眼視頻的操作為 解碼后將形成按幀排列的未壓縮視頻數(shù)據(jù),之后,解碼系統(tǒng)將未壓縮視頻數(shù)據(jù)按MVC-3D流 中的應(yīng)有的次序,還原為左、右眼的兩個(gè)獨(dú)立視頻序列,并進(jìn)而被外部的顯示系統(tǒng)調(diào)用進(jìn)行 3D顯不。本發(fā)明所述的基于標(biāo)準(zhǔn)的H. 264解碼器的MVC-3D視頻的解碼方法的有益效果是 可降低解碼系統(tǒng)成本,使得無(wú)須使用專用的MVC解碼器,基于標(biāo)準(zhǔn)的H. 264解碼器即可實(shí)現(xiàn) MVC-3D視頻的解碼。
具體實(shí)施例方式本發(fā)明實(shí)施例所述的基于標(biāo)準(zhǔn)的H. 264解碼器的MVC-3D立體視頻的解碼方法, 將MVC視頻轉(zhuǎn)換為1路標(biāo)準(zhǔn)的H. 264視頻流;將轉(zhuǎn)換成的標(biāo)準(zhǔn)的H. 264視頻流送入標(biāo)準(zhǔn)的 H. 264解碼器進(jìn)行解碼處理;再將解碼后的視頻重新排序還原為左、右眼視頻。MVC-3D流轉(zhuǎn)換為標(biāo)準(zhǔn)H. 264流的操作為將標(biāo)準(zhǔn)的MVC-3D視頻流實(shí)時(shí)轉(zhuǎn)換為1 路標(biāo)準(zhǔn)的H. 264視頻流,轉(zhuǎn)換過(guò)程對(duì)數(shù)據(jù)重新組織、封裝以及索引數(shù)據(jù)的信息重構(gòu),轉(zhuǎn)換過(guò) 程是以NAL為基本單位的,不同的MVC-3D流的NAL數(shù)據(jù),按其類型提取出語(yǔ)義信息,再按 H. 264規(guī)范的填充成為對(duì)應(yīng)類型的NAL數(shù)據(jù),其中MVC-3D視頻流中的左、右眼視頻壓縮數(shù)據(jù) NAL,轉(zhuǎn)換后將按左、右眼視頻間隔的次序串行排序,同時(shí)將修改壓縮數(shù)據(jù)的數(shù)據(jù)頭,以使其 符合標(biāo)準(zhǔn)的H. 264視頻封裝標(biāo)準(zhǔn)。MVC-3D流轉(zhuǎn)換為標(biāo)準(zhǔn)H. 264流的轉(zhuǎn)換過(guò)程具體步驟如下SlOl :MVC-3D流的輸入將MVC-3D視頻流按MVC規(guī)范以NAL為單位進(jìn)行類型定義, 定義遵循H. 264規(guī)范,調(diào)用處理函數(shù),處理函數(shù)首先讀取NAL的類型信息,并依據(jù)其類型進(jìn) 入不同的語(yǔ)義信息提取分支;按MVC規(guī)范,視頻流中的NAL類型定義如下enum NalUnitTypeNAL_UNIT_EXTERNAL= 0,NALJJNIT一CODED—SLICE= 1,NAL—UNIT一CODED—SLICE_DATAPART_A= 2’NAL_UNIT—CODED一 SLICE_DATAPART_B= 3’NAL_UNIT_CODED_SLICE_DATAPART_C= 4,NAL_UNIT_CODED_SLICE_IDR= 5,NAL_UNIT_SEI= 6,NAL_UN1T_SPS= 7,NAL—UNIT—PPS= 8,NAL_UNIT_ACCESS_UNIT_DELIMITER= 9,NAL_UNIT_END_OF_SEQUENCE= 10NAL—UNIT—END_OF 一 STREAM= 11NAL JJNIT_FILLER—DATA= 12NAL __UNIT_CODED一 SLICE—PREFIX= 14NAL_UMT_SUBSET_SPS= 15NAL—UNIT_CODED_SLICE一 SCALABLE= 20NAL—UNIT—CODED_SLICE_IDR一 SCALABLE = 21對(duì)于不同NAL數(shù)據(jù),均將其保存在內(nèi)存中,并按MVC規(guī)范中的NAL定義提取NAL 內(nèi)部包含的語(yǔ)義信息,并保存在對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;所述數(shù)據(jù)結(jié)構(gòu)包括hrcLparameters、 tagSeqParametersSet、tagPictParameterSet、tagSliceHeader。上述結(jié)構(gòu)的定義遵循 H. 264規(guī)范。具體定義如下struct hrd__parameters { int cpb_cnt;int bit_rate—scale;int cpb_size—scale;int bitjrate一value [32];int cpb_size_value[3 2];bool cbr_flag[32];int initial_cpb_removal_delay—length; int cpb_removal_delay_length; int dpb_output_delay_length; int time_offset;};typedef struct tagSeqParametersSetint profileldc;int levelldc;int seqParamSetld;int chromaFormatldc;int log2nFrames;intnFramesMl;int log2nPoc;6int numRefFrames; int width; int height;bool direct8x8InferenceFlag; bool frame—mbs_only_flag; bool direct—8x8_inference; bool mb一adaptive—frame_field—flag; bool vui_parameters_present; } SeqParametersSet; typedef struct tagPictParameterSet { int picParameterld; int setParameterld; bool isPicOrderPresent; int num_ref_idx_10_active; int num_ref_idx_l 1 _active; bool weighted_pred_flag; int weightedbipredidc; int QP; int QPl; int QP2;bool deblockFilterPresent; bool transform_8x8_mode_flag; } PictParameterSet; typedef struct tagSliceHeaderbool isRef; int sliceType; int frameNum; int tvld; int QP_Delta; bool isAnchor; bool IDR;ArrayList<ref_frame_type> listO,listl ; int first_mb_in_slice; int cabac_init_idc; } SliceHeader;S102 :H. 264流的輸出以NAL為單位進(jìn)行,其具體實(shí)現(xiàn)機(jī)制為在輸出流的每 個(gè)GOP序列頭部(即IDR數(shù)據(jù)之前),按數(shù)據(jù)結(jié)構(gòu)中保存的tagkqParametersSet和 tagPictParameterSet數(shù)據(jù)信息形成符合H. 264規(guī)范的SPSNAL和PPS NAL,并依次輸出;對(duì) 于每個(gè)輸入的保存視頻編碼信息的MVC-3DNAL數(shù)據(jù),均按其輸入次序而依次觸發(fā)H. 264NAL 輸出函數(shù),在函數(shù)的處理過(guò)程中,先按數(shù)據(jù)結(jié)構(gòu)中保存的tagSliceHeader數(shù)據(jù)形成符合 H. 264規(guī)范的SliceHeader數(shù)據(jù),再輸出實(shí)際的編碼數(shù)據(jù);對(duì)于其他類型的MVC-3D NAL數(shù) 據(jù),將不觸發(fā)對(duì)應(yīng)H. 264NAL數(shù)據(jù)的輸出。將標(biāo)準(zhǔn)H. 264流解碼并還原為3D左、右眼視頻過(guò)程具體步驟如下S201 :H. 264流解碼轉(zhuǎn)換成的標(biāo)準(zhǔn)的H. 264視頻流送入標(biāo)準(zhǔn)的H. 264解碼器進(jìn)行 解碼處理的具體操作為在形成標(biāo)準(zhǔn)的H. 264視頻流后,以NAL為單位將視頻流送入標(biāo)準(zhǔn) 的H. 264解碼器進(jìn)行解碼;在實(shí)施中,使用Broadcom解碼芯片以及ffmpeg軟件解碼器,將 H. 264數(shù)據(jù)按解碼器的提供的調(diào)用接口送入,再通過(guò)其接口得到解碼后的數(shù)據(jù)。S202 左、右眼視頻還原解碼后的視頻重新排序還原為左、右眼視頻的操作為 解碼后將形成按幀排列的未壓縮視頻數(shù)據(jù),之后,解碼系統(tǒng)將未壓縮視頻數(shù)據(jù)按MVC-3D流 中的應(yīng)有的次序,還原為左、右眼的兩個(gè)獨(dú)立視頻序列,并進(jìn)而被外部的顯示系統(tǒng)調(diào)用進(jìn)行 3D立體顯示。以上,僅為本發(fā)明的較佳實(shí)施例,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本 技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在 本發(fā)明的保護(hù)范圍的內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求所界定的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種基于標(biāo)準(zhǔn)的H. 264解碼器的MVC-3D立體視頻的解碼方法,其特征在于 在無(wú)須實(shí)際視頻解碼和編碼的前提下,將MVC視頻轉(zhuǎn)換為1路標(biāo)準(zhǔn)的H. 264視頻流; 將轉(zhuǎn)換成的標(biāo)準(zhǔn)的H. 264視頻流送入標(biāo)準(zhǔn)的H. 264解碼器進(jìn)行解碼處理;再將解碼后的視頻重新排序還原為左、右眼立體視頻。
2.根據(jù)權(quán)利要求1所述的基于標(biāo)準(zhǔn)的H.264解碼器的MVC-3D立體視頻的解碼方法,其 特征在于MVC-3D流轉(zhuǎn)換為標(biāo)準(zhǔn)H. 264流的操作為將標(biāo)準(zhǔn)的MVC-3D視頻流實(shí)時(shí)轉(zhuǎn)換為1 路標(biāo)準(zhǔn)的H. 264視頻流,轉(zhuǎn)換過(guò)程中無(wú)須實(shí)際視頻解碼和編碼,僅需進(jìn)行數(shù)據(jù)的重新組織、 封裝以及索引數(shù)據(jù)的信息重構(gòu),并使其符合標(biāo)準(zhǔn)的H. 264視頻封裝標(biāo)準(zhǔn)。
3.根據(jù)權(quán)利要求2所述的MVC-3D流轉(zhuǎn)換為標(biāo)準(zhǔn)H.264流的操作,其特征在于在轉(zhuǎn)換 后的標(biāo)準(zhǔn)的H. 264視頻流中,原MVC-3D視頻流中的左、右眼立體視頻壓縮數(shù)據(jù),將按左、右、 左、右或右、左、右、左或是其他次序依次串行排序。
全文摘要
本發(fā)明公開(kāi)了一種基于標(biāo)準(zhǔn)的H.264解碼器的MVC-3D立體視頻的解碼方法,將MVC視頻在無(wú)須實(shí)際視頻解碼和編碼的前提下轉(zhuǎn)換為1路標(biāo)準(zhǔn)的H.264視頻流;將轉(zhuǎn)換成的標(biāo)準(zhǔn)的H.264視頻流送入標(biāo)準(zhǔn)的H.264解碼器進(jìn)行解碼處理;再將解碼后的視頻重新排序還原為左、右眼立體視頻。其優(yōu)點(diǎn)是可降低成本,使得無(wú)須使用專用的MVC解碼器,基于標(biāo)準(zhǔn)的H.264解碼器即可實(shí)現(xiàn)MVC-3D立體視頻的解碼。
文檔編號(hào)H04N13/00GK102055983SQ201110027858
公開(kāi)日2011年5月11日 申請(qǐng)日期2011年1月26日 優(yōu)先權(quán)日2011年1月26日
發(fā)明者孫立峰, 李毅, 羅翰, 胡偉棟, 蔡飛飛 申請(qǐng)人:北京世紀(jì)鼎點(diǎn)軟件有限公司, 清華大學(xué)