基于标准的h.264解码器的mvc-3d立体视频的解码方法

文档序号:7691352阅读:509来源:国知局
专利名称:基于标准的h.264解码器的mvc-3d立体视频的解码方法
技术领域
本发明属于视频处理技术领域,具体涉及一种基于标准的H. 264解码器的MVC-3D 立体视频的解码方法。
背景技术
由于人的双眼观察物体的角度略有差异,因此能够辨别物体远近,产生立体的视 觉。3D视频正是利用这个原理,通过左、右眼分别成像的方式,使得用户观看到实际立体视 频效果。MVC(Multiview Video Coding)标准是为了便于多视频点压缩传输而制定的编码 标准,其中双视频编码可为3D双眼视频的压缩传输提供服务。MVC WMereo High profile 于2009年6月成为国际标准,目前已应用于Blu-ray 3D等场合。为实现对于MVC-3D立体视频的解码,通常需要专门的MVC解码器,解码器可为 DSP、FPGA、ASIC或是软件等多种形式。但目前市场上已有大量的标准的H. 264解码器芯片 和解码软件,如果可以使它们也能用于MVC-3D视频的解码,而无须配置专门的MVC解码器, 将可大大降低实现MVC-3D解码的成本,并避免已有投资的浪费。

发明内容
本发明的目的是提供一种基于标准的H. 264解码器的MVC-3D立体视频的解码方 法,克服了现有技术的上述不足,可降低解码系统成本。为了达到上述设计目的,本发明采用的技术方案如下一种基于标准的H. 264解码器的MVC-3D立体视频的解码方法,将MVC视频转换为 1路标准的H. 264视频流;将转换成的标准的H. 264视频流送入标准的H. 264解码器进行 解码处理;再将解码后的视频重新排序还原为左、右眼视频。MVC-3D流转换为标准H. 264流的方法为将标准的MVC-3D视频流在无须实际视 频解码和编码的前提下转换为1路标准的H. 264视频流,转换过程对数据重新组织、封装以 及索引数据的信息重构,转换过程是以NAL为基本单位的,不同的MVC-3D流的NAL数据,按 其类型提取出语义信息,再按H. 264规范的填充成为对应类型的NAL数据,其中MVC-3D视 频流中的左、右眼视频压缩数据NAL,转换后将按左、右眼视频间隔的次序串行排序,同时将 修改压缩数据的数据头,以使其符合标准的H. 264视频封装标准。MVC-3D流转换为标准H. 264流的转换过程具体步骤如下SlOl :MVC-3D流的输入将MVC-3D视频流按MVC规范以NAL为单位进行类型定义, 定义遵循H. 264规范,调用处理函数,处理函数首先读取NAL的类型信息,并依据其类型进 入不同的语义信息提取分支;对于不同NAL数据,均将其保存在内存中,并按MVC规范中的 NAL定义提取NAL内部包含的语义信息,并保存在对应的数据结构中;S102 :H. 264流的输出以NAL为单位进行,其具体实现机制为在输出流的每个 GOP序列头部,按数据结构中保存的tagkqParametersSet和tagPictParameterkt数据信息形成符合H. 264规范的SPS NAL和PPS NAL,并依次输出;对于每个输入的保存视频编码 信息的MVC-3D NAL数据,均按其输入次序而依次触发H. 264 NAL输出函数,在函数的处理 过程中,先按数据结构中保存的tagSliceHeader数据形成符合H. 264规范的SliceHeader 数据,再输出实际的编码数据;对于其他类型的MVC-3D NAL数据,将不触发对应H. ^HNAL 数据的输出。将标准H. 264流解码并还原为3D左、右眼视频过程具体步骤如下S201 :H. 264流解码转换成的标准的H. 264视频流送入标准的H. 264解码器进行 解码处理的具体操作为在形成标准的H. 264视频流后,以NAL为单位将视频流送入标准的 H. 264解码器进行解码;在实施中,将H. 264数据按解码器的提供的调用接口送入,再通过 其接口得到解码后的数据。S202 左、右眼视频还原解码后的视频重新排序还原为左、右眼视频的操作为 解码后将形成按帧排列的未压缩视频数据,之后,解码系统将未压缩视频数据按MVC-3D流 中的应有的次序,还原为左、右眼的两个独立视频序列,并进而被外部的显示系统调用进行 3D显不。本发明所述的基于标准的H. 264解码器的MVC-3D视频的解码方法的有益效果是 可降低解码系统成本,使得无须使用专用的MVC解码器,基于标准的H. 264解码器即可实现 MVC-3D视频的解码。
具体实施例方式本发明实施例所述的基于标准的H. 264解码器的MVC-3D立体视频的解码方法, 将MVC视频转换为1路标准的H. 264视频流;将转换成的标准的H. 264视频流送入标准的 H. 264解码器进行解码处理;再将解码后的视频重新排序还原为左、右眼视频。MVC-3D流转换为标准H. 264流的操作为将标准的MVC-3D视频流实时转换为1 路标准的H. 264视频流,转换过程对数据重新组织、封装以及索引数据的信息重构,转换过 程是以NAL为基本单位的,不同的MVC-3D流的NAL数据,按其类型提取出语义信息,再按 H. 264规范的填充成为对应类型的NAL数据,其中MVC-3D视频流中的左、右眼视频压缩数据 NAL,转换后将按左、右眼视频间隔的次序串行排序,同时将修改压缩数据的数据头,以使其 符合标准的H. 264视频封装标准。MVC-3D流转换为标准H. 264流的转换过程具体步骤如下SlOl :MVC-3D流的输入将MVC-3D视频流按MVC规范以NAL为单位进行类型定义, 定义遵循H. 264规范,调用处理函数,处理函数首先读取NAL的类型信息,并依据其类型进 入不同的语义信息提取分支;按MVC规范,视频流中的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对于不同NAL数据,均将其保存在内存中,并按MVC规范中的NAL定义提取NAL 内部包含的语义信息,并保存在对应的数据结构中;所述数据结构包括hrcLparameters、 tagSeqParametersSet、tagPictParameterSet、tagSliceHeader。上述结构的定义遵循 H. 264规范。具体定义如下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为单位进行,其具体实现机制为在输出流的每 个GOP序列头部(即IDR数据之前),按数据结构中保存的tagkqParametersSet和 tagPictParameterSet数据信息形成符合H. 264规范的SPSNAL和PPS NAL,并依次输出;对 于每个输入的保存视频编码信息的MVC-3DNAL数据,均按其输入次序而依次触发H. 264NAL 输出函数,在函数的处理过程中,先按数据结构中保存的tagSliceHeader数据形成符合 H. 264规范的SliceHeader数据,再输出实际的编码数据;对于其他类型的MVC-3D NAL数 据,将不触发对应H. 264NAL数据的输出。将标准H. 264流解码并还原为3D左、右眼视频过程具体步骤如下S201 :H. 264流解码转换成的标准的H. 264视频流送入标准的H. 264解码器进行 解码处理的具体操作为在形成标准的H. 264视频流后,以NAL为单位将视频流送入标准 的H. 264解码器进行解码;在实施中,使用Broadcom解码芯片以及ffmpeg软件解码器,将 H. 264数据按解码器的提供的调用接口送入,再通过其接口得到解码后的数据。S202 左、右眼视频还原解码后的视频重新排序还原为左、右眼视频的操作为 解码后将形成按帧排列的未压缩视频数据,之后,解码系统将未压缩视频数据按MVC-3D流 中的应有的次序,还原为左、右眼的两个独立视频序列,并进而被外部的显示系统调用进行 3D立体显示。以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本 技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在 本发明的保护范围的内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
权利要求
1.一种基于标准的H. 264解码器的MVC-3D立体视频的解码方法,其特征在于 在无须实际视频解码和编码的前提下,将MVC视频转换为1路标准的H. 264视频流; 将转换成的标准的H. 264视频流送入标准的H. 264解码器进行解码处理;再将解码后的视频重新排序还原为左、右眼立体视频。
2.根据权利要求1所述的基于标准的H.264解码器的MVC-3D立体视频的解码方法,其 特征在于MVC-3D流转换为标准H. 264流的操作为将标准的MVC-3D视频流实时转换为1 路标准的H. 264视频流,转换过程中无须实际视频解码和编码,仅需进行数据的重新组织、 封装以及索引数据的信息重构,并使其符合标准的H. 264视频封装标准。
3.根据权利要求2所述的MVC-3D流转换为标准H.264流的操作,其特征在于在转换 后的标准的H. 264视频流中,原MVC-3D视频流中的左、右眼立体视频压缩数据,将按左、右、 左、右或右、左、右、左或是其他次序依次串行排序。
全文摘要
本发明公开了一种基于标准的H.264解码器的MVC-3D立体视频的解码方法,将MVC视频在无须实际视频解码和编码的前提下转换为1路标准的H.264视频流;将转换成的标准的H.264视频流送入标准的H.264解码器进行解码处理;再将解码后的视频重新排序还原为左、右眼立体视频。其优点是可降低成本,使得无须使用专用的MVC解码器,基于标准的H.264解码器即可实现MVC-3D立体视频的解码。
文档编号H04N13/00GK102055983SQ201110027858
公开日2011年5月11日 申请日期2011年1月26日 优先权日2011年1月26日
发明者孙立峰, 李毅, 罗翰, 胡伟栋, 蔡飞飞 申请人:北京世纪鼎点软件有限公司, 清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1