视频编码方法、解码方法、编码及解码装置的制作方法

文档序号:7722009阅读:111来源:国知局
专利名称:视频编码方法、解码方法、编码及解码装置的制作方法
技术领域
本发明涉及视频编解码技术领域,尤其涉及一种视频编码方法、解码方法、编码及 解码装置。
背景技术
视频信号中存在着大量的冗余信息,这些冗余信息可以分成空间冗余信息、时间 冗余信息、数据冗余信息和视觉冗余信息。视频压缩技术一般基于块的、集预测编码、变换编码和熵编码于一体的传统混合 编码(Hybrid Coding)框架。传统的视频混合编码框架中的预测编码将编码帧分成编码单元,对编码单元进行 预测编码,得到预测值,并求得预测值和待编码值的差即残差数据,对残差数据进行二维变 换编码;然后在变换域中对变换系数进行量化、扫描转换成一维信号;最后进行熵编码。现有技术中,提出了一种使用二重预测的编解码方法。该方法将传统混合视频编 解码框架中的预测定义为第一重预测,解码重建图像的重建过程包含二重预测补偿过程和 第二重预测存储;相应地,把传统混合视频编解码框架中的预测残差定义为第一重残差,把 针对第一重残差的预测定义为第二重预测。二重预测补偿过程包括第一重预测补偿过程和 第二重预测补偿过程。第二重预测补偿过程的输入包括重建后的第一重残差和重建后的第 二重残差,由此得到重建后的残差。编码方法包括二重预测过程和第二重预测存储。其中,二重预测过程包括第一重 预测过程和第二重预测过程。第二重预测过程的输入包括第一重残差和第一重残差预测 值,并由此生成第二重残差。第一重残差预测值由重建后的第一重残差根据第二重模式使 用预测方法生成。编码方法产生的相应码流,包括第一重模式和第二重残差,不包括第一重 残差;或者包括第一重模式、第二重模式和第二重残差,不包括第一重残差。在实现本发明的过程中,发明人发现现有技术至少存在以下缺陷二重预测的作 用单位为一个宏块,即对于一个宏块,其所有子块要么均采用二重预测要么均不采用二重 预测,二重预测的灵活性差,编解码效率不高。

发明内容
本发明实施例提出一种视频编码方法、解码方法、编码及解码装置,通过细化二重 预测标记符号标识二重预测的编解码块的单位,以增强二重预测的灵活性,提高编解码的 效率。本发明实施例提供了一种视频编码方法,包括对编码块生成二重预测标记符号;当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测 标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记符号进行预测,得到预测图像;根据所述预测图像,得到预测残差,对所述预测残差进行编码。本发明实施例还提供了一种视频编码装置,包括第一生成模块,用于对编码块生成二重预测标记符号;第二生成模块,用于当所述编码块需要进行二重预测时,对所述编码块的至少一 个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二 重预测;预测模块,用于根据所述编码块的二重预测标记符号和所述编码块的至少一个子 块的二重预测标记符号进行预测,得到预测图像。本发明实施例提供的视频编码方法和编码装置通过用子块级二重预测标记符号 对编码块中的子块进行标识,将二重预测标记符号标识的二重预测的单位细化到了子块 级,即细化了二重预测标记符号标识二重预测的编码块的单位,可以增强二重预测的灵活 性,提高编解码的效率。本发明实施例还提供了一种视频解码方法,包括获取解码块的二重预测标记符号;当所述解码块的二重预测标记符号指示该解码块需要进行二重预测时,获取所述 解码块的至少一个子块的二重预测标记符号;根据所述解码块的二重预测标记符号和所述解码块的至少一个子块的二重预测 标记符号进行预测,得到预测图像。本发明实施例还提供了一种视频解码装置,包括第一获取模块,用于获取解码块的二重预测标记符号;第二获取模块,用于当所述解码块的二重预测标记符号指示该解码块需要进行二 重预测时,获取所述解码块的至少一个子块的二重预测标记符号;解码预测模块,用于根据所述解码块的二重预测标记符号和所述解码块的至少一 个子块的二重预测标记符号进行预测,得到预测图像。本发明实施例提供的视频解码方法和解码装置通过获取对解码块中的一级子块 进行标识的子块级二重预测标记符号,将二重预测的单位细化到了子块级,即细化了二重 预测标记符号标识二重预测的解码块的单位,可以增强二重预测的灵活性,提高解码的效率。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的 附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普 通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的一种视频编码方法的流程图;图2为本发明实施例二提供的一种视频解码方法的流程图;图3为本发明实施例三提供的一种视频编码方法的流程图;图4为本发明实施例三、实施例四、实施例五与实施例六中的宏块结构示意图;图5为本发明实施例四提供的一种视频解码方法的流程图6为本发明实施例五提供的一种视频编码方法的流程图;图7为本发明实施例六提供的一种视频解码方法的流程图;图8为本发明实施例七提供的一种视频编码方法的流程图;图9为本发明实施例七与实施例八中的宏块结构示意图;图10为本发明实施例八提供的一种视频解码方法的流程图;图11为本发明实施例提供的视频编码方法中CABAC的编码过程示意图;图12为本发明实施例提供的视频编码方法中CABAC做算术编码时的流程图;图13为本发明实施例提供的视频编码方法中mXn子块的sub_s0p_flag语法元 素的编码方法的流程图;图14为本发明实施例提供的视频编码方法中mXn子块的sub_s0p_flag语法元 素的编码方法作用的子块示意图;图15为本发明实施例提供的视频解码方法中mXn子块的sub_s0p_flag语法元 素的解码方法的流程图;图16为本发明实施例提供的视频编码装置的结构示意图;图17为本发明实施例提供的视频解码装置的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。当编解码方法采用二重预测技术时,可以增加语法元素二重预测标记符号 (Second Order Prediction Flag, sop—flag)、模式预 贝|J 准石角标志(PredictionSecond Prediction Mode Flag, pred_sp_mode_flag)禾口第二重模式角军石马信息(Remaining Second Prediction Mode, rem_sp_mode)。其中,SOp_flag为二重预测标记符号标识,用于标识当前编解码块是否采用二重 预测技术,其值为0或1。即对于一个编解码块,通过码流中的sop_f lag来指示该编解码 块中所有子块是均采用二重预测还是均不采用二重预测。当该宏块Sop_flag为0时,表 示该编解码块中的所有子块均不采用二重预测技术进行重建,在编码端不需要生成语法元 素pred_sp_mode_f lag和rem_sp_mode,在解码端也不需要从码流中解析出语法元素pred_ sp_mode_flag和rem_sp_mode。当该编解码块sop_flag为1时,表示该编解码块中的所 有子块均采用二重预测技术进行重建,在编码端生成语法元素pred_Sp_m0de_flag和rem_ sp_mode,经熵编码后写入码流;在解码端从码流中解析出语法元素pred_Sp_m0de_f lag和 rem_sp_mode。pred_sp_mode_flag和rem_sp_mode为与第二重帧内预测模式相关的句法元素。 第二重帧内预测模式的值为0 8,分别代表9种帧内预测模式。第二重帧内预测模式的解 码方法与H. ^4/AVC中的4X4帧内预测模式的解码方法一样,即为先看预测是否准确。若 准确,则模式等于模式预测值对应的模式;若预测不准确,则需继续从码流中解析信息来得 到模式。
pred_Sp_m0de_flag表明第二重帧内预测模式是否预测准确,其值为0或1。rem_ sp.mode为第二重帧内预测模式预测不准确时用于表示第二重帧内预测模式的信息。若 当前第二重帧内预测模式预测准确,则码流中不存在当前第二重帧内预测模式的句法元素 rem—sp—mode。rem—sp—mode 的值为 0 7。图1为本发明实施例一提供的一种视频编码方法的流程图。该方法包括步骤11、对编码块生成sop_flag;如依照准则生成编码块的SOp_flag,或者自适应生成编码块的SOp_flag。如果自 适应生成SOp_flag,则无需将SOp_flag经熵编码后写入码流,传输到解码端。步骤12、当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成 SOp_flag,所述子块的SOp_flag用于表示该子块是否进行二重预测;当所述编码块需要进行二重预测时,表明在所述SOp_flag对应的编码块中,至少 有一个一级子块进行二重预测。这种情况下,生成所述编码块中的每个子块的Sop_flag, 为便于描述,后续将子块的sop_flag称为子块级二重预测标记符号(Sub Second Order Prediction Flag, sub_sop_flag);所述sub_sop_flag用于表示对应的子块是否进行二重 预测;如SOp_flag的值为0时,表示对应的编码块中所有子块均不进行二重预测;如 sop_flag的值为1时,表示对应的编码块中至少有一个子块进行二重预测。当编码块中至少有一个子块进行二重预测时,与步骤11类似,可依照准则,或者 可自适应生成编码块中的每个子块的sub_sop_flag。如sub_sop_flag的值为0时,表示对 应的子块不采用二重预测技术进行重建;如sub_sop_flag的值为1时,表示对应的子块采 用二重预测技术进行重建。自适应生成sub_s0p_flag,考虑到图像之间的变化,始终自适应会导致信息不准 确。具体地,可对于第一个帧间编码的帧,采用依照准则的方式生成,并传输给解码端;自 适应生成方法可以是对于之后的帧,根据运动矢量对应的参考帧的已解码块的SUb_SOp_ flag的值,直接得到当前子块的SUb_SOp_flag,以实现灵活的编码方式。并且,在帧级的 头信息中加入新的语法元素指出当前帧编码时是否使用自适应。如果使用自适应,则根据 运动矢量对应的参考帧的已解码块的sub_s0p_flag的值,直接得到当前子块的sub_s0p_ flag ;如果不使用自适应,则按照准则生成sub_s0p_flag。自适应地获得sub_s0p_flag的 方法不局限于此。步骤13、根据所述编码块的SOp_flag和所述编码块的至少一个sub_s0p_flag进 行预测,得到预测图像;步骤14、根据所述预测图像得到预测残差,对所述预测残差进行编码。本实施例中,对于所述编码块中进行二重预测的子块,生成相应的pred_Sp_m0de_ flag ;如依照准则生成进行二重预测的子块的pred_sp_mode_flag。当pred_sp_mode_ flag的值为0时,还需要生成rem_Sp_m0de,以便解码端根据该生成的rem_Sp_m0de进行二
重预测解码重建。对所述pred_sp_mode_flag进行熵编码后,写入码流。如当pred_sp_mode_flag的值为1时,只需将pred_sp_mode_flag进行熵编码写入码流,发送到解码端。解码端根据pred_Sp_m0de_flag的值自适应生成rem_Sp_m0de。当 pred_sp_mode_flag的值为0时,还需要将rem_Sp_m0de进行熵编码写入码流,并发送到解 码端。解码端根据接收到的rem_Sp_m0de进行二重预测解码重建。本实施例提供的技术方案通过用Sub_SOp_flag对编码块中的子块进行标识,将 sop_flag标识的二重预测的单位细化到了子块级,即将进行二重预测编码的块大小进行来 缩小和合理的组合,从而更加充分地发挥了二重预测技术的优势,使得当当前编码块的所 有子块不都采用二重预测的编码效率有可能高于其所有子块均采用二重预测的编码效率, 或者高于其所有子块均不采用二重预测的编码效率。本实施例提供的技术方案将二重预测 标记符号标识的二重预测的单位细化到了子块级,即细化了二重预测标记符号标识二重预 测的编码块的单位,可以增强二重预测的灵活性,提高编解码的效率。当SOp_flag依照准则生成,需要传输到解码端时,本发明实施例提供的视频编码 方法还可包括对所述s0p_flag、sub_sop_flag进行熵编码后写入码流。当SOp_flag、sub_sop_flag自适应生成,无需传输到解码端时,本发明实施例提 供的视频编码方法还可包括在所述码流的帧级的头信息中加入用于指出当前帧编码时是否使用自适应的语 法元素。当编码块的子块中还包括多个子块时,为便于描述,将编码块的子块称为一级子 块,一级子块中的子块称为二级子块,二级子块中的子块称为三级子块,依此类推。sub_ sop_flag的值为0还表示对应的一级子块中的所有二级子块均不进行二重预测;sub_s0p_ flag的值为1还表示对应的一级子块的所有二级子块均进行二重预测建。此时,对于所述 编码块中进行二重预测的一级子块,生成相应的pred_sp_mode_flag以及rem_sp_mode,可 包括在所述进行二重预测的一级子块中,对每个二级子块生成二级子块级二重预测 标i己符号(Second Sub Second Order Prediction Flag, second_sub_sop_flag);所述 second_sub_sop_flag用于表示对应的二级子块是否进行二重预测;对于进行二重预测的二级子块,生成相应的pred_Sp_m0de_flag,或者进一步生成 rem_sp_mode。second_sub_sop_flag可自适应生成,也可依照准则生成。当SeCOnd_Sub_SOp_flag自适应生成时,无需传输到解码端。解码端同样通过自 适应生成 second_sub_sop_flag。当SeCOnd_Sub_SOp_flag需要传输到解码端时,本发明实施例提供的视频编码方 法还可包括对所述sec0nd_sub_s0p_flag进行熵编码后写入所述码流。当编码块的大小为64X64,U8XU8等等时,该编码块可划分到三级子块、四级 子块甚至更多级子块,与上述sub_s0p_flag、second_sub_sop_flag的编码过程类似,可 将sop_flag细化到三级子块级二重预测标记符号GecondSub Second Order Prediction Flag,Third_sub_sop_flag)、四级子块级二重预测标记符号(Forth Sub Second Order Prediction Flag,Forth_sub_sop_flag)等等,以标识更小的单位是否进行二重预测,进一 步满足更加二重预测的灵活要求,提高编码效率。与上述实施例一相对应地,图2为本发明实施例二提供的一种视频解码方法的流程图。该方法包括步骤21、获取解码块的SOp_flag ;如接收编码端发送的码流,当码流中包含有SOp_flag时,可从所述码流中解析出 sop_flag ;当码流中不包含Sop_flag,可从所述码流中解析出帧级的头信息中用于指出当 前帧编码时是否使用自适应的语法元素,在所述当前帧编码时使用自适应的情况下,自适 应得到sop_flag。步骤22、当所述解码块的sop_f lag指示该解码块需要进行二重预测时,获取所述 解码块的至少一个子块的sop_flag(即至少一个sub_sop_flag);如当码流中包含有sub_s0p_flag时,可从所述码流中解析出sub_s0p_flag ;当码 流中不包含sub_SOp_flag,可从所述码流中解析出帧级的头信息中用于指出当前帧编码时 是否使用自适应的语法元素,在所述当前帧编码时使用自适应的情况下,通过自适应方法 得到sub_s0p_flag。如根据运动矢量对应的参考帧的已解码块的sub_s0p_flag的值,直接 得到当前子块的sub_s0p_flag。其中,sub_sop_flag详见上述步骤12中的说明。步骤23、根据所述解码块的SOp_flag和所述解码块的至少一个sub_s0p_flag进 行预测,得到预测图像。本实施例中,对于所述解码块中进行二重预测的一级子块,从所述码流中解析出 相应的pred_sp_mode_flag,进行二重预测解码重建。当pred_sp_mode_flag的值为0时, 还需要进一步解析出rem_sp_mode。本实施例提供的技术方案通过获取对解码块中的一级子块进行标识的sub_s0p_ flag,将二重预测的单位细化到了子块级,即将进行二重预测编码的块大小进行来缩小和 合理的组合,从而更加充分地发挥了二重预测技术的优势,使得二重预测的对象更加多样 化,满足了不同编码效率的需求。当一级子块被划分为多个二级子块时,上述步骤M中,对于所述解码块中进行二 重预测的一级子块,从所述码流中解析出相应的pred_Sp_m0de_flag,包括在所述进行二重预测的一级子块中,获取每个二级子块的SeCOnd_Sub_SOp_f lag ; 所述SeCOnd_Sub_SOp_flag用于表示对应的二级子块是否进行二重预测;对于进行二重预测的二级子块,从所述码流中解析出相应的pred_Sp_m0de_flag。当解码块的大小为64X64,128X128等等时,该解码块可划分到三级子块、四级 子块甚至更多级子块,与上述sub_sop_flag、second_sub_sop_flag的解码过程类似,可 将sop_flag细化到三级子块级二重预测标记符号(SecondSub Second Order Prediction Flag,Third_sub_sop_flag)、四级子块级二重预测标记符号(Forth Sub Second Order Prediction Flag,Forth_sub_sop_flag)等等,以标识更小的单位是否进行二重预测,进一 步满足更加二重预测的灵活要求。图3为本发明实施例三提供的一种视频编码方法的流程图。该方法包括步骤31、按照一定的准则,如率失真优化(Rate Distortion Optimization, RD0) 准则但不限于此准则,生成MXN级SOp_flag,即大小为MXN的编码块(以下简称MXN编 码块)的sop_flag,并将MXN编码块的sop_flag经熵编码写入码流中。MXN编码块的 sop_flag用来表示该MXN编码块以及其各个mXη子块是否进行二重预测,其中m < = Μ, η <= N,且mXn子块属于当前MXN编码块。
步骤32、与步骤31类似,按照一定的准则,如RDO准则但不限于此准则,生成mXη 子块的sub_sop_flag,并将mXn子块sub_sop_flag经熵编码写入码流中。
如果MX N宏块的sop_f lag为0,则表示该MXN编码块中所有mX η子块均不进行 二重预测,此时,不需要生成 sub_sop_flag 以及 pred_sp_mode_flag 和 rem_sp_mode 等二 重预测相关语法元素,也不需要经熵编码写入码流。如果MXN编码块的sop_flag为1,则表示该MXN编码块中至少有一个mXn子块 进行二重预测。此时,可以按照该MXN编码块一重帧间预测模式所对应的块划分,按照一 定准则,如RDO准则但不限于此准则,为每一个mX η子块生成一个sub_s0p_f lag,并通过熵 编码写入码流中。例如,如图4所示的根据第一重预测模式得到的块划分结构,第二重预测块大小 为8X8。本实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重 预测块大小不仅仅局限于这一种大小。s0p_flag对应着一个16 X 16大小的块,即一个宏 块,而第一重预测模式将此16X 16大小宏块划分成左边一个8X 16块和右边两个8X8块 的形式,即将宏块划分为块1、块2和块3三个子块。如果SOp_flag为1,则依照一定的准 则,如RDO准则但不限于此准则,分别为这三个子块生成一个sub_s0p_f lag,用以指示其对 应的子块的所有第二重预测块是否进行二重预测,并将块1、块2和块3的SUb_SOp_flag通 过熵编码写入码流中。步骤33、当某个子块的sub_s0p_flag为1时,根据一定的准则,如RDO准则但不 限于此准则,生成二重预测相关语法元素pred_Sp_m0de_flag和rem_Sp_m0de等,并对二重 预测相关语法元素进行熵编码后,写入码流中。例如图4中大小为8X16的块1子块,如果 块1的SUb_SOp_flag为1,则根据一定的准则,如RDO准则但不限于此准则,生成该块1的 一组pred_sp_mode_f lag和rem_sp_mode,经过熵编码后写入码流中。并且,该块1子块采 用二重预测技术进行编码。对于块1子块中所有的第二重预测块采用同一种二重预测模式 rem_sp_mode进行二重预测重建。同样解码端也采用相同的rem_Sp_m0de进行二重预测解 码重建。当某个子块的Sub_SOp_flag为0时,对此子块的所有第二重预测块不进行二重预
测解码重建。与上述实施例三相对应地,图5为本发明实施例四提供的一种视频解码方法的流 程图。解码端解码的方法包括步骤51、从码流中解析出MXN解码块的sop_f lag,用来获取该MXN解码块及其 各个mX η子块是否进行二重预测。其中,111<=11,11<= N,且mX η子块属于当前MXN解 码块。步骤52、解析得到 sub_sop_flag。具体地,如果MXN解码块的sop_flag为0,则表示该MXN解码块中所有mXn子 块均不进行二重预测。此时,不需要进一步从码流中解析出sub_s0p_flag以及其他二重预 测相关i吾法元素如 pred_sp_mode_flag 禾口 rem_sp_mode 等。如果MXN解码块的sop_flag为1,则表示该MXN解码块中至少有一个mXn子块 采用二重预测技术进行重建。此时,可以按照该MXN解码块一重帧间预测模式所对应的块 划分,为每一个mXn子块从码流中解析出一个SUb_SOp_flag。例如,如图4所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8X8。本实例不仅仅局限于这一种 块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。 SOp_flag对应16X 16大小的块,即一个宏块,而第一重预测模式将此16X 16大小宏块划分 成左边一个8X 16子块和右边两个8X8子块的形式,即块1,块2和块3三个子块。sop_ flag为1,则分别为这三个子块从码流中各解析出一个sub_SOp_flag,用以指示其对应的 子块的所有第二重预测块是否进行二重预测。步骤53、当某个子块的sub_s0p_flag为1时,则从码流中解析出二重预测相关语 法元素如pred_sp_mode_flag和rem_sp_mode等,对此子块中所有第二重预测块进行二重 预测重建,并且这个子块中所有第二重预测块所采用的二重预测模式相同。例如图4中大 小为8 X 16的块1子块,如果块1的sub_s0p_flag为1,则从码流中解析出该8 X 16块的一 组pred_sp_mode_flag和rem_sp_mode,对其中所有的第二重预测块进行二重预测解码重 建,并采用同一种二重预测模式。当某个子块的sub_s0p_f lag为0时,对此子块的所有第二重预测块不进行二重预
测解码重建。图6为本发明实施例五提供的一种视频编码方法的流程图。该方法包括步骤61、按照一定的准则,如RDO准则但不限于此准则,根据参考帧或当前帧已解 码块的信息自适应地获得MXN编码块的sop_f lag,用来表示该MXN编码块及其各个mXη 子块是否进行二重预测。其中,m<=M,n<=N,且mXn子块属于当前MXN编码块。步骤62、与步骤61类似,按照一定的准则,如RDO准则但不限于此准则,根据参考 帧或当前帧已解码块的信息自适应地获得mXn子块的sub_s0p_flag。如果MXN编码块的sop_flag为0,则表示该MXN编码块中所有mXn子块均不 进行二重预测。此时,不需要进一步获得Sub_SOp_flag及其他二重预测相关语法元素如 pred_sp_mode_flag 禾口 rem_sp_mode 等。如果MXN编码块的sop_flag为1,则表示该MXN编码块中至少有一个mXn子块 进行二重预测。此时,可以按照该MXN编码块一重帧间预测模式所对应的块划分,按照一 定准则,如RDO准则但不限于此准则,根据参考帧或当前帧已解码块的信息,为每一个mXn 子块自适应地获得一个SUb_SOp_flag。例如,如图4所示的根据第一重预测模式得到的块 划分结构,第二重预测块大小为8X8。本实例不仅仅局限于这一种块划分模式,可以有多 种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。SOp_flag对应大小为 16X16的块,即一个宏块。第一重预测模式将此16X 16大小宏块划分成左边一个8X 16块 和右边两个8X8块的形式,即块1、块2和块3三个子块。如果Sop_flag为1,则通过一定 的准则,如RDO准则但不限于此准则,分别为这三个子块,根据参考帧或当前帧已解码块的 信息自适应地获得一个sub_SOp_flag,用以指示其对应的子块的所有第二重预测块是否进 行二重预测。自适应地获得SUb_SOp_flag具体地可包括根据运动矢量对应的参考帧的 已解码块的sub_s0p_flag的值,直接得到当前子块的sub_s0p_flag。自适应地获得sub_ sop_flag的方法不局限于上面描述的方法。步骤63、当某个子块的Sub_SOp_flag为1时,根据一定的准则,如RDO准则但不限 于此准则,生成二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等,并对二重 预测相关语法元素进行熵编码,写入码流中。
当某个子块的sub_s0p_f lag为0时,对此子块的所有第二重预测块不进行二重预 测解码重建。例如图4中大小为8 X 16的块1子块,其,如果块1的sub_s0p_flag为1,则 根据一定的准则,如RDO准则但不限于此准则,生成该块1子块的一组pred_Sp_m0de_flag 禾口 rem_sp_mode,并对pred_sp_mode_f lag禾口 rem_sp_mode进冲亍少商编石马后,写人石马、流中。该 子块进行二重预测。对于块1子块中所有的第二重预测块采用同一种二重预测模式rem_ sp_mode进行二重预测。同样,解码端也采用相同的rem_Sp_m0de进行二重预测解码重建。与实施例五相对应地,图7为本发明实施例六提供的一种视频解码方法的流程 图。解码端解码的方法包括步骤71、根据参考帧或当前帧已解码块的信息自适应地得出MXN解码块的sop_ flag,用来表示该MXN解码块及其各个m X η子块是否进行二重预测。其中m< = M,n< = N,且mXη子块属于当前MXN解码块。步骤72、自适应获得 sub_sop_flag。具体地,如果MXN解码块的sop_flag为0,则表示该MXN解码块中所有mXn子 块均不进行二重预测。此时,不需要进一步获得Sub_SOp_flag及其他二重预测相关语法元 素如 pred_sp_mode_flag 禾口 rem_sp_mode 等。如果MXN解码块的sop_flag为1,则表示该MXN解码块中至少有一个mXn子块 进行二重预测。此时,可以按照该MXN解码块一重帧间预测模式所对应的块划分,根据参 考帧或当前帧已解码块的信息,为每一个mXn子块自适应地得出一个sub_s0p_flag。例 如,如图4所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8X8。本 实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重预测块大小 不仅仅局限于这一种大小。SOp_flag对应大小为16X16的块,即一个宏块,第一重预测模 式将此16X 16大小宏块划分成左边一个8X 16块和右边两个8X8块的形式,即块1、块2 和块3三个子块。如果SOp_flag为1,则分别为这三个子块根据参考帧或当前帧已解码块 的信息自适应地得出一个sub_SOp_flag,用以指示其对应的子块的所有第二重预测块是否 进行二重预测。自适应地获得SUb_SOp_flag具体可包括根据运动矢量对应的参考帧的已 解码块的sub_s0p_flag的值直接得到当前子块的sub_s0p_flag。自适应地获得sub_s0p_ flag的方法不局限于上面描述的方法。步骤73、当某个子块的sub_s0p_flag为1时,则从码流中解析出二重预测相关语 法元素如pred_sp_mode_flag和rem_sp_mode等,对此子块中所有第二重预测块进行二重 预测,并且这个子块中所有第二重预测块所采用的二重预测模式相同。例如图4中的块1子 块,其大小为8X 16,如果块1的811、8叩_打叫为1,则从码流中解析出该8\16块的一组 pred_sp_mode_flag和rem_sp_mode,对其中所有的第二重预测块进行二重预测解码重建, 并采用同一种二重预测模式。当某个子块的sub_s0p_flag为0时,对此子块的所有第二重预测块不进行二重预
测解码重建。图8为本发明实施例七提供的一种视频编码方法的流程图。该方法包括步骤81、按照一定的准则,如RDO准则但不限于此准则,生成MXN编码块的sop_ flag,并将MXN编码块的sop_flag经熵编码后写入码流中。MXN编码块的sop_flag用 来表示该MXN编码块及其各个mX η子块是否进行二重预测。其中m<=M,n<=N,且mXn子块属于当前MXN编码块。步骤82、与上述步骤81类似,按照一定的准则,如RDO则但不限于此准则,生成 mXn子块的sub_sop_flag,并将mXn子块的sub_sop_flag经熵编码后写入码流中。具体地,如果MXN编码块的sop_flag为0,则表示该MXN编码块中所有mXn子 块均不进行二重预测。此时,不需要进一步通过熵编码在码流中写入sub_s0p_flag以及其 他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。如果MXN编码块的sop_flag为1,则表示该MXN编码块中至少有一个mXn子块 进行二重预测。此时,可以按照该MXN编码块一重帧间预测模式所对应的块划分,按照一 定准则,如RD0(Rate Distortion Optimization)准则但不限于此准则,为每一个mXn — 级子块生成一个sub_SOp_flag,并进行熵编码后写入码流中。例如,如图9所示的根据第 一重预测模式得到的块划分结构,第二重预测块大小为8X8。本实例不仅仅局限于这一种 块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。 SOp_flag对应大小为32X32的宏块,第一重预测模式将此大小为32X32的宏块划分成四 个16X16 —级子块的结构,即一级子块A、一级子块B、一级子块C和一级子块D。每个大小 为16X16的一级子块又划分成4个大小为8X8的二级子块。如果SOp_flag为1,则分别 根据一定的准则,如RDI准则但不限于此准则,为这四个一级子块生成一个SUb_SOp_flag, 用以指示其对应的一级子块的所有第二重预测块是否进行二重预测,并对sub_SOp_flag 进行熵编码后写入码流中。步骤83、当某个一级子块的sub_s0p_flag为1时,则为该一级子块中的每一个二 级子块根据一定的准则,如RDO准则但不限于此准则,生成一个sec0nd_sub_s0p_flag,用 以表示该二级子块中第二重预测块是否均进行二重预测解码重建,并经过熵编码后写入码 流中。如果某个二级子块的SeCOnd_Sub_SOp_flag为0,则表示该二级子块中所有第二 重预测块均不进行二重预测。此时,不需要进一步通过熵编码在码流中写入sub_s0p_flag 以及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。如果某个二级子块的SeCOnd_Sub_SOp_flag为1,则表示该二级子块中所有第二 重预测块均进行二重预测,并且这个二级子块中所有第二重预测块所采用的二重预测模式 相同。此时,根据一定的准则,如RDO准则但不限于此准则,生成二重预测相关语法元素如 pred_sp_mode_flag和rem_sp_mode等,并通过熵编码写入码流中。例如图9中大小为16\16的一级子块队如果其81113_8叩_打叫为1,则根据一定的 准则,如RDO准则但不限于此准则,为其每个8\8二级子块分别生成一个8沈011(1_81113_8叩_ flag,并通过熵编码写入码流中。如果某个8X8 二级子块的sec0nd_sub_s0p_flag为1,根 据一定的准则,如RDO准则但不限于此准则,生成二重预测相关语法元素如pred_Sp_m0de_ flag和rem_Sp_mode等,并通过熵编码写入码流中,并对该二级子块进行二重预测。对于该 二级子块中所有的第二重预测块采用同一种二重预测模式rem_Sp_m0de进行二重预测。同 样解码端也采用相同的rem_Sp_m0de进行二重预测解码重建。当某个一级子块的SUb_SOp_flag为0时,该一级子块中所有子块均不进行二重预
测解码重建。与上述实施例七相对应地,图10为本发明实施例八提供的一种视频解码方法的流程图。解码端解 码的方法包括步骤101、从码流中解析出MXN解码块的sop_flag,用来表示该MXN解码块及其 各个mXn子块是否采用二重预测技术。其中m<=M,n<=N,且mXn子块属于当前MXN 解码块。步骤102、解析子块的 sub_sop_flag。具体地,如果MXN解码块的sop_flag为0,则表示该MXN解码块中所有mXn子 块均不进行二重预测。此时,不需要进一步从码流中解析出sub_s0p_flag以及其他二重预 测相关i吾法元素如 pred_sp_mode_flag 禾口 rem_sp_mode 等。如果MXN解码块的sop_flag为1,则表示该MXN解码块中至少有一个mXn子块 进行二重预测。此时,可以按照该MXN解码块一重帧间预测模式所对应的块划分,为每一 个大小为mXn的一级子块从码流中解析出一个SUb_SOp_flag。例如,如图9所示的根据第 一重预测模式得到的块划分结构,第二重预测块大小为8X8。本实例不仅仅局限于这一种 块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。 sop_flag对应大小为32 X 32的宏块,第一重预测模式将此32 X 32大小宏块划分成四个大 小为16X16 —级子块的结构,即一级子块A,一级子块B、一级子块C和一级子块D。每个 16X16—级子块又划分成4个8X8的二级子块。如果sop_flag为1,则分别为这四个一 级子块从码流中各解析出一个sub_SOp_flag,用以指示其对应的一级子块的所有第二重预 测块是否进行二重预测。步骤103、当某个一级子块的sub_s0p_flag为1时,则为该一级子块中的每一个二 级子块分别从码流中解析出一个SeCOnd_SUb_SOp_flag,用以表示该二级子块中第二重预 测块是否均进行二重预测解码重建。如果某个二级子块的SeCOnd_Sub_SOp_flag为0,则表示该二级子块中所有第二 重预测块均不进行二重预测。此时,不需要进一步从码流中解析出sub_s0p_flag以及其他 二重预测相关i吾法元素如pred—sp—mode—flag禾口 rem_sp_mode等。如果某个二级子块的SeCOnd_Sub_SOp_flag为1,则表示该二级子块中所有第二 重预测块均进行二重预测,并且这个二级子块中所有第二重预测块所采用的二重预测模式 相同。例如图9中大小为16 X 16的一级子块A,如果其sub_s0p_flag为1,则从码流中 分别为其每个8X8 二级子块分别解析出一个sec0nd_sub_s0p_flag。如果某个8X8 二级 子块的second_sub_sop_flag为1,则从码流中解析出该8X8 二级子块的一组pred_sp_ mode_flag和rem_Sp_m0de,对其中所有的第二重预测块进行二重预测解码重建,并采用同
一种二重预测模式。当某个一级子块的SUb_SOp_flag为0时,该一级子块中所有子块均不进行二重预
测解码重建。上述实施例一、实施例三、实施例五、实施例七及实施例九中所涉及的sub_s0p_ flag,可采用基于上下文的自适应二进制算术编码(Context AdaptiveBinary Arithmetic Coding, CABAC)的方式进行编码,以保证在增加语法元素的情况下仍然能够使二重预测模 式信息的编码性能得到提升。CABAC的基本编码步骤可分为二进制化、上下文建模、二进制算术编码三步。二进制化主要是将非二进制的各语法元素值转换成二进制的比特序列,如果语法元素本身是二 进制的,则该步骤可省略。上下文建模主要是为已二进制化的语法元素的比特序列的每一 位提供概率模型,进行概率预测,有时会需要以前已编码的语法元素或者比特序列。二进制 算术编码有两种编码模式,一种是常规编码模式(regular coding mode),另一种是旁路编 码模式(by pass coding mode) 0其中,常规编码模式采用上下文建模,而旁路编码模式为 了加快编码速度不采用上下文建模,整个编码过程如图11所示。步骤111、二进制化。为了降低算术编码的复杂度,提高编码速度,CABAC采用了二 进制的算术编码而非其它多进制的算术编码。为此,需要事先将每一语法元素转换成独一 无二的二进制序列,该二进制序列在H.沈4中称为二进制字符串(bin string)。同时,为 了便于后面的算术编码尽可能降低编码复杂度,应该尽可能减小二进制序列的大小。CABAC 采用了 4种基本二进制转换方式。步骤112、上下文建模。在算术编码前,必须进行上下文建模。所谓上下文建模,就 是建立概率模型,对每一位待编码的比特值和概率进行预测。在H. 264中,一共有399种上 下文模型,这些模型可分为4种类型。第1种类型的模型必须根据它相邻的已编码的语法 元素构成,一般是用其左边和上边的对应语法元素来建立相应的概率模型,对当前语法元 素进行概率预测。第2种模型仅局限于对宏块类型和子块类型的应用。其中第N比特的概 率模型的选定要参考前面已编码第N-I比特所采用的模型。第3种和第4种模型仅用于残 余数据的编码,这两种模型都依赖编码块的类型。其中第3种模型依赖的不是已编码的数 据,而是数据在扫描路径中的位置。第4种模型则要计算该比特所在电平之前已编码的电 平数。在H. 264中,除了这些条件概率模型之外,还有一些固定概率模型,它们对待编码的 比特提供固定的概率预测,不因以前已编码的比特而改变。步骤113、二进制算术编码。在CABAC中,对每一待编码的比特位的值0或1,用最 大概率符号(most probable symbol,MPS)和最小概率符号(leastprobable symbol,LPS) 表示。其中,MPS表示最可能出现的状态,对应0和1中概率大的那一个。LPS表示最不可 能出现的状态,对应0和1中概率小的那一个。这样只需要一个变量值来保存LPS出现的 概率大小。同时,它把概率量化成64个等级,每一概率由其对应的索引ο唯一给出。这样 在CABAC中,每一个上下文模型可由两个变量唯一决定。CABAC做算术编码时的流程图见图12。CABAC的概率模型很有效地降低了概率估 计和刷新中的计算量。CABAC首先建立一个4X64的二维表格,存储预先计算好的乘法结 果。表格的入口参数毫无疑问一格来自Px,另一个来自R。I3X可以直接以σ作为参数,R 的量化公式为ρ = (R >> 6) &3。其中,R表示当前区间的大小,P表示R的结果,>>表示比特级右移,&表示比特 级“与”操作。每次在需要做乘法运算时,携带P和ο进行查表操作就可以得到结果。简历了 概率模型和乘法模型后,在递进计算过程中CABAC必须保存一下变量的记录状态,包括当 前区间的下限L、当前区间的大小R、当前MPS字符、LPS的概率编号ο。如图13所示,图13为本发明实施例提供的视频编码方法中mXn子块的sub_s0p_ flag语法元素的编码方法的流程图。以图14所示的子块A、子块B及子块C为例,mXn子块的sub_s0p_flag语法元素的编码过程包括步骤131、对sub_s0p_flag建立三个不同的概率模型,并且进行相应的概率模型 初始化。假设这三个概率模型的标号分别为0、1、2。步骤132、根据当前mXη子块C的相邻的左边的mXn子块A和上边的mXn子块 B的sub_s0p_flag的值,来进行当前mXn子块C的sub_s0p_flag的概率模型的选择。选 择公式如下Context_sub_sop_flag(C) = sub_sop_flag(A)+sub_sop_flag(B)。其中,C0nteXt_Sub_S0p_flag(C)表示当前mX η子块C要采用的算术编码解码的 概率模型。sub_sop_flag(χ)表示mXn子块χ的sub_sop_flag的值。若mXn子块χ不可 用,则sub_s0p_f lag (χ) = 0。假设子块A、子块B的sub_s0p_f lag均为0,则选择概率模型 0。若子块A的sub_s0p_flag为0,子块B的sub_s0p_flag为1,则选择概率模型1。若子 块A、子块B的sub_s0p_flag为1,则选择概率模型2。步骤133、利用选择的概率模型进行CABAC编码。由于CABAC采用了高效的算术编 码思想,同时充分考虑视频流相关统计特性,因而大大提高了编码效率。相对应地,图15为本发明实施例提供的视频解码方法中mXn子块的sub_s0p_ flag语法元素的解码方法的流程图,解码过程包括步骤151、对sub_s0p_flag建立三个不同的概率模型,并且进行相应的概率模型 初始化。令这三个概率模型的标号分别为0、1、2、3。步骤152、根据当前mX η子块C的相邻的左边的mXn子块A和上边的mXn子块 B的sub_s0p_flag的值,来进行当前mXn子块C的sub_s0p_flag的概率模型的选择。概 率模型的选择公式为Context_sub_sop_flag(C) = 2Xsub_sop_flag(A)+sub_sop_flag(B)。其中,C0nteXt_Sub_S0p_flag(C)表示当前mX η子块C要采用的算术编码解码的 概率模型。sub_sop_flag(χ)表示mXn子块χ的sub_sop_flag的值。若mXn子块χ不可 用,则sub_s0p_f lag (χ) =O0假设子块Α、子块B的sub_s0p_f lag为0,则选择概率模型0。 若子块A的sub_sop_flag为0且子块B的sub_sop_flag为1,或子块A的sub_sop_flag 为1且B块的sub_s0p_f lag为0,则选择概率模型1。若子块A、子块B的sub_s0p_f lag为 1,则选择概率模型2。步骤153、利用选择的概率模型进行CABAC码流解析,也即进行二进制算术解码, 得到一个二进制(bin),将这个bin的值直接赋给sub_s0p_flag。图16为本发明实施例提供的视频编码装置的结构示意图。该编码装置包括第一 生成模块161、第二生成模块162、预测模块163及编码模块164。第一生成模块161用于 对编码块生成SOp_flag,如所述第一生成模块161通过自适应方法得到所述编码块的sop_ flag,详见上述方法实施例中步骤11的说明。第二生成模块162用于当所述编码块需要 进行二重预测时,对所述编码块的至少一个子块生成子块的SOp_flag即SUb_SOp_flag,所 述SUb_SOp_flag用于表示该子块是否进行二重预测;如所述第二生成模块162针对所述编 码块中的每个子块通过自适应方法得到sub_s0p_flag。详见上述方法实施例中步骤12的 说明。预测模块163用于根据所述编码块的SOp_flag和所述编码块的至少一个sub_s0p_ flag进行预测,得到预测图像;编码模块164用于根据所述预测图像,得到预测残差,对所述预测残差进行编码。本发明实施例提供的视频编码装置还可包括第三生成模块165用于对于所述编 码块中进行二重预测的子块,生成相应的pred_Sp_m0de_flag,详见上述方法实施例中的说 明。此时,编码模块164还可用于对所述pred_Sp_m0de_flag进行熵编码后,写入码流。当 sop_flag,sub_sop_flag需要传输到解码端时,所述编码模块164还用于对所述SOp_flag、 sub_sop_flag进行熵编码后,写入码流。对所述Sub_SOp_flag进行熵编码时,所述编码模 块164可具体用于进行CABAC。本实施例中,视频编码装置通过用sub_s0p_f lag对编码块中的子块进行标识,将 sop_flag标识的二重预测的单位细化到了子块级,即将进行二重预测编码的块大小进行来 缩小和合理的组合,从而更加充分地发挥了二重预测技术的优势,使得当当前编码块的所 有子块不都进行二重预测的编码效率有可能高于其所有子块均进行二重预测的编码效率, 或者高于其所有子块均不进行二重预测的编码效率。当SOp_flag、sub_sop_flag无需传输到解码端时,本发明实施例提供的视频编码 装置还可包括头信息设置模块166。该头信息设置模块166用于在所述码流的帧级的头信 息中加入用于指出当前帧编码时是否使用自适应的语法元素,以便解码端根据该语法元素 决定是从码流中解析获得s0p_flag、sub_s0p_flag,还是通过自适应获得SOp_flag、sub_ sop_flag0当进行二重预测的子块被划分为多个二级子块时,所述第三生成模块165可包 括第一生成子模块167及第二生成子模块168。其中二级子块详见上述方法实施例中的 说明。第一生成子模块167用于在所述进行二重预测的一级子块中,对每个二级子块生 成second_sub_sop_flag ;所述second_sub_sop_flag用于表示对应的二级子块是否进行 二重预测。第二生成子模块168用于对于进行二重预测的二级子块,生成相应的pred_Sp_ mode_flag0此时,所述编码模块164还用于对所述SeCOnd_Sub_SOp_flag进行熵编码后,写入 所述码流。图17为本发明实施例提供的视频解码装置的结构示意图。该视频解码装置包括 第一获取模块171、第二获取模块172及解码预测模块173。第一获取模块171用于获取解 码块的Sop_flag。如所述第一获取模块171具体用于从所述码流中解析出解码块的sop_ flag,详见上述方法实施例中步骤21的说明。第二获取模块172用于当所述解码块的sop_ flag指示该解码块需要进行二重预测时,获取所述解码块的至少一个子块的SOp_flag即 sub_sop_flag ;如所述第二获取模块172具体用于从所述码流中解析出所述解码块中的每 个子块的SUb_SOp_flag。具体地,所述第二获取模块172可用于采用基于上下文的二进制 算术解码从所述码流中解析出所述解码块中的每个子块的sub_SOp_flag。所述sub_s0p_ flag用于表示对应的子块是否进行二重预测,详见上述方法实施例中步骤22的说明。解码 预测模块173用于根据所述解码块的二 SOp_flag和所述解码块的至少一个SUb_SOp_flag 进行预测,得到预测图像。本发明实施例提供的视频解码装置还可包括第三获取模块174,用于对于所述解 码块中进行二重预测的子块,从所述码流中解析出相应的pred_Sp_m0de_flag,以用于进行二重预测,详见上述方法实施例的说明。本发明实施例提供的视频解码装置还可包括解析模块175,用于从所述码流中解 析出帧级的头信息中用于指出当前帧编码时是否使用自适应的语法元素。当当前帧编码时 使用自适应时,所述第一获取模块171具体用于通过自适应方法得到解码块的SOp_flag ; 所述第二获取模块172具体用于通过自适应方法得到所述解码块中的每个SUb_SOp_flag。当一级子块(详见上述方法实施例的说明)被划分为多个二级子块时,所述第三 获取模块174可包括获取子模块176及解析子模块177。获取子模块176用于在所述进 行二重预测的一级子块中,获取每个二级子块的second_sub_sop_flag ;所述second_sub_ SOp_flag用于表示对应的二级子块是否进行二重预测。解析子模块177用于对于进行二重 预测的二级子块,从所述码流中解析出相应的pred_Sp_m0de_flag。本实施例中,采用二重预测的视频解码装置通过获取对解码块中的一级子块进行 标识的SUb_SOp_flag,将二重预测的单位细化到了子块级,即将进行二重预测编码的块大 小进行来缩小和合理的组合,从而更加充分地发挥了二重预测技术的优势,使得二重预测 的对象更加多样化,满足了不同编码效率的需求。本实施例提供的技术方案将二重预测标记符号标识的二重预测的单位细化到了 子块级,即细化了二重预测标记符号标识二重预测的编码块的单位,可以增强二重预测的 灵活性,提高编解码的效率。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种视频编码方法,其特征在于,包括对编码块生成二重预测标记符号;当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记 符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记 符号进行预测,得到预测图像;根据所述预测图像,得到预测残差,对所述预测残差进行编码。
2.根据权利要求1所述的视频编码方法,其特征在于,还包括对于所述编码块中进行二重预测的子块,生成相应的模式预测准确标志,以用于进行 二重预测。
3.根据权利要求1所述的视频编码方法,其特征在于,还包括对所述编码块的二重预 测标记符号、所述子块的二重预测标记符号进行熵编码后,写入码流,发送给解码端。
4.根据权利要求1所述的视频编码方法,其特征在于,对编码块生成二重预测标记符 号包括通过自适应方法得到所述编码块的二重预测标记符号。
5.根据权利要求1所述的视频编码方法,其特征在于,对所述编码块的至少一个子块 生成二重预测标记符号包括针对所述编码块的至少一个子块通过自适应方法得到子块的 二重预测标记符号。
6.根据权利要求4或5所述的视频编码方法,其特征在于,还包括在编码得到的码流的帧级的头信息中加入用于指示当前帧编码时是否使用自适应的 语法元素。
7.一种视频解码方法,其特征在于,包括获取解码块的二重预测标记符号;当所述解码块的二重预测标记符号指示该解码块需要进行二重预测时,获取所述解码 块的至少一个子块的二重预测标记符号;根据所述解码块的二重预测标记符号和所述解码块的至少一个子块的二重预测标记 符号进行预测,得到预测图像。
8.根据权利要求7所述的视频解码方法,其特征在于,还包括对于所述解码块中进行 二重预测的子块,从所述码流中解析出相应的模式预测准确标志,以用于进行二重预测。
9.根据权利要求7所述的视频解码方法,其特征在于,还包括从所述码流中解析出帧 级的头信息中用于指出当前帧编码时是否使用自适应的语法元素。
10.根据权利要求9所述的视频解码方法,其特征在于,获取解码块的二重预测标记符号包括在所述当前帧编码时使用自适应的情况下,通 过自适应方法得到所述解码块的二重预测标记符号。
11.根据权利要求9所述的视频解码方法,其特征在于,获取所述解码块的至少一个子块的二重预测标记符号包括在所述当前帧编码时使用 自适应的情况下,通过自适应方法得到所述解码块中的每个子块的二重预测标记符号。
12.一种视频编码装置,其特征在于,包括第一生成模块,用于对编码块生成二重预测标记符号;第二生成模块,用于当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预 测;预测模块,用于根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的 二重预测标记符号进行预测,得到预测图像。
13.根据权利要求12所述的视频编码装置,其特征在于,还包括编码模块,用于根据所述预测图像,得到预测残差,对所述预测残差进行编码。
14.根据权利要求12所述的视频编码装置,其特征在于,还包括第三生成模块,用于对于所述编码块中进行二重预测的子块,生成相应的模式预测准 确标志,以用于进行二重预测。
15.根据权利要求13所述的视频编码装置,其特征在于,所述编码模块还用于对所述 编码块的二重预测标记符号、所述子块的二重预测标记符号进行熵编码后,写入码流。
16.根据权利要求12所述的视频编码装置,其特征在于,所述第一生成模块具体用于通过自适应方法得到所述编码块的二重预测标记符号。
17.根据权利要求12所述的视频编码装置,其特征在于,所述第二生成模块具体用于针对所述编码块中的至少一个子块通过自适应方法得到 子块的二重预测标记符号。
18.根据权利要求16或17所述的视频编码装置,其特征在于,还包括头信息设置模块,用于在所述编码模块编码得到的码流的帧级的头信息中,加入用于 指出当前帧编码时是否使用自适应的语法元素。
19.一种视频解码装置,其特征在于,包括第一获取模块,用于获取解码块的二重预测标记符号;第二获取模块,用于当所述解码块的二重预测标记符号指示该解码块需要进行二重预 测时,获取所述解码块的至少一个子块的二重预测标记符号;解码预测模块,用于根据所述解码块的二重预测标记符号和所述解码块的至少一个子 块的二重预测标记符号进行预测,得到预测图像。
20.根据权利要求19所述的视频解码装置,其特征在于,还包括第三获取模块,用于对于所述解码块中进行二重预测的子块,从所述码流中解析出相 应的模式预测准确标志,以用于进行二重预测。
21.根据权利要求19所述的视频解码装置,其特征在于,还包括解析模块,用于从所 述码流中解析出帧级的头信息中用于指示当前帧编码时是否使用自适应的语法元素。
22.根据权利要求21所述的视频解码装置,其特征在于,所述第一获取模块具体用于通过自适应方法得到所述解码块的二重预测标记符号。
23.根据权利要求21所述的视频解码装置,其特征在于,所述第二获取模块具体用于通过自适应方法得到所述解码块中的每个子块的二重预 测标记符号。
全文摘要
本发明涉及一种视频编码方法、解码方法、编码及解码装置,编码方法包括对编码块生成二重预测标记符号;当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记符号进行预测,得到预测图像;根据所述预测图像,得到预测残差,对所述预测残差进行编码。将二重预测标记符号标识的二重预测的单位细化到了子块级,提高了编码效率。
文档编号H04N7/32GK102098519SQ20091025128
公开日2011年6月15日 申请日期2009年12月9日 优先权日2009年12月9日
发明者于彬彬, 李尚文, 杨名远, 熊联欢, 王栋, 虞露 申请人:华为技术有限公司, 浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1