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

文档序号:9582111阅读:697来源:国知局
一种视频帧的编码及解码方法和装置的制造方法
【技术领域】
[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]为所述当前编码单元分配初始值,并设定所述当前编码单元的运动矢量为(0,0);
[0009]将所述选取出的至少一个编码单元与分配有初始值的所述当前编码单元均作为用于确定所述当前编码单元的运动矢量所参照的候选单元,得到包含有多个所述候选单元的候选单元集合;
[0010]依次将所述候选单元集合中多个候选单元的运动矢量作为所述当前编码单元的运动矢量,并依据所述运动矢量所指向的参考编码单元的重建值或所述初始值,以及所述当前编码单元的原始值,计算所述当前编码单元与所述参考编码单元的残差;
[0011]依次依据所述残差,对所述当前编码单元进行预编码,根据预编码结果从所述候选单元集合中确定最优候选单元,其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元;
[0012]利用所述最优候选单元相对应于所述当前编码单元的索引号以及所述当前编码单元与所述最优候选单元的残差,对所述当前编码单元进行编码。
[0013]优选的,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
[0014]将所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取出1-4个编码单元。
[0015]优选的,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
[0016]从与所述当前编码相邻且已被编码的编码单元中,选取出不具有相同运动矢量的编码单元。
[0017]优选的,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
[0018]当与所述当前编码单元相邻且已被编码的编码单元均具有对应有不同的运动矢量时,则从与所述当前编码单元相邻且已被编码的编码单元中,则将去除位于所述当前编码单元右上方或者左下方的编码单元之外剩余的编码单元作为选取的编码单元。
[0019]优选的,所述为所述当前编码单元分配初始值,包括:
[0020]将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元中各行的初始值;
[0021]或者,将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元中各列的初始值;
[0022]或者,将所述视频帧中与所述当前编码单元紧邻且已被编码的目标编码单元的运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频巾贞中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元最右一列的重建值作为所述当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列中各像素点的中间值,对所述当前编码单元中各像素点进行二维平面插值,确定所述当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单
J Li ο
[0023]另一方面,本申请还提供了一种视频帧的解码方法,包括:
[0024]获取待解码的视频帧中当前待解码的当前编码单元;
[0025]对所述当前编码单元进行解析,得到编码过程中所述当前编码单元对应的残差,以及用于确定所述当前编码单元的运动矢量时所参照的候选单元的索引号;
[0026]依据所述索引号确定所述候选单元,并获取所述候选单元的运动矢量;
[0027]将所述运动矢量作为所述当前编码单元的运动矢量;
[0028]从所述视频帧中的编码单元中,确定所述当前编码单元的运动矢量所指向参考编码单元;
[0029]基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值。
[0030]优选的,所述基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值,包括:
[0031]当所述参考编码单元不是所述当前编码单元时,获取所述参考编码单元的重建值,并根据所述重建值和所述残差,构建所述当前编码单元的重建值。
[0032]优选的,所述基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值,包括:
[0033]当所述参考编码单元为所述当前编码单元时,为所述参考编码单元分配初始值;
[0034]根据所述初始编码值和所述残差构建所述当前编码单元的重建值。
[0035]优选的,所述为所述参考编码单元分配初始值,包括:
[0036]将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中的最下一行的重建值作为所述参考编码单元中各行的初始值;
[0037]或者,将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中的最右一列的重建值作为所述参考编码单元中各列的初始值;
[0038]或者,将所述视频帧中与所述参考编码单元紧邻且已被解码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左方的编码单元中最右一列的重建值作为所述参考编码单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元的最下一行的重建值作为所述参考编码单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考编码单元中各像素点进行二维平面插值,确定出所述参考编码单元的重建值;其中,所述目标编码单元为位于所述参考编码单元上方或者左侧的编码单元。
[0039]另一方面,本申请还提供了一种视频帧的编码装置,包括:
[0040]获取单元,用于获取待编码的视频帧中当前待编码的当前编码单元;
[0041]选取单元,用于从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元;
[0042]分配单元,用于为所述当前编码单元分配初始值,并设定所述当前编码单元的运动矢量为(0,0);
[0043]候选确定单元,用于将所述选取出的至少一个编码单元与分配有初始值的所述当前编码单元均作为用于确定所述当前编码单元的运动矢量所参照的候选单元,得到包含有多个所述候选单元的候选单元集合;
[0044]残差计算单元,用于依次将所述候选单元集合中多个候选单元的运动矢量作为所述当前编码单元的运动矢量,并依据所述运动矢量所指向的参考编码单元的重建值或所述初始值,以及所述当前编码单元的原始值,计算所述当前编码单元与所述参考编码单元的残差;
[0045]预编码单元,用于依次依据所述残差,对所述当前编码单元进行预编码,根据预编码结果从所述候选单元集合中确定最优候选单元,其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元;
[0046]编码单元,用于利用所述最优候选单元相对应于所述当前编码单元的索引号以及所述当前编码单元与所述最优候选单元的残差,对所述当前编码单元进行编码。
[0047]优选的,所述选取单元,包括:
[0048]选取数量确定单元,用于将所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取出1-4个编码单元。
[0049]优选的,所述选取单元,包括:
[0050]第一选取子单元,用于从与所述当前编码相邻且已被编码的编码单元中,选取出不具有
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1