一种视频帧的编码及解码方法和装置的制造方法

文档序号:9456190阅读:287来源:国知局
一种视频帧的编码及解码方法和装置的制造方法
【技术领域】
[0001]本申请涉及视频压缩技术领域,更具体的说是涉及一种视频帧的编码及解码方法和装置。
【背景技术】
[0002]在视频数据传输之前,一般需要对视频数据进行压缩编码。目前的视频编码标准中,原始视频帧被分为:帧内编码帧,也称为I帧(Intra-fram);单向预测帧,也称为P帧(Predictive-frame);以及双向预测巾贞,也称为 B (Bidirect1nally predicted-frame)三种类型。
[0003]为了提高这三种视频帧的压缩比,人们提出了帧内块复制编码模式(Mode_INTRABC, Mode_Intra Block Copy),即在视频帧编码时,也允许为当前编码块在其相邻区域中找到一个匹配块。虽然Mode_INTRABC的提出在一定程度上提高了视频帧的压缩比,但是目前基于Mode_INTRABC模式对视频帧进行编码,却可能存在着编码效率低的问题,进而也影响到后续解码出的视频质量。

【发明内容】

[0004]有鉴于此,本申请提供一种视频帧的编码及解码方法和装置,在编码过程中,保证视频帧的压缩比的前提下,提高对视频帧编码的编码效率,并提高解码出的视频质量。
[0005]为实现上述目的,本申请提供如下技术方案:一种视频帧的解码方法,包括:
[0006]获取待解码的视频帧中当前待解码的当前编码单元;
[0007]确定所述当前编码单元的运动矢量预测值;
[0008]对所述当前编码单元进行解析,得到所述当前编码单元对应的运动矢量差值;
[0009]根据所述运动矢量差值和所述运动矢量预测值,确定所述当前编码单元对应的运动矢量;
[0010]当所述当前编码单元对应的运动矢量为(0,0)时,则确定所述当前编码单元为所述运动向量指向的参考单元,为所述参考单元分配初始值,并设定所述当前编码单元的残差为零;
[0011]依据所述参考单元的初始值和所述残差,将所述参考单元的初始值确定为所述当前编码单元的重建值。
[0012]优选的,所述确定所述当前编码单元的初始运动矢量预测值,包括:
[0013]将所述视频帧中,在所述当前编码单元之前最近一个解码出的采用帧内块复制M0DE_INTRABC编码模式编码的编码单元所对应的运动矢量作为所述当前编码单元的运动矢量预测值。
[0014]优选的,所述确定所述当前编码单元的运动矢量预测值,包括:
[0015]当所述视频帧中与所述当前编码单元相邻且已被解码的指定编码单元中,不存在采用所述M0DE_INTRABC编码模式编码的编码单元时,则将所述运动矢量预测值设定为(O, O) 0
[0016]优选的,所述当所述视频帧中与所述当前编码单元相邻且已被解码的指定编码单元中,不存在采用所述M0DE_INTRABC编码模式进行解码的编码单元,包括:
[0017]当所述视频帧中与所述当前编码单元相邻且位于所述当前编码单元上方和左侧的已被解码的编码单兀中,不存在米用所述M0DE_INTRABC编码模式进行编码的编码单兀。
[0018]优选的,还包括:
[0019]当所述指定编码单元中存在采用所述M0DE_INTRABC编码模式编码的编码单元时,则对与所述当前编码单元相邻且已被解码的所有编码单元所对应的运动矢量取中值,将所述中值作为所述当前编码单元的运动矢量预测值;或者,将所述视频帧中,在所述当前编码单元之前最近一个解码出的采用所述M0DE_INTRABC编码模式编码的编码单元所对应的运动矢量作为所述当前编码单元的运动矢量预测值。
[0020]优选的,所述为所述参考单元分配初始值,包括:
[0021]将所述视频帧中与所述参考单元紧邻且位于所述参考单元上方的编码单元中最下一行的重建值作为所述参考单元中各行的初始值;
[0022]或者,将所述视频帧中与所述参考单元紧邻且位于所述参考单元左侧的编码单元中最右一列的重建值作为所述参考单元中各列的初始值;
[0023]或者,将所述视频帧中与所述参考单元紧邻且已被解码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考单元紧邻且位于所述参考单元左方编码单元最右一列的重建值作为所述参考单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考单元紧邻且位于所述参考单元上方的编码单元最下一行的重建值作为所述参考单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考单元紧邻且位于所述参考单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考单元紧邻且位于所述参考单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考单元中各像素点进行二维平面插值,确定出所述参考单元的重建值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
[0024]优选的,当所述当前编码单元对应的运动矢量不为(0,O)时,则对所述当前编码单元进行解析,得到所述当前编码单元对应的运动矢量差值的同时,还得到所述当前编码单元对应的残差;
[0025]则确定所述当前编码单元对应的运动矢量之后,还包括:确定所述运动矢量所指向的参考单元,并获取解码出的所述参考单元的重建值;
[0026]根据所述参考单元的重建值和所述解析出的残差,构建所述当前编码单元的重建值。
[0027]另一方面,本申请还提供了一种视频帧的编码方法,包括:
[0028]获取视频帧中当前待编码的当前编码单元;
[0029]确定所述当前编码单元的运动矢量预测值;
[0030]从所述视频帧中确定包含所述当前编码单元的参考区域,并为所述当前编码单元分配初始值;
[0031]根据所述参考区域中当前编码单元的初始值以及当前编码单元之外的其他编码单元的重建值,在所述参考区域内进行运动估计,确定出所述当前编码对应的运动矢量差值;
[0032]根据所述运动矢量预测值和所述运动矢量差值,确定所述当前编码单元对应的运动矢量;
[0033]根据所述当前编码单元对应的运动矢量和所述运动矢量差值,对所述当前编码单元进行编码。
[0034]优选的,在从当前编码单元所在的视频帧中,确定包含所述当前编码单元的参考区域之前,还包括:
[0035]当所述视频帧中与所述当前编码单元相邻且已被编码的指定编码单元中,不存在采用帧内块复制M0DE_INTRABC编码模式进行编码的编码单元时,则将所述运动矢量预测值修改为(O, O)。
[0036]优选的,所述根据所述运动矢量和所述运动矢量差值,对所述当前编码单元进行编码,包括:
[0037]当所述当前编码单元对应的运动矢量为(0,O)时,将所述当前编码单元对应的残差设置为O ;
[0038]根据所述运动矢量差值和所述残差,对所述当前编码单元进行编码。
[0039]优选的,所述确定所述当前编码单元的运动矢量预测值,包括:
[0040]将所述视频帧中,在所述当前编码单元之前最近一个采用M0DE_INTRABC编码模式进行编码的编码单元所对应的运动矢量作为所述当前编码单元的运动矢量预测值;
[0041]或者,将与所述当前编码单元相邻且已被编码的所有编码单元所对应的运动矢量取中值,将所述中值作为所述当前编码单元的运动矢量预测值。
[0042]优选的,所述为所述当前编码单元分配初始值,包括:
[0043]将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元中各行的初始值;
[0044]或者,将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元中各列的初始值;
[0045]或者,将所述视频帧中与所述当前编码单元紧邻且已被编码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元最右一列的重建值作为所述当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述参考单元紧邻且位于所述参考单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考单元紧邻且位于所述参考单元左侧的编码单元中最右一列中各像素点的中间值,对所述参考单元中各像素点进行二维平面插值,确定所述当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
[0046]另一方面,本申请还提供了一种视频帧的解码装置,包括:
[0047]获取单元,用于获取待解码的视频帧中当前待解码的当前编码单元;
[0048]预测单元,用于确定所述当前编码单元的运动矢量预测值;
[0049]解析单元,用于对所述当前编码单元进行解析,得到所述当前编码单元对应的运动矢量差值;
[0050]矢量确定单元,用于根据所述运动矢量差值和所述运动矢量预测值,确定所述当前编码单元对应的运动矢量;
[0051]参考确定单元,用于当所述当前编码单元对应的运动矢量为(0,0)时,则确定所述当前编码单元为所述运动向量指向的参考单元,为所述参考单元分配初始值,并设定所述当前编码单元的残差为零;
[0052]解码单元,用于依据所述参考单元的初始值和所述残差,将所述参考单元的初始值确定为所述当前编码单元的重建值。
[0053]优选的,所述解析单元,包括:
[0054]第一解析单元,用于将所述视频帧中,在所述当前编码单元之前最近一个解码出的采用帧内块复制M0DE_INTRABC编码模式编码的编码单元所对应的运动矢量作为所述当前编码单元的运动矢量预测值。
[0055]优选的,所述预测单元,包括:
[0056]第一预测单元,用于当所述视频帧中与所述当前编码单元相邻且已被解码的指定编码单元中,不存在采用所述M0DE_INTRABC编码模式编码的编码单元时,则将所述运动矢量预测值设定为(0,O)。
[0057]优选的,所述第一预测单元,包括:
[0058]第一预测子单元,用于当所述视频帧中与所述当前编码单元相邻且位于所述当前编码单元上方和左侧的已被解码的编码单元中,不存在采用所述M0DE_INTRABC编码模式进行编码的编码单元时,将所述运动矢量预测值设定为(0,O)。
[0059]优选的,还包括:
[0060]第二预测单元,用于当所述指定编码单元中存在采用所述M0DE_INTRABC编码模式编码的编码单元时,则对与所述当前编码单元相邻且已被解码的所有编码单元所对应的运动矢量取中值,将所述中值作为所述当前编码单元的运动矢量预测值;
[0061]或者,第三预测单元,用于当所述指定编码单元中存在采用所述M0DE_INTRABC编码模式编码的编码单元时,将所述视频帧中,在所述当前编码单元之前最近一个解码出的采用所述M0DE_INTRABC编码模式编码的编码单元所对应的运动矢量作为所述当前编码单元的运动矢量预测值。
[0062]优选的,所述参考确定单元为所述参考单元分配初始值包括:
[0063]将所述视频帧中与所述参考单元紧邻且位于所述参考单元上方的编码
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1