一种基于模板匹配的预测方法及装置转让专利

申请号 : CN201780049111.3

文献号 : CN109565601B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林永兵

申请人 : 华为技术有限公司

摘要 :

一种基于模板匹配的预测方法和装置,预测方法为,在待处理单元的至少两个参考图像中基于当前模板分别进行匹配搜索,在每次所述匹配搜索中获得与所述参考图像对应的一组运动信息、一个单向匹配模板和一个单向模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述单向模板失真值代表所述当前模板和所述单向匹配模板的差异;确定所述获得的单向模板失真值中最小的一个所对应的所述运动信息为所述待处理单元的目标运动信息;根据所述目标运动信息,构建所述待处理单元的预测值。

权利要求 :

1.一种基于模板匹配的预测方法,其特征在于,包括:

在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述第一模板失真值代表所述第一匹配模板和所述当前模板的差异;

根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新;

在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,所述第二模板失真值代表所述第二匹配模板和所述更新后的当前模板的差异;

当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。

2.根据权利要求1所述的方法,其特征在于,所述根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新,包括采用如下方式对所述当前的像素值进行更新:T1=(T0-ω0×P1)/(1-ω0),

其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表所述第一匹配模板的像素值,ω0代表所述第一匹配模板对应的加权系数,ω0为小于1的正数。

3.根据权利要求2所述的方法,其特征在于,所述ω0为0.5。

4.根据权利要求1至3任一项所述的方法,其特征在于,所述在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,包括:在所述第一参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第一候选重构像素组合,计算所述多个第一候选重构像素组合和所述当前模板的多个第一像素差异值;

根据最小的所述第一像素差异值,确定所述第一模板失真值、所述第一匹配模板;

根据所述第一匹配模板和所述当前模板的位置矢量差,和所述第一匹配模板所在的图像,确定所述第一运动信息,所述第一匹配模板包括所述第一模板失真值对应的第一候选重构像素组合。

5.根据权利要求1至3任一项所述的方法,其特征在于,所述在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,包括:在所述第二参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第二候选重构像素组合,计算所述多个第二候选重构像素组合和所述更新后的当前模板的多个第二像素差异值;

根据最小的所述第二像素差异值,确定所述第二模板失真值、所述第二匹配模板;

根据所述第二匹配模板和所述更新后的当前模板的位置矢量差,和所述第二匹配模板所在的图像,确定所述第二运动信息,所述第二匹配模板包括所述第二模板失真值对应的第二候选重构像素组合。

6.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的第一向预测值;

根据所述第二运动信息,在所述第二参考图像中,获得所述待处理单元的第二向预测值;

对所述第一向预测值和所述第二向预测值进行加权计算,获得所述待处理单元的加权预测值。

7.根据权利要求1至3任一项所述的方法,其特征在于,在所述待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息和第一匹配模板之后,还包括:在第三参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第三候选重构像素组合,计算所述多个第三候选重构像素组合和所述当前模板的多个第三像素差异值;

根据最小的所述第三像素差异值,确定第三模板失真值、第三匹配模板;

根据所述第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定第三运动信息,所述第三匹配模板包括所述第三模板失真值对应的第三候选重构像素组合。

8.根据权利要求7所述的方法,其特征在于,在所述根据第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息之后,当所述第三模板失真值小于或等于所述第一模板失真值时,还包括:将所述第三参考图像作为所述第一参考图像;

将所述第三运动信息作为所述第一运动信息;

将所述第三模板失真值作为所述第一模板失真值;

将所述第三匹配模板作为所述第一匹配模板。

9.根据权利要求5所述的方法,其特征在于,当所述第二模板失真值不小于所述第一模板失真值时,所述方法还包括:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。

10.根据权利要求7所述的方法,其特征在于,所述当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。

11.根据权利要求10所述的方法,其特征在于,还包括:

当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。

12.根据权利要求7所述的方法,其特征在于,包括:

当所述第一参考图像来自于所述待处理单元的前向参考图像列表时,所述第三参考图像来自于所述待处理单元的后向参考图像列表;或者,当所述第一参考图像来自于所述待处理单元的后向参考图像列表时,所述第三参考图像来自于所述待处理单元的前向参考图像列表。

13.根据权利要7所述的方法,其特征在于,在所述在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值之后,还包括:根据所述加权系数对所述第二模板失真值进行更新,所述更新后的第二模板失真值为(1-ω0)倍的所述第二模板失真值;

对应的,所述当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述更新后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。

14.根据权利要求13所述的方法,其特征在于,当所述更新后的第二模板失真值不小于所述第一模板失真值时,所述方法还包括:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。

15.根据权利要求13或14所述的方法,其特征在于,当所述更新后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述更新后的第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。

16.根据权利要求15所述的方法,其特征在于,还包括:

当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。

17.根据权利要求1至3任一项所述的方法,其特征在于,在所述获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值之后,还包括:对所述第二模板失真值进行调整,得到调整后的第二模板失真值;

对应的,所述当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述调整后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。

18.根据权利要求17所述的方法,其特征在于,所述对所述第二模板失真值进行调整,得到调整后的第二模板失真值,包括:将所述第二模板失真值和调整系数相乘,得到所述调整后的第二模板失真值,所述调整系数大于0,且小于等于1。

19.一种基于模板匹配的预测装置,其特征在于,包括:

搜索单元,用于在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述第一模板失真值代表所述第一匹配模板和所述当前模板的差异;

更新单元,用于根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新;

所述搜索单元,还用于在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,所述第二模板失真值代表所述第二匹配模板和所述更新后的当前模板的差异;

确定单元,用于当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。

20.根据权利要求19所述的装置,其特征在于,所述更新单元在根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新时,包括采用如下方式对所述当前的像素值进行更新:T1=(T0-ω0×P1)/(1-ω0),

其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表所述第一匹配模板的像素值,ω0代表所述第一匹配模板对应的加权系数,ω0为小于1的正数。

21.根据权利要求20所述的装置,其特征在于,所述ω0为0.5。

22.根据权利要求19至21任一项所述的装置,其特征在于,所述搜索单元在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值时,具体用于:在所述第一参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第一候选重构像素组合,计算所述多个第一候选重构像素组合和所述当前模板的多个第一像素差异值;

根据最小的所述第一像素差异值,确定所述第一模板失真值、所述第一匹配模板;

根据所述第一匹配模板和所述当前模板的位置矢量差,和所述第一匹配模板所在的图像,确定所述第一运动信息,所述第一匹配模板包括所述第一模板失真值对应的第一候选重构像素组合。

23.根据权利要求19至21任一项所述的装置,其特征在于,所述搜索单元在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值时,具体用于:在所述第二参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第二候选重构像素组合,计算所述多个第二候选重构像素组合和所述更新后的当前模板的多个第二像素差异值;

根据最小的所述第二像素差异值,确定所述第二模板失真值、所述第二匹配模板;

根据所述第二匹配模板和所述更新后的当前模板的位置矢量差,和所述第二匹配模板所在的图像,确定所述第二运动信息,所述第二匹配模板包括所述第二模板失真值对应的第二候选重构像素组合。

24.根据权利要求19至21任一项所述的装置,其特征在于,所述确定单元在根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值时,具体用于:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的第一向预测值;

根据所述第二运动信息,在所述第二参考图像中,获得所述待处理单元的第二向预测值;

对所述第一向预测值和所述第二向预测值进行加权计算,获得所述待处理单元的加权预测值。

25.根据权利要求19至21任一项所述的装置,其特征在于,所述搜索单元在所述待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息和第一匹配模板之后,还用于:在第三参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第三候选重构像素组合,计算所述多个第三候选重构像素组合和所述当前模板的多个第三像素差异值;

根据最小的所述第三像素差异值,确定第三模板失真值、第三匹配模板;

根据所述第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定第三运动信息,所述第三匹配模板包括所述第三模板失真值对应的第三候选重构像素组合。

26.根据权利要求25所述的装置,其特征在于,所述搜索单元在所述根据第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息之后,当所述第三模板失真值小于或等于所述第一模板失真值时,还用于:将所述第三参考图像作为所述第一参考图像;

将所述第三运动信息作为所述第一运动信息;

将所述第三模板失真值作为所述第一模板失真值;

将所述第三匹配模板作为所述第一匹配模板。

27.根据权利要求23所述的装置,其特征在于,在当所述第二模板失真值不小于所述第一模板失真值时,所述确定单元具体用于:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。

28.根据权利要求25所述的装置,其特征在于,当所述第二模板失真值小于所述第一模板失真值时,所述确定单元具体用于:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。

29.根据权利要求28所述的装置,其特征在于,所述确定单元具体用于:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。

30.根据权利要求25所述的装置,其特征在于,包括:

当所述第一参考图像来自于所述待处理单元的前向参考图像列表时,所述第三参考图像来自于所述待处理单元的后向参考图像列表;或者,当所述第一参考图像来自于所述待处理单元的后向参考图像列表时,所述第三参考图像来自于所述待处理单元的前向参考图像列表。

31.根据权利要求25所述的装置,其特征在于,所述更新单元还用于:根据所述加权系数对所述第二模板失真值进行更新,所述更新后的第二模板失真值为(1-ω0)倍的所述第二模板失真值;

对应的,所述确定单元用于当所述更新后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。

32.根据权利要求31所述的装置,其特征在于,当所述更新后的第二模板失真值不小于所述第一模板失真值时,所述确定单元还用于:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。

33.根据权利要求31或32所述的装置,其特征在于,当所述更新后的第二模板失真值小于所述第一模板失真值时,所述确定单元具体用于:当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述更新后的第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。

34.根据权利要求33所述的装置,其特征在于,还包括:

当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。

35.根据权利要求19至21任一项所述的装置,其特征在于,所述确定单元还用于:对所述第二模板失真值进行调整,得到调整后的第二模板失真值;

对应的,所述确定单元具体用于:

当所述调整后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。

36.根据权利要求35所述的装置,其特征在于,所述确定单元具体用于:将所述第二模板失真值和调整系数相乘,得到所述调整后的第二模板失真值,所述调整系数大于0,且小于等于1。

说明书 :

一种基于模板匹配的预测方法及装置

技术领域

[0001] 本申请涉及视频图像技术领域,尤其涉及一种基于模板匹配的预测方法及装置。

背景技术

[0002] 视频编码压缩技术最主要性能指标是压缩率,实现以最少的带宽传输最高质量的视频内容,压缩率的提高是通过去除视频内容本身的冗余信息来实现的。视频编码压缩标准的主流技术框架,都采用基于图像块的混合视频编码方案,视频编码的主要技术包括:预测,变换和量化,熵编码,通过预测技术去除空间和时间相关性,通过变换和量化技术去除频域相关性,通过熵编码技术进一步去除码字间的信息冗余。
[0003] 随着视频编码压缩率的不断提高,编码码流中的运动信息的占比越来越大。基于模板匹配(template matching,TM)的运动信息预测技术,可实现在解码端导出运动信息,运动信息无需传送,大大节约编码比特,提高压缩率。基于TM的运动信息预测技术成为下一代视频编码标准的候选技术之一。
[0004] 一般的,模板匹配技术中使用“L”型模板。如图1所示,当前块(curBlock)的左边相邻块和上边相邻块组成了一个“L”型模板(Template),利用这个模板,在参考图像Ref0中进行匹配搜索,即可获得该模板的运动信息。由于模板和当前块的空间位置紧邻,他们的运动信息应当保持一致,因此,模板的运动信息可作为当前块的运动信息。
[0005] 上述“L”型模板,包括当前块的左边相邻块和上边相邻块,是经过解码重构生成的,在编码端和解码端都是可获得的。因此,基于模板匹配的方法可在解码端执行以获得当前块的运动信息,而无需传送这些运动信息。
[0006] 但是,上述模板匹配搜索时,仅利用前向或后向参考图像,是一种单向搜索,而后续预测时,却采用前向和后向参考图像的双向预测,使模板匹配搜索与运动预测不匹配。影响预测精度和预测效果。

发明内容

[0007] 本申请实施例提供一种基于模板匹配的预测方法及装置,以解决模板匹配搜索与运动预测不匹配的问题,提高预测精度。
[0008] 第一方面,提供一种基于模板匹配的预测方法,包括:在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述第一模板失真值代表所述第一匹配模板和所述当前模板的差异;根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新;在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,所述第二模板失真值代表所述第二匹配模板和所述更新后的当前模板的差异;当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0009] 该有益效果在于,编解码装置在获取待处理单元的预测值时,利用模板匹配方法对所述待处理单元进行搜索和预测时,能够避免搜索和预测不匹配的问题,从而提高预测精度和预测效果,进一步提升编解码质量。
[0010] 结合第一方面,一种可能的设计中,所述根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新,包括采用如下方式对所述当前的像素值进行更新:T1=(T0-ω0×P1)/(1-ω0),其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表所述第一匹配模板的像素值,ω0代表所述第一匹配模板对应的加权系数,ω0为小于1的正数。
[0011] 该有益效果在于,与现有技术相比,增加了当前模板的更新操作,在模板更新后执行的模板匹配操作相当于双向匹配搜索,能够较简单的实现模板匹配的双向搜索过程,进一步结合双向预测,提升预测精度和预测效果。
[0012] 结合第一方面,一种可能的设计中,所述ω0为0.5。
[0013] 该有益效果在于,设置第一匹配模板对应的加权系数为0.5得到的更新后的模板,在模板更新后执行的模板匹配操作相当于标准的双向匹配搜索过程,结合双向预测使预测精度和预测效果更好。
[0014] 结合第一方面,一种可能的设计中,所述在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,包括:在所述第一参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第一候选重构像素组合,计算所述多个第一候选重构像素组合和所述当前模板的多个第一像素差异值;根据最小的所述第一像素差异值,确定所述第一模板失真值、所述第一匹配模板;根据所述第一匹配模板和所述当前模板的位置矢量差,和所述第一匹配模板所在的图像,确定所述第一运动信息,所述第一匹配模板包括所述第一模板失真值对应的第一候选重构像素组合。
[0015] 结合第一方面,一种可能的设计中,所述在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,包括:在所述第二参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第二候选重构像素组合,计算所述多个第二候选重构像素组合和所述更新后的当前模板的多个第二像素差异值;根据最小的所述第二像素差异值,确定所述第二模板失真值、所述第二匹配模板;根据所述第二匹配模板和所述更新后的当前模板的位置矢量差,和所述第二匹配模板所在的图像,确定所述第二运动信息,所述第二匹配模板包括所述第二模板失真值对应的第二候选重构像素组合。
[0016] 结合第一方面,一种可能的设计中,所述根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的第一向预测值;根据所述第二运动信息,在所述第二参考图像中,获得所述待处理单元的第二向预测值;对所述第一向预测值和所述第二向预测值进行加权计算,获得所述待处理单元的加权预测值。
[0017] 该有益效果在于,将所述待处理单元的加权预测值直接作为所述待处理单元的预测值,此时,模板匹配搜索过程实际上相当于双向搜索,在本质上同时利用了第一参考图像和第二参考图像,实现方式简单,同时能够提升预测精度和预测效果。
[0018] 结合第一方面,一种可能的设计中,在所述待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息和第一匹配模板之后,还包括:在第三参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第三候选重构像素组合,计算所述多个第三候选重构像素组合和所述当前模板的多个第三像素差异值;根据最小的所述第三像素差异值,确定所述第三模板失真值、所述第三匹配模板;根据所述第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息,所述第三匹配模板包括所述第三模板失真值对应的第三候选重构像素组合。
[0019] 结合第一方面,一种可能的设计中,在所述根据第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息之后,当所述第三模板失真值小于或等于所述第一模板失真值时,还包括:将所述第三参考图像作为所述第一参考图像;将所述第三运动信息作为所述第一运动信息;将所述第三模板失真值作为所述第一模板失真值;将所述第三匹配模板作为所述第一匹配模板。
[0020] 结合第一方面,一种可能的设计中,当所述第二模板失真值不小于所述第一模板失真值时,包括:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。
[0021] 该有益效果在于,能够在单向搜索单向预测的方式和双向搜索双向预测的方式中进行自适应选择,此时,在实现复杂度较低的情形下提高预测精度和预测效果。
[0022] 结合第一方面,一种可能的设计中,所述当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。
[0023] 结合第一方面,一种可能的设计中,当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。
[0024] 该有益效果在于,能够在两个不同的单向搜索单向预测的方式、以及双向搜索双向预测的方式中进行自适应选择,此时,虽然实现复杂度较高,但是有较好的自适应选择性,从而提高预测的效果和精度。
[0025] 结合第一方面,一种可能的设计中,当所述第一参考图像来自于所述待处理单元的前向参考图像列表时,所述第三参考图像来自于所述待处理单元的后向参考图像列表;或者,当所述第一参考图像来自于所述待处理单元的后向参考图像列表时,所述第三参考图像来自于所述待处理单元的前向参考图像列表。
[0026] 结合第一方面,一种可能的设计中,在所述在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值之后,还包括:根据所述加权系数对所述第二模板失真值进行更新,所述更新后的第二模板失真值为(1-ω0)倍的所述第二模板失真值;对应的,所述当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述更新后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0027] 该有益效果在于,根据模板更新时的加权系数对第二模板失真值进行更新,使失真值的比较结果更准确。
[0028] 结合第一方面,一种可能的设计中,当所述更新后的第二模板失真值不小于所述第一模板失真值时,所述方法还包括:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。
[0029] 结合第一方面,一种可能的设计中,当所述更新后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述更新后的第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。
[0030] 结合第一方面,一种可能的设计中,还包括:当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。
[0031] 结合第一方面,一种可能的设计中,在所述获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值之后,还包括:对所述第二模板失真值进行调整,得到调整后的第二模板失真值;对应的,所述当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,包括:当所述调整后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0032] 结合第一方面,一种可能的设计中,所述对所述第二模板失真值进行调整,得到调整后的第二模板失真值,包括:将所述第二模板失真值和调整系数相乘,得到所述调整后的第二模板失真值,所述调整系数大于0,且小于等于1。
[0033] 该有益效果在于,由于根据模板失真值推导的编码代价和实际编码过程中的编码代价不完全一致,对模板失真值进行调整,增加了使根据模板失真值推导的编码代价和实际编码过程中的编码代价趋向一致的机会,提高了编码效率。
[0034] 第二方面,提供一种基于模板匹配的预测装置,包括:搜索单元,用于在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述第一模板失真值代表所述第一匹配模板和所述当前模板的差异;更新单元,用于根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新;所述搜索单元,还用于在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,所述第二模板失真值代表所述第二匹配模板和所述更新后的当前模板的差异;确定单元,用于当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0035] 结合第二方面,一种可能的设计中,所述更新单元在根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新时,包括采用如下方式对所述当前的像素值进行更新:T1=(T0-ω0×P1)/(1-ω0),其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表所述第一匹配模板的像素值,ω0代表所述第一匹配模板对应的加权系数,ω0为小于1的正数。
[0036] 结合第二方面,一种可能的设计中,所述ω0为0.5。
[0037] 结合第二方面,一种可能的设计中,所述搜索单元在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值时,具体用于:在所述第一参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第一候选重构像素组合,计算所述多个第一候选重构像素组合和所述当前模板的多个第一像素差异值;根据最小的所述第一像素差异值,确定所述第一模板失真值、所述第一匹配模板;根据所述第一匹配模板和所述当前模板的位置矢量差,和所述第一匹配模板所在的图像,确定所述第一运动信息,所述第一匹配模板包括所述第一模板失真值对应的第一候选重构像素组合。
[0038] 结合第二方面,一种可能的设计中,所述搜索单元在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值时,具体用于:在所述第二参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第二候选重构像素组合,计算所述多个第二候选重构像素组合和所述更新后的当前模板的多个第二像素差异值;根据最小的所述第二像素差异值,确定所述第二模板失真值、所述第二匹配模板;根据所述第二匹配模板和所述更新后的当前模板的位置矢量差,和所述第二匹配模板所在的图像,确定所述第二运动信息,所述第二匹配模板包括所述第二模板失真值对应的第二候选重构像素组合。
[0039] 结合第二方面,一种可能的设计中,所述确定单元在根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值时,具体用于:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的第一向预测值;根据所述第二运动信息,在所述第二参考图像中,获得所述待处理单元的第二向预测值;对所述第一向预测值和所述第二向预测值进行加权计算,获得所述待处理单元的加权预测值。
[0040] 结合第二方面,一种可能的设计中,所述搜索单元在所述待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息和第一匹配模板之后,还用于:在第三参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第三候选重构像素组合,计算所述多个第三候选重构像素组合和所述当前模板的多个第三像素差异值;根据最小的所述第三像素差异值,确定所述第三模板失真值、所述第三匹配模板;根据所述第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息,所述第三匹配模板包括所述第三模板失真值对应的第三候选重构像素组合。
[0041] 结合第二方面,一种可能的设计中,所述搜索单元在所述根据第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息之后,当所述第三模板失真值小于或等于所述第一模板失真值时,还用于:将所述第三参考图像作为所述第一参考图像;将所述第三运动信息作为所述第一运动信息;将所述第三模板失真值作为所述第一模板失真值;将所述第三匹配模板作为所述第一匹配模板。
[0042] 结合第二方面,一种可能的设计中,所述确定单元在所述第二模板失真值不小于所述第一模板失真值时,具体用于:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。
[0043] 结合第二方面,一种可能的设计中,所述确定单元在当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值时,具体用于:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。
[0044] 结合第二方面,一种可能的设计中,所述确定单元具体用于:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。
[0045] 结合第二方面,一种可能的设计中,当所述第一参考图像来自于所述待处理单元的前向参考图像列表时,所述第三参考图像来自于所述待处理单元的后向参考图像列表;或者,当所述第一参考图像来自于所述待处理单元的后向参考图像列表时,所述第三参考图像来自于所述待处理单元的前向参考图像列表。
[0046] 结合第二方面,一种可能的设计中,所述更新单元还用于:根据所述加权系数对所述第二模板失真值进行更新,所述更新后的第二模板失真值为(1-ω0)倍的所述第二模板失真值;对应的,所述确定单元用于当所述更新后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0047] 结合第二方面,一种可能的设计中,当所述更新后的第二模板失真值不小于所述第一模板失真值时,所述确定单元还用于:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。
[0048] 结合第二方面,一种可能的设计中,当所述更新后的第二模板失真值小于所述第一模板失真值时,所述确定单元具体用于:当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述更新后的第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。
[0049] 结合第二方面,一种可能的设计中,还包括:当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,当所述第一模板失真值、所述更新后的第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。
[0050] 结合第二方面,一种可能的设计中,所述确定单元还用于:对所述第二模板失真值进行调整,得到调整后的第二模板失真值;对应的,所述确定单元具体用于:当所述调整后的第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0051] 结合第二方面,一种可能的设计中,所述确定单元具体用于:将所述第二模板失真值和调整系数相乘,得到所述调整后的第二模板失真值,所述调整系数大于0,且小于等于1。
[0052] 第三方面,提供一种基于模板匹配的预测方法,包括:在待处理单元的至少两个参考图像中基于当前模板分别进行匹配搜索,在每次所述匹配搜索中获得与所述参考图像对应的一组运动信息、一个单向匹配模板和一个单向模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述单向模板失真值代表所述当前模板和所述单向匹配模板的差异;确定所述获得的单向模板失真值中最小的一个所对应的所述运动信息为所述待处理单元的目标运动信息;根据所述目标运动信息,构建所述待处理单元的预测值。
[0053] 结合第三方面,一种可能的设计中,在所述在待处理单元的至少两个参考图像中基于当前模板分别进行匹配搜索,在每次所述匹配搜索中获得与所述参考图像对应的一组运动信息、一个单向匹配模板和一个单向模板失真值之后还包括:根据两个所述单向匹配模板的像素值,获得一个加权模板失真值,所述加权模板失真值代表所述当前模板和所述两个单向匹配模板的加权的差异,所述加权模板失真值对应所述两个单向匹配模板所对应的两组所述运动信息;对应的,所述确定所述获得的单向模板失真值中最小的一个所对应的所述运动信息为所述待处理单元的目标运动信息,包括:确定所述获得的单向模板失真值和所述加权模板失真值中最小的一个所对应的所述运动信息为所述目标运动信息。
[0054] 结合第三方面,一种可能的设计中,所述根据所述目标运动信息,构建所述待处理单元的预测值,包括:当所述目标运动信息仅包括第一组运动信息时,根据所述第一组运动信息,在所述第一组运动信息对应的第一参考图像中,获得所述待处理单元的预测值;当所述目标运动信息仅包括第二组运动信息和第三组运动信息时,根据所述第二组运动信息,在所述第二组运动信息对应的第二参考图像中,获得第二预测值;且根据所述第三组运动信息,在所述第三组运动信息对应的第三参考图像中,获得第三预测值;且确定所述第二预测值和所述第三预测值的加权计算值为所述待处理单元的预测值。
[0055] 结合第三方面,一种可能的设计中,所述匹配搜索,包括:在所述参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个候选重构像素组合,计算所述多个候选重构像素组合和所述当前模板的多个像素差异值;根据最小的所述像素差异值,确定所述单向匹配模板和所述单向模板失真值,所述单向匹配模板包括所述单向模板失真值对应的所述候选重构像素组合;根据所述参考图像、所述单向匹配模板和所述当前模板的位置矢量差,确定所述运动信息。
[0056] 结合第三方面,一种可能的设计中,所述在待处理单元的至少两个参考图像中基于当前模板分别进行匹配搜索,在每次所述匹配搜索中获得与所述参考图像对应的一组运动信息、一个单向匹配模板和一个单向模板失真值,包括:在待处理单元的前向参考图像列表的至少一个参考图像中基于所述当前模板进行所述匹配搜索,获得一组前向运动信息、一个前向匹配模板和一个前向模板失真值;且在待处理单元的后向参考图像列表的至少一个参考图像中基于所述当前模板进行所述匹配搜索,获得一组后向运动信息、一个后向匹配模板和一个后向模板失真值。
[0057] 结合第三方面,一种可能的设计中,所述根据两个所述单向匹配模板的像素值,获得一个加权模板失真值,通过如下公式表示:Tw=|ω0×T1+(1-ω0)×T2-Tc|,其中,Tw表示所述加权模板失真值,T1、T2表示两个所述单向匹配模板的像素值,Tc表示所述当前模板的像素值,ω0表示加权系数,ω0≥0且ω0≤1。
[0058] 结合第三方面,一种可能的设计中,在所述在待处理单元的至少两个参考图像中基于当前模板进行匹配搜索之前,还包括:确定所述待处理单元的预测模式属于合并模式。
[0059] 结合第三方面,一种可能的设计中,在所述确定所述获得的单向模板失真值和所述加权模板失真值中最小的一个所对应的所述运动信息为所述目标运动信息之前,还包括:对所述加权模板失真值进行调整,得到调整后的加权模板失真值;对应的,所述确定所述获得的单向模板失真值和所述加权模板失真值中最小的一个所对应的所述运动信息为所述目标运动信息,包括:确定所述获得的单向模板失真值和所述调整后的加权模板失真值中最小的一个所对应的所述运动信息为所述目标运动信息。
[0060] 结合第三方面,一种可能的设计中,所述对所述加权模板失真值进行调整,得到调整后的加权模板失真值,包括:将所述加权模板失真值和调整系数相乘,得到所述调整后的加权模板失真值,所述调整系数大于0,且小于等于1。
[0061] 在第三方面的发明实施例中,不同的单向模板匹配搜索可以并行进行,提高了方案的执行效率。
[0062] 第四方面,提供一种基于模板匹配的预测设备,该设备包括处理器、存储器,其中,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,实现第一、三方面涉及的基于模板匹配的预测方法。
[0063] 第五方面,提供一种计算机存储介质,用于储存为上述第一、三方面所述的计算机软件指令,其包含用于执行上述方面所设计的程序。
[0064] 应理解,本申请实施例的第二至五方面与本申请实施例的第一方面的技术方案一致,各方面及对应的可实施的设计方式所取得的有益效果相似,不再赘述。

附图说明

[0065] 图1为模板匹配技术中“L”型模板的示意图;
[0066] 图2为模板匹配实现过程示意图;
[0067] 图3为本申请实施例中基于模板匹配的预测方法流程图;
[0068] 图4A和图4B为本申请实施例中一种获取当前块的预测值的流程图;
[0069] 图5、图6为视频编解码装置或电子设备的示意性框图;
[0070] 图7为视频编解码系统的示意性框图;
[0071] 图8为本申请实施例中基于模板匹配的预测装置结构图;
[0072] 图9为本申请实施例中基于模板匹配的预测设备结构图;
[0073] 图10为本申请实施例中另一种基于模板匹配的预测方法流程图;
[0074] 图11为本申请实施例中另一种基于模板匹配的预测方法流程图;
[0075] 图12为本申请实施例中另一种基于模板匹配的预测设备结构图;
[0076] 图13为本申请实施例中另一种基于模板匹配的预测方法流程图;
[0077] 图14为本申请实施例中另一种基于模板匹配的预测方法流程图。

具体实施方式

[0078] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0079] 如图2所示,在联合探索模型(Joint exploration model,JEM)中,现有的模板匹配实现方法步骤如下所示:
[0080] 1.在前向参考图像ref0中,进行模板匹配搜索,得到前向运动信息MV0。
[0081] 2.在后向参考图像ref1中,进行模板匹配搜索,得到后向运动信息MV1。
[0082] 3.利用MV0和MV1,对当前块进行双向运动预测,获取预测值。
[0083] 4.根据预测值,进行图像块的编码或解码。
[0084] 由此可知,模板匹配搜索时,仅利用前向或后向参考图像,是一种单向搜索,而后续预测时,却采用前向和后向参考图像的双向预测,使模板匹配搜索与运动预测不匹配。影响预测精度和预测效果
[0085] 本申请实施例提供一种基于模板匹配的预测方法及装置,以解决模板匹配搜索与运动预测不匹配的问题,提高预测精度。其中,方法和装置是基于同一申请构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
[0086] 参阅图3所示,本申请实施例提供一种基于模板匹配的预测方法,具体过程如下所示:
[0087] 步骤31:在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述第一模板失真值代表所述第一匹配模板和所述当前模板的差异。
[0088] 其中,本申请中的待处理单元指的是当前块;可选的,当前模板可以是“L”型模板,包括当前块的左边相邻块和上边相邻块,当前模板可以紧邻当前块,也可以与当前块之间有一定距离,本申请中不作限定。
[0089] 具体的,在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,通过以下过程实现:
[0090] S310:在所述第一参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第一候选重构像素组合,计算所述多个第一候选重构像素组合和所述当前模板的多个第一像素差异值。
[0091] S311:根据最小的所述第一像素差异值,确定所述第一模板失真值、所述第一匹配模板.。
[0092] 这里,将最小的第一像素差异值确定为第一模板失真值,将最小的第一像素差异值对应的预测块确定为第一匹配模板。
[0093] S312:根据所述第一匹配模板和所述当前模板的位置矢量差,和所述第一匹配模板所在的图像,确定所述第一运动信息,所述第一匹配模板包括所述第一模板失真值对应的第一候选重构像素组合。
[0094] 需要说明的是,本申请中的当前模板的匹配搜索过程,指的是寻找与当前模板最匹配的模板,其匹配程度用失真值大小来衡量;当前模板指向匹配模板的运动信息即为当前模板的第一运动信息。因此,在匹配搜索完成后,可获得与当前模板最匹配的第一匹配模板,当前模板与第一匹配模板之间的失真值大小即第一模板失真值,当前模板的运动信息即第一运动信息,他们是一一对应的。
[0095] 步骤32:根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新。
[0096] 具体的,根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新时,可以通过以下公式实现:
[0097] T1=(T0-ω0×P1)/(1-ω0)
[0098] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表所述第一匹配模板的像素值,ω0代表所述第一匹配模板对应的加权系数,ω0为小于1的正数。
[0099] 一种可能的实施方式中,上述ω0设置为0.5,此时,根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新时,可以通过以下公式实现:
[0100] T1=2T0-P1
[0101] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表所述第一匹配模板的像素值。
[0102] 应理解,ω0的取值范围为0到1,且ω0不为1。
[0103] 步骤33:在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,所述第二模板失真值代表所述第二匹配模板和所述更新后的当前模板的差异。
[0104] 值得一提的是,上述第一参考图像和第二参考图像可能来自同一参考图像列表,也可能来自不同参考图像列表,第一参考图像和第二参考图像可以相同,也可以不同,本申请中不作限制。
[0105] 可选的,当所述第一参考图像来自于所述待处理单元的前向参考图像列表时,所述第二参考图像来自于所述待处理单元的后向参考图像列表;或者,当所述第一参考图像来自于所述待处理单元的后向参考图像列表时,所述第二参考图像来自于所述待处理单元的前向参考图像列表。
[0106] 具体的,在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,通过以下过程实现:
[0107] S320:在所述第二参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第二候选重构像素组合,计算所述多个第二候选重构像素组合和所述更新后的当前模板的多个第二像素差异值。
[0108] S321:根据最小的所述第二像素差异值,确定所述第二模板失真值、所述第二匹配模板。
[0109] 这里,将最小的第二像素差异值确定为第二模板失真值,将最小的第二像素差异值对应的预测块确定为第二匹配模板。
[0110] S322:根据所述第二匹配模板和所述更新后的当前模板的位置矢量差,和所述第二匹配模板所在的图像,确定所述第二运动信息,所述第二匹配模板包括所述第二模板失真值对应的第二候选重构像素组合。
[0111] 在一些可行的实施方式中,步骤33还包括:
[0112] S323:根据前述加权系数ω0对所述第二模板失真值进行更新,具体的,比如:更新后的第二模板失真值为(1-ω0)倍的更新前的第二模板失真值。
[0113] 当ω0为0.5时,更新后的第二模板失真值为更新前的第二模板失真值的0.5倍。
[0114] 应理解,由于使用和模板更新时相同的加权系数ω0,对第二模板失真值的更新和进行模板匹配时,对模板进行更新有关。
[0115] 还应理解,当S323被执行时,后续步骤中的第二模板失真值均指更新后的第二模板失真值,不再赘述。
[0116] 由于对第二模板失真值根据模板更新时的加权系数进行了更新,表征了使用第二模板时的预测误差,使后续的失真值比较的结果更符合真实的失真情况,从而选择更合适的预测值,提高了编码效率。
[0117] 步骤34:当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0118] 具体的,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值,通过以下过程实现:
[0119] S340:根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的第一向预测值。
[0120] S341:根据所述第二运动信息,在所述第二参考图像中,获得所述待处理单元的第二向预测值。
[0121] S342:对所述第一向预测值和所述第二向预测值进行加权计算,获得所述待处理单元的加权预测值。
[0122] 需要说明的是,对所述第一向预测值和所述第二向预测值进行加权计算时,可以对所述第一向预测值和所述第二向预测值进行加权取平均,得到所述待处理单元的加权预测值。可选的,对所述第一向预测值和所述第二向预测值求平均值,得到所述待处理单元的加权预测值。
[0123] 一种可能的实施方式中,将所述待处理单元的加权预测值直接作为所述待处理单元的预测值,由于上述步骤32中,实现了当前模板的更新操作,此时在后续步骤33中的模板匹配搜索过程实际上相当于双向搜索,在本质上同时利用了第一参考图像和第二参考图像,实现方式简单,同时能够提升预测精度和预测效果。
[0124] 进一步的,一种可能的实施方式中,在所述待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息和第一匹配模板之后,还需要执行如下过程:
[0125] 在第三参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第三候选重构像素组合,计算所述多个第三候选重构像素组合和所述当前模板的多个第三像素差异值;
[0126] 根据最小的所述第三像素差异值,确定所述第三模板失真值、所述第三匹配模板;这里,将最小的第三像素差异值确定为第三模板失真值,将最小的第三像素差异值对应的预测块确定为第三匹配模板。
[0127] 根据所述第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息,所述第三匹配模板包括所述第三模板失真值对应的第三候选重构像素组合。
[0128] 需要说明的是,当所述第一参考图像来自于所述待处理单元的前向参考图像列表时,所述第三参考图像来自于所述待处理单元的后向参考图像列表;或者,当所述第一参考图像来自于所述待处理单元的后向参考图像列表时,所述第三参考图像来自于所述待处理单元的前向参考图像列表。
[0129] 进一步的,在所述根据第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息之后,当所述第三模板失真值小于或等于所述第一模板失真值时,将所述第三参考图像作为所述第一参考图像;将所述第三运动信息作为所述第一运动信息;将所述第三模板失真值作为所述第一模板失真值;将所述第三匹配模板作为所述第一匹配模板。
[0130] 值得一提的是,上述第一参考图像和第三参考图像可能来自同一参考图像列表,也可能来自不同参考图像列表,第一参考图像和第三参考图像可以相同,也可以不同,本申请中不作限制。
[0131] 进一步的,一种可能的实施方式中,在所述根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值之前,还包括:
[0132] 比较所述第一模板失真值和所述第二模板失真值;
[0133] 根据所述比较结果,确定所述待处理单元的预测值。
[0134] 具体的,所述根据所述比较结果,确定所述待处理单元的预测值,包括以下两种情形:
[0135] 情形一,当所述第一模板失真值小于或等于所述第二模板失真值时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。
[0136] 情形二,当所述第一模板失真值大于或等于所述第二模板失真值时,将所述加权预测值作为所述待处理单元的预测值。
[0137] 由此可知,这种实施方式中,上述预测方法能够在单向搜索单向预测的方式和双向搜索双向预测的方式中进行自适应选择,此时,在实现复杂度较低的情形下提高预测的效果和精度。
[0138] 进一步的,另一种可能的实施方式中,在所述根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值之前,还包括:
[0139] 比较所述第一模板失真值、所述第二模板失真值和所述第三模板失真值;
[0140] 根据所述比较结果,确定所述待处理单元的预测值。
[0141] 具体的,所述根据所述比较结果,确定所述待处理单元的预测值,包括以下三种情形:
[0142] 情形一,当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。
[0143] 情形二:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。
[0144] 情形三:当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。
[0145] 这种实施方式中,能够在两个不同的单向搜索单向预测的方式、以及双向搜索双向预测的方式中进行自适应选择,此时,虽然实现复杂度较高,但是有较好的自适应选择性,从而提高预测的效果和精度。
[0146] 以下通过实际的应用场景来详细说明图3中的方法。
[0147] 场景一
[0148] 场景一中通过模板匹配的双向搜索和双向预测获得当前块的预测值,具体过程如下所示:
[0149] 1、在当前块的前向参考图像ref0中进行当前模块的匹配搜索,得到当前块的前向运动信息MV0、当前模板的前向预测值,即第一匹配模板的像素值P1;
[0150] 2、利用以下公式对当前模板进行更新。
[0151] T1=2T0-P1
[0152] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表当前模板的前向预测值。
[0153] 3、在当前块的后向参考图像中,利用更新后的当前模板T1进行模板的匹配搜索,得到当前块的后向运动信息MV1。
[0154] 4、利用MV0和MV1,对当前块进行双向预测,得到当前块的前向预测值pred0和后向预测值pred1。
[0155] 5、针对所述当前块的前向预测值pred0和后向预测值pred1计算平均值得到所述当前块的预测值。
[0156] 这样,相比于现有技术,由于增加了当前模板的更新操作,在当前模板更新后,后续步骤中的模板匹配搜索过程相当于双向搜索,本质上同时利用了前向参考图像和后向参考图像,通过简单的方式实现模板匹配的双向搜索过程,提升预测精度和预测效果。
[0157] 需要说明的是,场景一中的步骤1-步骤3,可迭代执行多次,以便获得更高精度的运动信息。
[0158] 需要说明的是,如果步骤5中的双向预测采用加权预测的方式,如:predBi=w0*pred0+ω1*pred1),那么相应的步骤2中的模板更新过程使用的公式更改为如下形式:
[0159] T1=(T0-ω0×P1)/ω1
[0160] 式中,ω0,ω1为前向预测值pred0和后向预测值pred1对应的加权系数,并满足ω0+ω1=1。
[0161] 如果双向预测采用加权预测的方式,那么涉及的加权系数可根据前向预测和后向预测对应的失真值进行计算。原则上,给预测越准确的分配越大的权重即预测失真越小的分配越大的权重,比如:
[0162] ω0=cost1/(cost0+cost1);ω1=cost0/(cost0+cost1),
[0163] 其中,cost0为前向预测对应的当前模板的失真值,cost1为后向预测对应的当前模板的失真值。
[0164] 其中,加权预测特别适合亮度渐变的场景,本申请中基于模板匹配的预测方法可自适应计算出加权系数,在图像内部不同区域允许有不同的加权系数,这样会有更好的局部适应性,有助于进行更准确的预测。
[0165] 针对场景一中步骤3中的模板匹配搜索相当于双向搜索的原因如下:
[0166] 步骤3的模板匹配,是要在后向参考图像Ref1中寻找一个后向预测值Pred1,使得其与模板最为匹配,匹配过程就是最小化T1-Pred1。由于
[0167] T1-Pred1=(2×T0-Pred0)-Pred1
[0168] =2×[T0-(Pred0+Pred1)/2]
[0169] 式中,(Pred0+Pred1)/2为当前块的加权预测值,而最小化(T0-(Pred0+Pred1)/2)为标准的双向匹配搜索过程。
[0170] 可见,最小化(T1-Pred1)的过程,也就相当于最小化(T0-(Pred0+Pred1)/2)的过程。因此,步骤3的匹配搜索过程实际上就是双向匹配搜索。同时,从上式中看到,此时模板差异(T1-Pred1)相当于2倍的当前模板与双向预测值之差(T0-(Pred0+Pred1)/2);因此,经过归一化,1/2*(T1-Pred1)相当于表征当前模板与双向预测值之间的差异,用于后续cost的比较。
[0171] 值得一提的是,场景一中通过模板匹配的双向搜索和双向预测获得当前块的预测值的实施过程,也可以先在后向参考图像ref1中进行当前模块的匹配搜索,得到当前块的后向运动信息MV1、当前模板的后向预测值P1,再利用后向预测值P1对当前模板进行更新,从而在前向参考图像中进行模板的双向匹配搜索过程,进而得到当前块的预测值,其他过程均相似,在此不再赘述。
[0172] 场景二
[0173] 场景二中在两个不同的单向搜索和单向预测方式包括前向搜索前向预测和后向搜索后向预测、双向搜索和双向预测方式中自适应选择预测方式以获取当前块的预测值,具体过程如下所示:
[0174] 1.在当前块的前向参考图像ref0中进行当前模块的匹配搜索,得到当前块的前向运动信息MV0、当前模板的前向预测值,即匹配模板的像素值,以及当前模板与当前模板的前向预测值之间的第一失真值cost0。
[0175] 2、在当前块的后向参考图像ref1中进行当前模块的匹配搜索,得到当前块的后向运动信息MV1当前模板的后向预测值,即匹配模板的像素值,以及当前模板与当前模板的后向预测值之间的第二失真值cost2。
[0176] 3、比较cost0、cost2的大小,从中选择较小失真值对应的预测方式来获取当前块的双向运动信息、以及当前模板与当前模板的加权预测值之间的第一失真值cost1。
[0177] 具体的,在第一种实施方式中,若cost0小于cost2,利用以下公式对当前模板进行更新。
[0178] T1=2T0-P1
[0179] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表当前模板的前向预测值。
[0180] 然后,在当前块的后向参考图像中,利用更新后的当前模板T1进行模板的匹配搜索,得到当前块的后向运动信息MV1’,更新后的当前模板的加权预测值、以及更新后的当前模板的第一失真值cost1。
[0181] 此时,当前块的双向运动信息为MV0和MV1’。
[0182] 具体的,在第二种实施方式中,若cost1不小于cost2,利用以下公式对当前模板进行更新。
[0183] T1=2T0-P1'
[0184] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1'代表当前模板的后向预测值。
[0185] 然后,在当前块的前向参考图像中,利用更新后的当前模板T1进行模板的匹配搜索,得到当前块的前向运动信息MV0’,更新后的当前模板的加权预测值、以及更新后的当前模板的第一失真值cost1。
[0186] 此时,当前块的双向运动信息为MV0’和MV1。
[0187] 4、从cost0和cost2中的较小者与cost1比较大小,从中选择最小失真值对应的预测方式来获取当前块的预测值。
[0188] 具体的,在上述步骤3中的第一种实施方式情况下:
[0189] 若cost0小于cost1,利用前向运动信息MV0,在当前块的前向参考图像中获取当前块的前向预测值,作为当前块的预测值,
[0190] 若cost0不小于cost1,利用前向运动信息MV0和后向运动信息MV1’,在当前块的前向参考图像中获取当前块的前向预测值,在前块的后向参考图像中获取当前块的后向预测值,对所述当前块的前向预测值和所述当前块的后向预测值进行加权计算得到所述当前块的预测值。
[0191] 具体的,在上述步骤3中的第二种实施方式情况下:
[0192] 若cost2小于cost1,利用后向运动信息MV1,在当前块的后向参考图像中获取当前块的后向预测值,作为当前块的预测值。
[0193] 若cost2不小于cost1,利用前向运动信息MV0’和后向运动信息MV1,在当前块的前向参考图像中获取当前块的前向预测值,在前块的后向参考图像中获取当前块的后向预测值,对所述当前块的前向预测值和所述当前块的后向预测值进行加权计算得到所述当前块的预测值。
[0194] 需要说明的是,场景二中需要进行三次单向的模板匹配搜索过程,自适应性最好,预测的效果最好,但是实现复杂度较高。
[0195] 场景三
[0196] 场景三中在一种确定的单向搜索和单向预测方式、双向搜索和双向预测方式中自适应选择预测方式以获取当前块的预测值,具体过程如下所示:
[0197] 具体的,在确定单向搜索和单向预测方式的方向时,可事先根据一些指标进行确定。比如,(1)在执行模板匹配搜索之前,根据前向运动矢量初始值和后向运动矢量初始值对当前模板进行匹配搜索,分别获得当前模板对应的前向预测值与当前模板的前向失真值cost0’;以及当前模板对应的后向预测值与当前模板的后向失真值cost2’,cost0’与cost2’的大小来选择,选择失真值小的对应的单向预测方式;又比如(2)根据当前块与前向参考图像和后向参考图像之间的时域距离来判定,选择时域距离小的单向预测方式。
[0198] 若确定的单向预测方式为前向搜索和前向预测,具体的实现流程图可参阅图4A所示:
[0199] 1.在当前块的前向参考图像ref0中进行当前模块的匹配搜索,得到当前块的前向运动信息MV0、当前模板的前向预测值,即匹配模板的像素值,以及当前模板与当前模板的前向预测值之间的第一失真值cost0。
[0200] 2、利用以下公式对当前模板进行更新:
[0201] T1=2T0-P1
[0202] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表当前模板的前向预测值。
[0203] 3、在当前块的后向参考图像中,利用更新后的当前模板T1进行模板的匹配搜索,得到更新后的当前模块的加权预测值,以及与更新后的当前模板之间的第二失真值cost1。
[0204] 4、比较cost0、cost1的大小。
[0205] 5、根据cost0、cost1的比较结果,从中选择较小失真值对应的预测方式来获取当前块的预测值。
[0206] 具体的,若cost0小于cost1,利用前向运动信息MV0,在当前块的前向参考图像中获取当前块的前向预测值,作为当前块的预测值,
[0207] 若cost0不小于cost1,利用前向运动信息MV0和后向运动信息MV1’,在当前块的前向参考图像中获取当前块的前向预测值,在前块的后向参考图像中获取当前块的后向预测值,对所述当前块的前向预测值和所述当前块的后向预测值进行加权计算得到所述当前块的预测值。
[0208] 若确定的单向预测方式为后向搜索和后向预测,具体的实现流程图可参阅图4B所示::
[0209] 1、在当前块的后向参考图像ref1中进行当前模块的匹配搜索,得到当前块的后向运动信息MV1’、当前模板的后向预测值,即匹配模板的像素值,以及当前模板与当前模板的后向预测值之间的第三失真值cost2。
[0210] 2、利用以下公式对当前模板进行更新:
[0211] T1=2T0-P1'
[0212] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1'代表当前模板的后向预测值。
[0213] 3、在当前块的后向参考图像中,利用更新后的当前模板T1进行模板的匹配搜索,得到更新后的当前模块的加权预测值,以及与更新后的当前模板之间的第二失真值cost1。
[0214] 4、比较cost1、cost2的大小。
[0215] 5、根据cost1、cost2的比较结果,从中选择较小失真值对应的预测方式来获取当前块的预测值。
[0216] 若cost2不小于cost1,利用前向运动信息MV0’和后向运动信息MV1,在当前块的前向参考图像中获取当前块的前向预测值,在前块的后向参考图像中获取当前块的后向预测值,对所述当前块的前向预测值和所述当前块的后向预测值进行加权计算得到所述当前块的预测值。
[0217] 若cost2小于cost1,利用后向运动信息MV1,在当前块的后向参考图像中获取当前块的后向预测值,作为当前块的预测值。
[0218] 需要说明的是,场景三相比于场景二,减少了一次模板匹配搜索过程,降低了复杂度的同时,提高预测精度。
[0219] 根据上述预测方法得到预测值,进行图像块的编码或解码。
[0220] 图5是视频编解码装置或电子设备50的示意性框图,该装置或者电子设备可以并入根据本申请的实施例的预测设备。图6是根据本申请实施例的用于视频编码的示意性装置图。下面将说明图5和图6中的单元。
[0221] 电子设备50可以例如是无线通信系统的移动终端或者用户设备。应理解,可以在可能需要对视频图像进行编码和解码,或者编码,或者解码的任何电子设备或者装置内实施本申请的实施例。
[0222] 装置50可以包括用于并入和保护设备的壳30。装置50还可以包括形式为液晶显示器的显示器32。在本申请的其它实施例中,显示器可以是适合于显示图像或者视频的任何适当的显示器技术。装置50还可以包括小键盘34。在本申请的其它实施例中,可以运用任何适当的数据或者用户接口机制。例如,可以实施用户接口为虚拟键盘或者数据录入系统作为触敏显示器的一部分。装置可以包括麦克风36或者任何适当的音频输入,该音频输入可以是数字或者模拟信号输入。装置50还可以包括如下音频输出设备,该音频输出设备在本申请的实施例中可以是以下各项中的任何一项:耳机38、扬声器或者模拟音频或者数字音频输出连接。装置50也可以包括电池40,在本申请的其它实施例中,设备可以由任何适当的移动能量设备,比如太阳能电池、燃料电池或者时钟机构生成器供电。装置还可以包括用于与其它设备的近程视线通信的红外线端口42。在其它实施例中,装置50还可以包括任何适当的近程通信解决方案,比如蓝牙无线连接或者USB/火线有线连接。
[0223] 装置50可以包括用于控制装置50的控制器56或者处理器。控制器56可以连接到存储器58,该存储器在本申请的实施例中可以存储形式为图像的数据和音频的数据,和/或也可以存储用于在控制器56上实施的指令。控制器56还可以连接到适合于实现音频和/或视频数据的编码和解码或者由控制器56实现的辅助编码和解码的编码解码器54。
[0224] 装置50还可以包括用于提供用户信息并且适合于提供用于在网络认证和授权用户的认证信息的读卡器48和智能卡46,例如UICC和UICC读取器。
[0225] 装置50还可以包括无线电接口电路52,该无线电接口电路连接到控制器并且适合于生成例如用于与蜂窝通信网络、无线通信系统或者无线局域网通信的无线通信信号。装置50还可以包括天线44,该天线连接到无线电接口电路52用于向其它(多个)装置发送在无线电接口电路52生成的射频信号并且用于从其它(多个)装置接收射频信号。
[0226] 在本申请的一些实施例中,装置50包括能够记录或者检测单帧的相机,编码解码器54或者控制器接收到这些单帧并对它们进行处理。在本申请的一些实施例中,装置可以在传输和/或存储之前从另一设备接收待处理的视频图像数据。在本申请的一些实施例中,装置50可以通过无线或者有线连接接收图像用于编码/解码。
[0227] 图7是根据本申请实施例的另一视频编解码系统10的示意性框图。如图7所示,视频编解码系统10包含源装置12及目的地装置14。源装置12产生经编码视频数据。因此,源装置12可被称作视频编码装置或视频编码设备。目的地装置14可解码由源装置12产生的经编码视频数据。因此,目的地装置14可被称作视频解码装置或视频解码设备。源装置12及目的地装置14可为视频编解码装置或视频编解码设备的实例。源装置12及目的地装置14可包括广泛范围的装置,包含台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、智能电话等手持机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机,或其类似者。
[0228] 目的地装置14可经由信道16接收来自源装置12的编码后的视频数据。信道16可包括能够将经编码视频数据从源装置12移动到目的地装置14的一个或多个媒体及/或装置。在一个实例中,信道16可包括使源装置12能够实时地将编码后的视频数据直接发射到目的地装置14的一个或多个通信媒体。在此实例中,源装置12可根据通信标准(例如,无线通信协议)来调制编码后的视频数据,且可将调制后的视频数据发射到目的地装置14。所述一个或多个通信媒体可包含无线及/或有线通信媒体,例如射频(RF)频谱或一根或多根物理传输线。所述一个或多个通信媒体可形成基于包的网络(例如,局域网、广域网或全球网络(例如,因特网))的部分。所述一个或多个通信媒体可包含路由器、交换器、基站,或促进从源装置12到目的地装置14的通信的其它设备。
[0229] 在另一实例中,信道16可包含存储由源装置12产生的编码后的视频数据的存储媒体。在此实例中,目的地装置14可经由磁盘存取或卡存取来存取存储媒体。存储媒体可包含多种本地存取式数据存储媒体,例如蓝光光盘、DVD、CD-ROM、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。
[0230] 在另一实例中,信道16可包含文件服务器或存储由源装置12产生的编码后的视频数据的另一中间存储装置。在此实例中,目的地装置14可经由流式传输或下载来存取存储于文件服务器或其它中间存储装置处的编码后的视频数据。文件服务器可以是能够存储编码后的视频数据且将所述编码后的视频数据发射到目的地装置14的服务器类型。实例文件服务器包含web服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络附加存储(NAS)装置,及本地磁盘驱动器。
[0231] 目的地装置14可经由标准数据连接(例如,因特网连接)来存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器的发射可为流式传输、下载传输或两者的组合。
[0232] 本申请的技术不限于无线应用场景,示例性的,可将所述技术应用于支持以下应用等多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统10可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
[0233] 在图7的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些实例中,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。视频源18可包含视频俘获装置(例如,视频相机)、含有先前俘获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,及/或用于产生视频数据的计算机图形系统,或上述视频数据源的组合。
[0234] 视频编码器20可编码来自视频源18的视频数据。在一些实例中,源装置12经由输出接口22将编码后的视频数据直接发射到目的地装置14。编码后的视频数据还可存储于存储媒体或文件服务器上以供目的地装置14稍后存取以用于解码及/或播放。
[0235] 在图7的实例中,目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些实例中,输入接口28包含接收器及/或调制解调器。输入接口28可经由信道16接收编码后的视频数据。显示装置32可与目的地装置14整合或可在目的地装置14外部。一般来说,显示装置32显示解码后的视频数据。显示装置32可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(0LED)显示器或其它类型的显示装置。
[0236] 视频编码器20及视频解码器30可根据视频压缩标准(例如,高效率视频编解码H.265标准)而操作,且可遵照HEVC测试模型(HM)。H.265标准的文本描述ITU-TH.265(V3)(04/2015)于2015年4月29号发布,可从http://handle.itu.int/11.1002/1000/12455下载,所述文件的全部内容以引用的方式并入本文中。
[0237] 基于上述方法实施例,如图8所示,本申请实施例提供一种基于模板匹配的预测装置800,如图8所示,该装置800包括搜索单元801、更新单元802和确定单元803,其中:
[0238] 搜索单元801,用于在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述第一模板失真值代表所述第一匹配模板和所述当前模板的差异;
[0239] 更新单元802,用于根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新:
[0240] 所述搜索单元801,还用于在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值,所述第二模板失真值代表所述第二匹配模板和所述更新后的当前模板的差异;
[0241] 确定单元803,用于当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值。
[0242] 可选的,所述更新单元802在根据所述第一匹配模板的像素值对所述当前模板的像素值进行更新时,符合下述表达式:
[0243] T1=(T0-ω0×P1)/(1-ω0),
[0244] 其中,T1代表所述更新后的当前模板的像素值,T0代表所述当前模板的像素值,P1代表所述第一匹配模板的像素值,ω0代表所述第一匹配模板对应的加权系数,ω0为小于1的正数。
[0245] 应理解,ω0的取值范围为0到1,且ω0不为1。
[0246] 可选的,所述ω0为0.5。
[0247] 可选的,所述搜索单元801在待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息、第一匹配模板和第一模板失真值时,具体用于:
[0248] 在所述第一参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第一候选重构像素组合,计算所述多个第一候选重构像素组合和所述当前模板的恶不露多个第一像素差异值;
[0249] 根据最小的所述第一像素差异值,确定所述第一模板失真值、所述第一匹配模板;
[0250] 根据所述第一匹配模板和所述当前模板的位置矢量差,和所述第一匹配模板所在的图像,确定所述第一运动信息,所述第一匹配模板包括所述第一模板失真值对应的第一候选重构像素组合。
[0251] 可选的,所述搜索单元801在所述待处理单元的第二参考图像中进行所述更新后的当前模板的匹配搜索,获得所述待处理单元的第二运动信息、第二匹配模板和第二模板失真值时,具体用于:
[0252] 在所述第二参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第二候选重构像素组合,计算所述多个第二候选重构像素组合和所述更新后的当前模板的多个第二像素差异值;
[0253] 根据最小的所述第二像素差异值,确定所述第二模板失真值、所述第二匹配模板;
[0254] 根据所述第二匹配模板和所述更新后的当前模板的位置矢量差,和所述第二匹配模板所在的图像,确定所述第二运动信息,所述第二匹配模板包括所述第二模板失真值对应的第二候选重构像素组合。
[0255] 可选的,所述确定单元803在根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值时,具体用于:
[0256] 根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的第一向预测值;
[0257] 根据所述第二运动信息,在所述第二参考图像中,获得所述待处理单元的第二向预测值;
[0258] 对所述第一向预测值和所述第二向预测值进行加权计算,获得所述待处理单元的加权预测值。
[0259] 可选的,所述搜索单元801在所述待处理单元的第一参考图像中进行当前模板的匹配搜索,获得所述待处理单元的第一运动信息和第一匹配模板之后,还用于:
[0260] 在第三参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个第三候选重构像素组合,计算所述多个第三候选重构像素组合和所述当前模板的多个第三像素差异值;
[0261] 根据最小的所述第三像素差异值,确定所述第三模板失真值、所述第三匹配模板;
[0262] 根据所述第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息,所述第三匹配模板包括所述第三模板失真值对应的第三候选重构像素组合。
[0263] 可选的,所述搜索单元801在所述根据第三匹配模板和所述当前模板的位置矢量差,和所述第三匹配模板所在的图像,确定所述第三运动信息之后,当所述第三模板失真值小于或等于所述第一模板失真值时,还用于:
[0264] 将所述第三参考图像作为所述第一参考图像;
[0265] 将所述第三运动信息作为所述第一运动信息;
[0266] 将所述第三模板失真值作为所述第一模板失真值;
[0267] 将所述第三匹配模板作为所述第一匹配模板。
[0268] 可选的,所述确定单元803在所述根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值之前,还用于:
[0269] 比较所述第一模板失真值和所述第二模板失真值。
[0270] 可选的,所述确定单元803在当所述比较的结果为所述第二模板失真值不小于所述第一模板失真值时,具体用于:
[0271] 根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值。
[0272] 可选的,所述确定单元803在所述根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值之前,还用于:
[0273] 比较所述第一模板失真值、所述第二模板失真值和所述第三模板失真值。
[0274] 可选的,所述确定单元803在当所述第二模板失真值小于所述第一模板失真值时,根据所述第一运动信息和所述第二运动信息,确定所述待处理单元的加权预测值时,具体用于:
[0275] 当所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第二模板失真值最小时,将所述加权预测值作为所述待处理单元的预测值。
[0276] 可选的,所述确定单元803用于:
[0277] 当所述比较的结果为所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第一模板失真值最小时,根据所述第一运动信息,在所述第一参考图像中,获得所述待处理单元的预测值;或者,
[0278] 当所述比较的结果为所述第一模板失真值、所述第二模板失真值和所述第三模板失真值中,所述第三模板失真值最小时,根据所述第三运动信息,在所述第三参考图像中,获得所述待处理单元的预测值。
[0279] 可选的,当所述第一参考图像来自于所述待处理单元的前向参考图像列表时,所述第三参考图像来自于所述待处理单元的后向参考图像列表;或者,当所述第一参考图像来自于所述待处理单元的后向参考图像列表时,所述第三参考图像来自于所述待处理单元的前向参考图像列表。
[0280] 可选的,所述更新单元802还用于根据前述加权系数ω0对所述第二模板失真值进行更新,具体的,比如:更新后的第二模板失真值为(1-ω0)倍的更新前的第二模板失真值。
[0281] 当ω0为0.5时,更新后的第二模板失真值为更新前的第二模板失真值的0.5倍。
[0282] 应理解,由于使用和模板更新时相同的加权系数ω0,对第二模板失真值的更新和进行模板匹配时,对模板进行更新有关。
[0283] 还应理解,当所述更新单元802还用于根据前述加权系数ω0对所述第二模板失真值进行更新时,其它单元执行后续步骤时的第二模板失真值均指更新后的第二模板失真值,不再赘述。
[0284] 由于对第二模板失真值根据模板更新时的加权系数进行了更新,表征了使用第二模板时的预测误差,使后续的失真值比较的结果更符合真实的失真情况,从而选择更合适的预测值,提高了编码效率。
[0285] 本申请实施例中的装置800的各个单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述,在此不再赘述。
[0286] 应理解以上装置800中的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个单元可以为单独设立的处理元件,也可以集成在编解码设备的某一个芯片中实现,此外,也可以以程序代码的形式存储于编解码设备的存储元件中,由编解码设备的某一个处理元件调用并执行以上各个单元的功能。此外各个单元可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如中央处理器(英文:centralprocessingunit,简称:CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application-specificintegratedcircuit,简称:ASIC),或,一个或多个微处理器(英文:digitalsignalprocessor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:field-programmablegatearray,简称:FPGA)等。
[0287] 根据同一发明构思,本申请实施例还提供一种基于模板匹配的预测设备900,如图9所示,该设备900包括处理器901和存储器902,执行本申请方案的程序代码保存在存储器
902中,用于指令处理器901执行图3、图4A、图4B所示的预测方法。
[0288] 本申请还可以通过对处理器进行设计编程,将图3、图4A、图4B所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图3、图4A、图4B所示的方法。
[0289] 可以理解的是,本申请实施例上述设备900中涉及的处理器可以是一个CPU,DSP,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。计算机系统中包括的一个或多个存储器,可以是只读存储器(英文:read-only memory,简称ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(英文:random access memory,简称:RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是磁盘存储器。这些存储器通过总线与处理器相连接,或者也可以通过专门的连接线与处理器连接。
[0290] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-trans itory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。
[0291] 本发明的一个具体实施例对JVET-D1001,“Algorithm Description of Joint Exploration Test Model 4”中帧率上转换(FRUC)的实现方案(可从http://phenix.int-evry.fr/jvet/下载,该参考文献的全部内容以引用的方式并入本文),进行了改进,如图10所示,具体的各可行的实施方式详见前文所述,不再赘述。
[0292] 在本发明的一些实施例中,后向的模板匹配搜索要依赖于前向的模板匹配的结果,具体的,需要依然前向模板匹配搜索中获得的匹配模板来更新用于后向模板匹配搜索的当前模板,因此,前向模板匹配搜索和后向模板匹配搜索不能并行执行,在一些特殊的应用场景中,影响了方案的执行效率。
[0293] 为了提高方案执行的并行性,在本发明的一个具体实施例中,如图11所示,包括以下步骤:
[0294] S1101:获取当前待处理单元块的模板Tc;
[0295] S1102:在属于list0参考图像列表的图像中,基于当前模板Tc进行匹配搜索,获得匹配模板T0,运动信息MV0,及模板匹配失真值cost0,其中cost0用来表示Tc与T0之间的像素值的差值;
[0296] S1103:在属于list1参考图像列表的图像中,基于当前模板Tc进行匹配搜索,获得匹配模板T1,运动信息MV1,及模板匹配失真值cost1,其中cost1用来表示Tc与T1之间的像素值的差值;
[0297] 应理解,S1102和S1103可以并行执行,没有先后执行顺序的要求。
[0298] 应理解,MV0的获取可以根据list0中的某一帧参考图像,在一些可行的实施方式中,也可以在list0的多帧图像中获得,比如多参考帧技术,取率失真代价最小的运动信息或者多个运动信息的加权。MV1的获取同理所述,不再赘述。
[0299] S1104:获得当前模板的双向预测失真值costBi,costBi表示当前模板Tc与其双向预测值T0和T1的加权值间的差值;
[0300] 在一个具体的实施例中,costBi可以表示为Tc与(0.5*T0+0.5*T1)的绝对误差和。
[0301] S1105:根据各失真值cost0,cost1,costBi,确定当前待处理单元块的预测方式和运动信息;
[0302] 具体的,当cost0在cost0,cost1,costBi中最小时,确定预测方式为基于list0的单向预测,运动信息为MV0;当cost1在cost0,cost1,costBi中最小时,确定预测方式为基于list1的单向预测,运动信息为MV1;当costBi在cost0,cost1,costBi中最小时,确定预测方式为基于list0和list1的双向预测,运动信息为MV0和MV1。
[0303] S1106:根据确定的运动信息,计算当前待处理单元块的预测值。
[0304] 应理解,上述实施例的各步骤中,具体的可行的实施方式和前述各实施例中的相应步骤类似,不再赘述。
[0305] 在一种具体的实施方式中,该方法在步骤S1106之前,还包括:
[0306] S1107:更新MV0和MV1;
[0307] 具体的,比如根据JVET-D1001,“Algorithm Description of Joint Exploration Test Model 4”中所述的子块级的运动矢量更新(motion refine)的方法,在MV0和MV1用于运动补偿获得预测值之前,对MV0和MV1进一步更新。
[0308] 在一种具体的实施方式中,该方法在S1101步骤之前,还包括:
[0309] S1108:确定待处理单元块的预测模式为合并模式(Merge)。
[0310] 即仅在Merge模式下执行步骤S1101-S1106所述的方法。
[0311] 应理解,因为Merge模式无需传输运动信息,无需考虑编码运动信息所带来的编码代价,更符合本发明实施例直接根据预测误差cost进行优选的方式,由此选出的最优的运动信息编码效率更高。
[0312] 需要说明的是,上述cost值表示当前模板的失真值,其可以是绝对误差和SAD,也可以是误差的平方和SSE,或其他表示失真的量。
[0313] 在本发明实施例中,运动信息的选择自适应的进行,不需要对运动信息的选择模式进行编码,节省了编码码率,同时不同的单向模板匹配预测可以并行进行,提高了方案的执行效率。
[0314] 和上述实施例对应的,如图12所示,一种基于模板匹配的预测装置1200,包括:
[0315] 匹配单元1201,用于在待处理单元的至少两个参考图像中基于当前模板分别进行匹配搜索,在每次所述匹配搜索中获得与所述参考图像对应的一组运动信息、一个单向匹配模板和一个单向模板失真值,所述当前模板包括所述待处理单元的邻域中预设位置和数量的多个重构像素,所述单向模板失真值代表所述当前模板和所述单向匹配模板的差异;
[0316] 确定单元1202,用于确定所述获得的单向模板失真值中最小的一个所对应的所述运动信息为所述待处理单元的目标运动信息;
[0317] 构建单元1203,用于根据所述目标运动信息,构建所述待处理单元的预测值。
[0318] 在一种可行的实施方式中,还包括:计算单元1204,用于在所述在待处理单元的至少两个参考图像中基于当前模板分别进行匹配搜索,在每次所述匹配搜索中获得与所述参考图像对应的一组运动信息、一个单向匹配模板和一个单向模板失真值之后,根据两个所述单向匹配模板的像素值,获得一个加权模板失真值,所述加权模板失真值代表所述当前模板和所述两个单向匹配模板的加权的差异,所述加权模板失真值对应所述两个单向匹配模板所对应的两组所述运动信息;
[0319] 对应的,所述确定单元1202用于:确定所述获得的单向模板失真值和所述加权模板失真值中最小的一个所对应的所述运动信息为所述目标运动信息。
[0320] 在一种可行的实施方式中,所述构建单元1203具体用于:
[0321] 当所述目标运动信息仅包括第一组运动信息时,根据所述第一组运动信息,在所述第一组运动信息对应的第一参考图像中,获得所述待处理单元的预测值;
[0322] 当所述目标运动信息仅包括第二组运动信息和第三组运动信息时,根据所述第二组运动信息,在所述第二组运动信息对应的第二参考图像中,获得第二预测值;且根据所述第三组运动信息,在所述第三组运动信息对应的第三参考图像中,获得第三预测值;且确定所述第二预测值和所述第三预测值的加权计算值为所述待处理单元的预测值。
[0323] 在一种可行的实施方式中,所述匹配单元1201具体用于:在所述参考图像的预设范围的重构像素中,遍历和所述当前模板具有相同尺寸和形状的多个候选重构像素组合,计算所述多个候选重构像素组合和所述当前模板的多个像素差异值;
[0324] 根据最小的所述像素差异值,确定所述单向匹配模板和所述单向模板失真值,所述单向匹配模板包括所述单向模板失真值对应的所述候选重构像素组合;
[0325] 根据所述参考图像、所述单向匹配模板和所述当前模板的位置矢量差,确定所述运动信息。
[0326] 在一种可行的实施方式中,所述匹配单元1201具体用于:在待处理单元的前向参考图像列表的至少一个参考图像中基于所述当前模板进行所述匹配搜索,获得一组前向运动信息、一个前向匹配模板和一个前向模板失真值;且在待处理单元的后向参考图像列表的至少一个参考图像中基于所述当前模板进行所述匹配搜索,获得一组后向运动信息、一个后向匹配模板和一个后向模板失真值。
[0327] 在一种可行的实施方式中,所述根据两个所述单向匹配模板的像素值,获得一个加权模板失真值,通过如下公式表示:
[0328] Tw=|ω0×T1+(1-ω0)×T2-Tc|,
[0329] 其中,Tw表示所述加权模板失真值,T1、T2表示两个所述单向匹配模板的像素值,Tc表示所述当前模板的像素值,ω0表示加权系数,ω0≥0且ω0≤1。
[0330] 在一种可行的实施方式中,还包括模式获取单元1205,用于在所述在待处理单元的至少两个参考图像中基于当前模板进行匹配搜索之前,确定所述待处理单元的预测模式属于合并模式。
[0331] 在本发明实施例中,运动信息的选择自适应的进行,不需要对运动信息的选择模式进行编码,节省了编码码率,同时不同的单向模板匹配预测可以并行进行,提高了方案的执行效率。
[0332] 在本发明的一个示例性的实施例中,如图13所示,包括:
[0333] 1.在当前块的属于list0的参考图像ref0中进行当前模块Tc的匹配搜索,得到当前块的前向运动信息MV0、当前模板的前向预测值T0,即匹配模板的像素值,以及当前模板与当前模板的前向预测值之间的第一失真值cost0。
[0334] 2、利用以下公式对当前模板进行更新:
[0335] T1=2×Tc-T0
[0336] 其中,T1代表所述更新后的当前模板的像素值。
[0337] 3、在当前块的属于list1的参考图像ref1中,利用更新后的当前模板T1进行模板的匹配搜索,得到当前块的后向运动信息MV1以及更新后的当前模板与当前模板的后向预测值之间的加权失真值costBi。
[0338] 4、比较2×cost0和调整后的costBi的大小。
[0339] 在一种可行的实施方式中,调整后的costBi=factor×costBi,其中factor为调整系数,取值范围为大于0且小于等于1的实数,示例性的,factor可以为1/1.1,或1/1.2,或1/1.3。具体的,在前述JCTVC标准组织的一种通用测试条件下,不同的factor获得的不同编码增益如下述各表所示:
[0340]
[0341] 5、根据2×cost0和调整后的costBi的比较结果,从中选择较小失真值对应的预测方式来获取当前块的预测值。
[0342] 具体的,若2×cost0小于factor×costBi,利用前向运动信息MV0,在当前块的前向参考图像中获取当前块的前向预测值,作为当前块的预测值,
[0343] 若2×cost0不小于factor×costBi,利用前向运动信息MV0和后向运动信息MV1,在当前块的前向参考图像中获取当前块的前向预测值,在前块的后向参考图像中获取当前块的后向预测值,对所述当前块的前向预测值和所述当前块的后向预测值进行加权计算得到所述当前块的预测值。
[0344] 应理解,上述实施例的各步骤中,具体的可行的实施方式和前述各实施例中的相应步骤类似,不再赘述。
[0345] 在本发明的一个示例性的实施例中,如图14所示,包括:
[0346] S1401:获取当前待处理单元块的模板Tc;
[0347] S1402:在属于list0参考图像列表的图像中,基于当前模板Tc进行匹配搜索,获得匹配模板T0,运动信息MV0,及模板匹配失真值cost0,其中cost0用来表示Tc与T0之间的像素值的差值;
[0348] S1403:在属于list1参考图像列表的图像中,基于当前模板Tc进行匹配搜索,获得匹配模板T1,运动信息MV1,及模板匹配失真值cost1,其中cost1用来表示Tc与T1之间的像素值的差值;
[0349] 应理解,S1402和S1403可以并行执行,没有先后执行顺序的要求。
[0350] 应理解,MV0的获取可以根据list0中的某一帧参考图像,在一些可行的实施方式中,也可以在list0的多帧图像中获得,比如多参考帧技术,取率失真代价最小的运动信息或者多个运动信息的加权。MV1的获取同理所述,不再赘述。
[0351] S1404:获得当前模板的双向预测失真值costBi,costBi表示当前模板Tc与其双向预测值T0和T1的加权值间的差值;
[0352] 在一个具体的实施例中,costBi可以表示为Tc与(0.5*T0+0.5*T1)的绝对误差和。
[0353] S1405:根据各失真值cost0,cost1,costBi,确定当前待处理单元块的预测方式和运动信息;
[0354] 在一种可行的实施方式中,可以对costBi进行调整,调整后的costBi=factor×costBi,其中factor为调整系数,取值范围为大于0且小于等于1的实数,示例性的,factor可以为1/1.1,或1/1.2,或1/1.3。
[0355] 具体的,当cost0在cost0,cost1,factor×costBi中最小时,确定预测方式为基于list0的单向预测,运动信息为MV0;当cost1在cost0,cost1,factor×costBi中最小时,确定预测方式为基于list1的单向预测,运动信息为MV1;当factor×costBi在cost0,cost1,factor×costBi中最小时,确定预测方式为基于list0和list1的双向预测,运动信息为MV0和MV1。
[0356] S1406:根据确定的运动信息,计算当前待处理单元块的预测值。
[0357] 应理解,上述实施例的各步骤中,具体的可行的实施方式和前述各实施例中的相应步骤类似,不再赘述。
[0358] 本申请是参照本申请实施例的方法和设备各自的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。