用于视频译码中的条件性解码器侧运动矢量修正的装置和方法与流程
未命名
07-13
阅读:112
评论:0
用于视频译码中的条件性解码器侧运动矢量修正的装置和方法
1.相关申请交叉引用
2.本专利申请要求于2018年9月13日提交的申请号为in201831034607的印度临时专利申请的优先权。上述专利申请的全部内容通过引用的方式并入本文中。
技术领域
3.本发明实施例大体上涉及视频数据编码和解码技术,尤其涉及视频译码中的解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)。
背景技术:
4.即使在视频较短的情况下也需要对大量视频数据进行描述,当数据要在带宽容量有限的通信网络中发送或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后在现代电信网络中传输。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件,以在传输或存储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,压缩的数据在目的地侧由解码视频数据的视频解压缩设备接收。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不影响图像质量的情况下提高压缩比。
技术实现要素:
5.本技术实施例提供一种用于对视频的当前图像中的当前图像块进行帧间预测的装置和方法以及一种能够条件性地执行解码器侧运动矢量修正(decoder side motion vector refinement,dmvr)的编码器和解码器,因此能够提高译码效率。
6.本发明实施例由独立权利要求的特征定义,这些实施例的其它有利实现方式由从属权利要求的特征定义。
7.特定实施例在所附独立权利要求中概述,其它实施例在从属权利要求中概述。
8.根据第一方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧间预测(双向预测)的方法。所述方法包括:
9.判断所述当前图像是否在时间上(关于时间)位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间以及第一时间距离(例如td0)和第二时间距离(例如td1)是否相等,其中,所述第一时间距离(td0)是所述当前图像与所述第一参考图像(refpic0)之间的距离,所述第二时间距离(td1)是所述当前图像与所述第二参考图像(refpic1)之间的距离;当确定所述当前图像在时间上位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间以及所述第一时间距离(td0)和所述第二时间距离(td1)相等时,执行运动矢量修正(motion vector refinement,dmvr)流程以获得第一修正后参考块的位置和第二修正后参考块的位置,并根据所述第一修正后参考块的位置和所述第二修正
后参考块的位置确定所述当前图像块的预测块(预测后的像素值)。
10.需要说明的是,“当确定所述当前图像在时间上位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间以及所述第一时间距离(td0)和所述第二时间距离(td1)相等时”应理解为“只有当确定所述当前图像在时间上位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间以及所述第一时间距离(td0)和所述第二时间距离(td1)相等时”。在判断是否执行运动矢量修正(motion vector refinement,dmvr)流程时还可以考虑其它条件。
11.关于“第一修正后参考块的位置和第二修正后参考块的位置”,所述位置可以是绝对位置,即参考图像中的位置,也可以是相对位置,即基于初始参考块的位置的位置偏移。
12.需要说明的是,dmvr应用于双向预测的合并模式,其中,一个运动矢量(motion vector,mv)来自过去的一个参考图像,另一个mv来自未来的另一个参考图像。这两个参考图像可以是相对于包括所述当前图像块的所述当前图像在时间上处于不同方向的两个图像。本发明不适用于两个预测块都来自同一时间方向(都来自过去或都来自未来)的场景。
13.根据所述第一方面的任一上述实现方式,在所述方法的一种可能实现方式中,所述“判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间以及第一时间距离(例如td0)和第二时间距离(例如td1)是否相等,其中,所述第一时间距离(td0)是所述当前图像与所述第一参考图像(refpic0)之间的距离,所述第二时间距离(td1)是所述当前图像与所述第二参考图像(refpic1)之间的距离”包括:
14.|td0|==|td1|
15.且
16.td0
×
td1《0
17.对于指示双向的每个合并候选,将td0和td1计算为参考图像l0和l1与所述当前图像的时间距离。td0和td1可以通过图像顺序编号(picture order count,poc)来计算。例如:
18.td0=pocc
–
poc019.td1=pocc
–
poc120.这里,pocc、poc0和poc1分别表示所述当前图像的poc、所述第一参考图像的poc和所述第二参考图像的poc。
21.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述方法还包括:当确定所述第一时间距离(td0)和所述第二时间距离(td1)不相等或所述当前图像在时间上不位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间时,使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来执行运动补偿;在一个示例中,如果td0=pocc
–
poc0,td1=pocc
–
poc1,当|td0|≠|td1|或td0
×
td1≥0时,使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来执行运动补偿。或者,在另一个示例中,如果td0=pocc
–
poc0,td1=poc1–
pocc,当td0≠td1时,使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来执行运动补偿。
22.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述方法还包括:获取所述当前图像中的所述当前图像块的初始运动信息,其中,所述初始运动信息包括所述第一初始运动矢量、第一参考索引、所述第二初始运动矢量
和第二参考索引;所述第一参考索引指示所述第一参考图像,所述第二参考索引指示所述第二参考图像。
23.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述执行运动矢量修正(motion vector refinement,dmvr)流程的步骤包括:
24.根据所述第一初始运动矢量确定所述第一参考图像中的第一初始参考块;
25.根据所述第二初始运动矢量确定所述第二参考图像中的第二初始参考块;
26.根据所述第一初始参考块和所述第二初始参考块生成双向参考块;例如,所述双向参考块可以称为双向模板,所述模板与所述预测块的形状和大小相同;
27.分别比较所述双向参考块与所述第一参考图像中的多个第一参考块之间的成本,以确定第一修正后参考块的位置或第一修正后运动矢量的位置;
28.分别比较所述双向参考块与所述第二参考图像中的多个第二参考块之间的成本,以确定第二修正后参考块的位置或第二修正后运动矢量的位置。
29.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述执行运动矢量修正(motion vector refinement,dmvr)流程的步骤包括:
30.根据所述第一参考图像(例如refpic0)中的由所述第一初始运动矢量指向的第一初始参考块和所述第二参考图像(例如refpic1)中的由所述第二初始运动矢量指向的第二初始参考块,获取用于所述当前图像块的模板;
31.通过使用所述模板分别在第一搜索空间和第二搜索空间中进行模板匹配,确定所述第一修正后运动矢量和所述第二修正后运动矢量,其中,所述第一搜索空间包括由所述第一初始运动矢量给出的位置,所述第二搜索空间包括由所述第二初始运动矢量给出的位置。
32.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述执行运动矢量修正(motion vector refinement,dmvr)流程的步骤包括:
33.根据匹配成本准则(例如根据每对参考块的匹配成本),从多对参考块中确定由最佳运动矢量指向的一对最佳匹配块,其中,所述参考块对包括第一参考块和第二参考块,所述第一参考块位于所述第一参考图像的根据所述第一初始运动矢量确定的像素区域中,所述第二参考块位于所述第二参考图像的根据所述第二初始运动矢量确定的像素区域中;
34.所述最佳运动矢量包括所述第一修正后运动矢量和所述第二修正后运动矢量。
35.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述执行运动矢量修正(motion vector refinement,dmvr)流程以获得第一修正后参考块的位置和第二修正后参考块的位置的步骤包括:
36.根据所述第一初始运动矢量、所述第二初始运动矢量和所述当前图像块的位置,确定n个第一参考块的位置和n个第二参考块的位置,其中,所述n个第一参考块包括在所述第一参考图像中,所述n个第二参考块包括在所述第二参考图像中,n为大于1的整数;
37.根据所述匹配成本准则,从m对参考块的位置中确定一对参考块的位置作为所述第一修正后参考块的位置和所述第二修正后参考块的位置,其中,每对参考块的位置包括第一参考块的位置和第二参考块的位置;对于每对参考块,第一位置偏移(delta0x,delta0y)和第二位置偏移(delta1x,delta1y)镜像,所述第一位置偏移(delta0x,delta0y)表示所述第一参考块的位置相对于所述第一初始参考块的位置的偏移,所述第二位置偏移
(delta1x,delta1y)表示所述第二参考块的位置相对于所述第二初始参考块的位置的偏移;m为大于或等于1的整数,m小于或等于n。
38.在一个示例中,表述“第一位置偏移(delta0x,delta0y)和第二位置偏移(delta1x,delta1y)镜像”可以理解为:所述第一位置偏移的方向与所述第二位置偏移的方向相反,所述第一位置偏移的大小与所述第二位置偏移的大小相同。
39.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述根据所述第一修正后参考块的位置和所述第二修正后参考块的位置确定所述当前图像块的预测块的步骤包括:
40.根据所述第一修正后参考块和所述第二修正后参考块确定预测块,其中,根据所述第一修正后参考块的位置确定所述第一修正后参考块在所述第一参考图像中,根据所述第二修正后参考块的位置确定所述第二修正后参考块在所述第二参考图像中;或者
41.根据所述第一修正后参考块和所述第二修正后参考块确定预测块,其中,使用所述第一修正后运动矢量和所述第二修正后运动矢量来执行运动补偿以确定所述第一修正后参考块和所述第二修正后参考块。
42.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述第一参考图像在时间上位于所述当前图像之前,所述第二参考图像在时间上位于所述当前图像之后;或者,所述第一参考图像在时间上位于所述当前图像之后,所述第二参考图像在时间上位于所述当前图像之前;或者
43.所述第一参考图像为过去的参考图像,所述第二参考图像为未来的参考图像;或者,所述第一参考图像为未来的参考图像,所述第二参考图像为过去的参考图像。
44.也就是说,所述当前图像的前一图像为所述第一参考图像,所述当前图像的下一图像为所述第二参考图像;或者,所述当前图像的前一图像为所述第二参考图像,所述当前图像的下一图像为所述第一参考图像。
45.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述第一时间距离(td0)指示所述当前图像与所述第一参考图像之间的图像顺序编号(picture order count,poc)距离,所述第二时间距离(td1)指示所述当前图像与所述第二参考图像之间的poc距离;或者
46.所述第一时间距离(td0)由所述当前图像的图像顺序编号值(pocc)与所述第一参考图像的图像顺序编号值(poc0)的差值表示,所述第二时间距离(td1)由所述当前图像的图像顺序编号值(pocc)与所述第二参考图像的图像顺序编号值(poc1)的差值表示。
47.根据所述第一方面的任一上述实现方式或所述第一方面,在所述方法的一种可能实现方式中,所述判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间包括:
48.判断所述当前图像的图像顺序编号值(pocc)是否大于所述第一参考图像的图像顺序编号值(poc0)以及所述当前图像的图像顺序编号值(pocc)是否小于所述第二参考图像的图像顺序编号值(poc1),或者所述当前图像的图像顺序编号值(pocc)是否小于所述第一参考图像的图像顺序编号值(poc0)以及所述当前图像的图像顺序编号值(pocc)是否大于所述第二参考图像的图像顺序编号值(poc1)。
49.根据第二方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧间
预测(双向预测)的方法。所述方法包括:判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间以及第一时间距离(例如td0)和第二时间距离(例如td1)是否相等,其中,所述第一时间距离(td0)是所述当前图像与所述第一参考图像(refpic0)之间的距离,所述第二时间距离(td1)是所述当前图像与所述第二参考图像(refpic1)之间的距离;当确定所述第一时间距离(td0)和所述第二时间距离(td1)不相等或所述当前图像在时间上不位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间时,使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来执行运动补偿。
50.根据所述第二方面,在所述方法的一种可能实现方式中,所述当前图像块的初始运动信息包括所述第一初始运动矢量、第一参考索引、所述第二初始运动矢量和第二参考索引;所述第一参考索引指示所述第一参考图像,所述第二参考索引指示所述第二参考图像。
51.根据所述第二方面的任一上述实现方式或所述第二方面,在所述方法的一种可能实现方式中,所述第一时间距离指示所述当前图像与所述第一参考图像之间的图像顺序编号(picture order count,poc)距离,所述第二时间距离指示所述当前图像与所述第二参考图像之间的poc距离;或者
52.所述第一时间距离(td0)由所述当前图像的图像顺序编号值(pocc)与所述第一参考图像的图像顺序编号值(poc0)的差值表示,所述第二时间距离(td1)由所述当前图像的图像顺序编号值(pocc)与所述第二参考图像的图像顺序编号值(poc1)的差值表示。
53.根据第三方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧间预测(双向预测)的方法。所述方法包括:
54.判断第一时间距离(例如td0)是否等于第二时间距离(例如td1),其中,所述第一时间距离(td0)由所述当前图像的图像顺序编号值(pocc)与第一参考图像的图像顺序编号值(poc0)的差值表示,所述第二时间距离(td1)由第二参考图像的图像顺序编号值(poc1)与所述当前图像的图像顺序编号值(pocc)的差值表示;当确定所述第一时间距离(td0)等于所述第二时间距离(td1)时,执行运动矢量修正(motion vector refinement,dmvr)流程以确定所述当前图像块的预测块。
55.根据所述第三方面,在所述方法的一种实现方式中,所述方法还包括:当确定所述第一时间距离不等于所述第二时间距离时,使用第一初始运动矢量和第二初始运动矢量来执行运动补偿,以确定所述当前图像块的预测块。
56.根据第四方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧间预测(双向预测)的方法。所述方法包括:
57.判断第一时间距离(例如td0)是否等于第二时间距离(例如td1),其中,所述第一时间距离(td0)由所述当前图像的图像顺序编号值(pocc)与第一参考图像的图像顺序编号值(poc0)的差值表示,所述第二时间距离(td1)由第二参考图像的图像顺序编号值(poc1)与所述当前图像的图像顺序编号值(pocc)的差值表示;
58.当确定所述第一时间距离(td0)不等于所述第二时间距离(td1)时,不进行运动矢量修正(motion vector refinement,dmvr)流程(或不执行运动矢量修正(motion vector refinement,dmvr)流程)。
59.对于指示双向的每个合并候选,td0和td1可以通过图像顺序编号(picture order count,poc)来计算。例如:
60.td0=pocc
–
poc061.td1=poc1–
pocc
62.这里,pocc、poc0和poc1分别表示所述当前图像的poc、所述第一参考图像的poc和所述第二参考图像的poc。
63.根据所述第二、第三或第四方面的任一上述实现方式或所述第二、第三或第四方面,在所述方法的一种可能实现方式中,所述第一参考图像在时间上位于所述当前图像之前,所述第二参考图像在时间上位于所述当前图像之后;或者,所述第一参考图像在时间上位于所述当前图像之后,所述第二参考图像在时间上位于所述当前图像之前;或者
64.所述第一参考图像为过去的参考图像,所述第二参考图像为未来的参考图像;或者,所述第一参考图像为未来的参考图像,所述第二参考图像为过去的参考图像。
65.也就是说,所述当前图像的前一图像为所述第一参考图像,所述当前图像的下一图像为所述第二参考图像;或者,所述当前图像的前一图像为所述第二参考图像,所述当前图像的下一图像为所述第一参考图像。
66.根据第五方面,本发明涉及一种用于对视频图像进行编码的方法。所述方法包括:
67.根据上述方法,对视频的当前图像中的当前图像块执行帧间预测以获得所述当前图像块的预测块;
68.对所述当前图像块与所述预测块之间的差值(例如残差或残差块)进行编码,并生成包括所述经编码差值和索引的码流,其中,所述索引(例如合并候选索引)用于指示初始运动信息,所述初始运动信息包括第一初始运动矢量和第二初始运动矢量。
69.根据第六方面,本发明涉及一种用于从码流中解码视频图像的方法。所述方法包括:
70.从所述码流中解析索引和经编码差值,其中,所述索引(例如合并候选索引)用于指示初始运动信息,所述经编码差值是当前图像块与所述当前图像块的预测块之间的差值(例如残差或残差块),所述初始运动信息包括第一初始运动矢量和第二初始运动矢量;
71.根据上述方法,对视频的当前图像中的当前图像块执行帧间预测以获得所述当前图像块的所述预测块;
72.将所述当前图像块重建为所述解析出的差值和所述预测块之和。
73.根据第七方面,本发明涉及一种由编码设备实现的编码方法。所述编码方法包括:
74.确定语法元素的值,其中,所述语法元素指示是否执行上述方法;
75.生成包括所述语法元素的码流。
76.根据所述第七方面的任一上述实现方式或所述第七方面,在所述方法的一种可能实现方式中,所述语法元素是序列参数集(sequence parameter set,sps)级语法元素、图像参数集(picture parameter set,pps)级语法元素、条带头中的语法元素、译码树单元(coding tree unit,ctu)级语法元素或译码单元(coding unit,cu)级语法元素中的任一个。
77.根据所述第七方面的任一上述实现方式或所述第七方面,在所述方法的一种可能实现方式中,所述语法元素包括第一标志(例如sps_conditional_dmvr_flag)和/或第二标
志(例如pps_conditional_dmvr_flag);
78.如果所述第一标志(sps_conditional_dmvr_flag)等于0,则对序列中的图像块不执行上述方法;
79.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于0,则对序列中的图像的图像块不执行上述方法;或者
80.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于1,则对序列中的图像的图像块执行上述方法。
81.根据第八方面,本发明涉及一种由解码设备实现的解码方法。所述解码方法包括:
82.从码流中解析语法元素,其中,所述语法元素指示是否执行上述方法;
83.根据所述指示是否执行上述方法的语法元素,适应性地执行或不执行解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程。
84.根据所述第八方面的任一上述实现方式或所述第八方面,在所述方法的一种可能实现方式中,所述语法元素是所述码流中的序列参数集(sequence parameter set,sps)级语法元素、所述码流中的图像参数集(picture parameter set,pps)级语法元素、条带头中的语法元素、译码树单元(coding tree unit,ctu)级语法元素或译码单元(coding unit,cu)级语法元素中的任一个。
85.根据所述第八方面的任一上述实现方式或所述第八方面,在所述方法的一种可能实现方式中,所述语法元素包括第一标志(sps_conditional_dmvr_flag)和第二标志(pps_conditional_dmvr_flag);
86.如果所述第一标志(sps_conditional_dmvr_flag)等于0,则对序列中的图像块不执行上述方法;
87.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于0,则对序列中的图像的图像块不执行上述方法;或者
88.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于1,则对序列中的图像的图像块执行上述方法。
89.根据第九方面,本发明涉及一种译码设备。所述译码设备包括:
90.存储指令的存储器;
91.与所述存储器耦合的处理器,其中,所述处理器用于执行存储在所述存储器中的所述指令,以使得所述处理器执行上述方法。
92.根据第十方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧间预测的装置。所述装置包括:
93.判断单元,用于判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间以及第一时间距离(例如td0)和第二时间距离(例如td1)是否相等,其中,所述第一时间距离(td0)是所述当前图像与所述第一参考图像(refpic0)之间的距离,所述第二时间距离(td1)是所述当前图像与所述第二参考图像(refpic1)之间的距离;
94.帧间预测处理单元,用于:当确定所述当前图像在时间上位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间以及所述第一时间距离(td0)和所述第二时间距离(td1)相等时,执行运动矢量修正(motion vector refinement,dmvr)流程
以获得第一修正后参考块的位置和第二修正后参考块的位置,并根据所述第一修正后参考块的位置和所述第二修正后参考块的位置确定所述当前图像块的预测块。
95.根据所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,所述判断单元用于通过以下方程判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间以及第一时间距离(例如td0)和第二时间距离(例如td1)是否相等:
96.|td0|==|td1|
97.且
98.td0
×
td1《0
99.对于指示双向的每个合并候选,将td0和td1计算为参考图像l0和l1与所述当前图像的时间距离。td0和td1可以通过图像顺序编号(picture order count,poc)来计算。例如:
100.td0=pocc
–
poc0101.td1=pocc
–
poc1102.这里,pocc、poc0和poc1分别表示所述当前图像的poc、所述第一参考图像的poc和所述第二参考图像的poc。
103.根据所述第十方面,在所述装置的一种可能实现方式中,所述帧间预测处理单元还用于:当确定所述第一时间距离(td0)和第二时间距离(td1)不相等或所述当前图像在时间上不位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间时,使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来执行运动补偿。在一个示例中,所述帧间预测处理单元还用于:如果td0=pocc
–
poc0,td1=pocc
–
poc1,当|td0|≠|td1|或td0
×
td1≥0时,使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来执行运动补偿。或者,在另一个示例中,所述帧间预测处理单元还用于:如果td0=pocc
–
poc0,td1=poc1–
pocc,当td0≠td1时,使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来执行运动补偿。
104.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,所述帧间预测处理单元还用于:
105.获取所述当前图像中的所述当前图像块的初始运动信息,其中,所述初始运动信息包括所述第一初始运动矢量、第一参考索引、所述第二初始运动矢量和第二参考索引;所述第一参考索引指示所述第一参考图像,所述第二参考索引指示所述第二参考图像。
106.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,对于所述执行运动矢量修正(motion vector refinement,dmvr)流程以获得第一修正后参考块的位置和第二修正后参考块的位置,所述帧间预测处理单元具体用于:
107.根据所述第一初始运动矢量确定所述第一参考图像中的第一初始参考块;
108.根据所述第二初始运动矢量确定所述第二参考图像中的第二初始参考块;
109.根据所述第一初始参考块和所述第二初始参考块生成双向参考块;
110.分别比较所述双向参考块与所述第一参考图像中的多个第一参考块之间的成本,以确定第一修正后参考块的位置或第一修正后运动矢量的位置;
111.分别比较所述双向参考块与所述第二参考图像中的多个第二参考块之间的成本,
以确定第二修正后参考块的位置或第二修正后运动矢量的位置。
112.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,为了执行运动矢量修正(motion vector refinement,dmvr)流程以获得第一修正后参考块的位置和第二修正后参考块的位置,所述帧间预测处理单元具体用于:
113.根据所述第一参考图像(例如refpic0)中的由所述第一初始运动矢量指向的第一初始参考块和所述第二参考图像(例如refpic1)中的由所述第二初始运动矢量指向的第二初始参考块,获取用于所述当前图像块的模板;
114.通过使用所述模板分别在第一搜索空间和第二搜索空间中进行模板匹配,确定所述第一修正后运动矢量和所述第二修正后运动矢量,其中,所述第一搜索空间位于由所述第一初始运动矢量给出的位置上,所述第二搜索空间位于由所述第二初始运动矢量给出的位置上。
115.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,对于所述执行运动矢量修正(motion vector refinement,dmvr)流程以获得第一修正后参考块的位置和第二修正后参考块的位置,所述帧间预测处理单元具体用于:
116.根据匹配成本准则(例如根据每对参考块的匹配成本),从多对参考块中确定由最佳运动矢量指向的一对最佳匹配块,其中,所述参考块对包括第一参考块和第二参考块,所述第一参考块位于所述第一参考图像的根据所述第一初始运动矢量确定的像素区域中,所述第二参考块位于所述第二参考图像的根据所述第二初始运动矢量确定的像素区域中;
117.所述最佳运动矢量包括所述第一修正后运动矢量和所述第二修正后运动矢量。
118.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,对于所述执行运动矢量修正(motion vector refinement,dmvr)流程以获得第一修正后参考块的位置和第二修正后参考块的位置,所述帧间预测处理单元具体用于:
119.根据所述第一初始运动矢量、所述第二初始运动矢量和所述当前图像块的位置,确定n个第一参考块的位置和n个第二参考块的位置,其中,所述n个第一参考块包括在所述第一参考图像中,所述n个第二参考块包括在所述第二参考图像中,n为大于1的整数;
120.根据所述匹配成本准则,从m对参考块的位置中确定一对参考块的位置作为所述第一修正后参考块的位置和所述第二修正后参考块的位置,其中,每对参考块的位置包括第一参考块的位置和第二参考块的位置;对于每对参考块,第一位置偏移(delta0x,delta0y)和第二位置偏移(delta1x,delta1y)镜像,所述第一位置偏移(delta0x,delta0y)表示所述第一参考块的位置相对于所述第一初始参考块的位置的偏移,所述第二位置偏移(delta1x,delta1y)表示所述第二参考块的位置相对于所述第二初始参考块的位置的偏移;m为大于或等于1的整数,m小于或等于n。
121.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,对于所述根据所述第一修正后参考块的位置和所述第二修正后参考块的位置确定所述当前图像块的预测块,所述帧间预测处理单元具体用于:
122.根据所述第一修正后参考块和所述第二修正后参考块确定预测块,其中,根据所述第一修正后参考块的位置确定所述第一修正后参考块在所述第一参考图像中,根据所述第二修正后参考块的位置确定所述第二修正后参考块在所述第二参考图像中;或者
123.根据所述第一修正后参考块和第二修正后参考块确定预测块,其中,使用所述第
一修正后运动矢量和所述第二修正后运动矢量执行运动补偿以确定所述第一修正后参考块和所述第二修正后参考块。
124.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,所述第一参考图像在时间上位于所述当前图像之前,所述第二参考图像在时间上位于所述当前图像之后;或者,所述第一参考图像在时间上位于所述当前图像之后,所述第二参考图像在时间上位于所述当前图像之前;或者
125.所述第一参考图像为过去的参考图像,所述第二参考图像为未来的参考图像;或者,所述第一参考图像为未来的参考图像,所述第二参考图像为过去的参考图像。
126.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,所述第一时间距离(td0)指示所述当前图像与所述第一参考图像之间的图像顺序编号(picture order count,poc)距离,所述第二时间距离(td1)指示所述当前图像与所述第二参考图像之间的poc距离;或者
127.所述第一时间距离(td0)由所述当前图像的图像顺序编号值(pocc)与所述第一参考图像的图像顺序编号值(poc0)的差值表示,所述第二时间距离(td1)由所述当前图像的图像顺序编号值(pocc)与所述第二参考图像的图像顺序编号值(poc1)的差值表示。
128.根据所述第十方面或所述第十方面的任一上述实现方式,在所述装置的一种可能实现方式中,对于所述判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间,所述帧间预测处理单元具体用于:
129.判断所述当前图像的图像顺序编号值(pocc)是否大于所述第一参考图像的图像顺序编号值(poc0)以及所述当前图像的图像顺序编号值(pocc)是否小于所述第二参考图像的图像顺序编号值(poc1),或者所述当前图像的图像顺序编号值(pocc)是否小于所述第一参考图像的图像顺序编号值(poc0)以及所述当前图像的图像顺序编号值(pocc)是否大于所述第二参考图像的图像顺序编号值(poc1)。
130.根据第十一方面,本发明涉及一种用于对视频图像进行编码的编码装置。所述编码装置包括:
131.判断单元,用于判断所述当前图像是否在时间上位于第一参考图像和第二参考图像之间以及第一时间距离和第二时间距离是否相等,其中,所述第一时间距离是所述当前图像与所述第一参考图像之间的距离,所述第二时间距离是所述当前图像与所述第二参考图像之间的距离;
132.帧间预测处理单元,用于:当确定所述第一时间距离和所述第二时间距离不相等或所述当前图像在时间上不位于所述第一参考图像和所述第二参考图像之间时,使用第一初始运动矢量和第二初始运动矢量来执行运动补偿,以确定所述当前图像块的预测块。
133.根据所述第十一方面,在所述编码装置的一种可能实现方式中,所述当前图像块的初始运动信息包括所述第一初始运动矢量、第一参考索引、所述第二初始运动矢量和第二参考索引;所述第一参考索引指示所述第一参考图像,所述第二参考索引指示所述第二参考图像。
134.根据所述第十一方面或所述第十一方面的任一上述实现方式,在所述编码装置的一种可能实现方式中,所述第一时间距离指示所述当前图像与所述第一参考图像之间的图像顺序编号(picture order count,poc)距离,所述第二时间距离指示所述当前图像与所
述第二参考图像之间的poc距离;或者,所述第一时间距离(td0)由所述当前图像的图像顺序编号值(pocc)与所述第一参考图像的图像顺序编号值(poc0)的差值表示,所述第二(td1)由所述当前图像的图像顺序编号值(pocc)与所述第二参考图像的图像顺序编号值(poc1)的差值表示。
135.根据第十二方面,本发明涉及一种用于对视频图像进行编码的编码装置。所述编码装置包括:
136.上述用于获取当前图像块的预测块的装置,
137.熵译码单元,用于对差值进行编码,并生成包括所述经编码差值和索引的码流,其中,所述差值(例如残差)是所述当前图像块与所述当前图像块的所述预测块之间的残差,所述索引(例如合并候选索引)用于指示初始运动信息,所述初始运动信息包括第一初始运动矢量和第二初始运动矢量。
138.根据第十三方面,本发明涉及一种用于从码流中解码视频图像的解码装置。所述解码装置包括:
139.熵解码单元,用于从所述码流中解析索引和经编码差值,其中,所述索引用于指示初始运动信息,所述经编码差值(例如残差)是当前图像块与所述当前图像块的预测块之间的残差,所述初始运动信息包括第一初始运动矢量和第二初始运动矢量;
140.上述用于获取所述当前图像块的所述预测块的装置;
141.图像重建单元,用于将所述当前图像块重建为所述解析出的差值(例如残差)与所述预测块之和。
142.根据第十四方面,本发明涉及一种编码设备。所述编码设备包括一个或多个处理电路,用于:
143.确定语法元素的值,其中,所述语法元素指示是否执行上述方法;生成包括所述语法元素的码流。
144.根据所述第十四方面,在所述编码设备的一种可能实现方式中,所述语法元素是序列参数集(sequence parameter set,sps)级语法元素、图像参数集(picture parameter set,pps)级语法元素、条带头中的语法元素、译码树单元(coding tree unit,ctu)级语法元素或译码单元(coding unit,cu)级语法元素中的任一个。
145.根据所述第十四方面或所述第十四方面的任一上述实现方式,在所述编码设备的一种可能实现方式中,所述语法元素包括第一标志(sps_conditional_dmvr_flag)和第二标志(pps_conditional_dmvr_flag);
146.如果所述第一标志(sps_conditional_dmvr_flag)等于0,则对序列中的图像块不执行上述方法;
147.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于0,则对序列中的图像的图像块不执行上述方法;或者
148.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于1,则对序列中的图像的图像块执行上述方法。
149.根据第十五方面,本发明涉及一种解码设备。所述解码设备包括一个或多个处理电路,用于:
150.从码流中解析语法元素,其中,所述语法元素用于指示是否执行上述方法;
151.根据所述语法元素,适应性地执行或不执行解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程。
152.根据所述第十五方面,在所述解码设备的一种可能实现方式中,所述语法元素是所述码流中的序列参数集(sequence parameter set,sps)级语法元素、所述码流中的图像参数集(picture parameter set,pps)级语法元素、条带头中的语法元素、译码树单元(coding tree unit,ctu)级语法元素或译码单元(coding unit,cu)级语法元素中的任一个。
153.根据所述第十五方面或所述第十五方面的任一上述实现方式,在所述解码设备的一种可能实现方式中,所述语法元素包括第一标志(sps_conditional_dmvr_flag)和第二标志(pps_conditional_dmvr_flag);
154.如果所述第一标志(sps_conditional_dmvr_flag)等于0,则对序列中的图像块不执行上述方法;
155.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于0,则对序列中的图像的图像块不执行上述方法;或者
156.如果所述第一标志(sps_conditional_dmvr_flag)等于1,并且所述第二标志(pps_conditional_dmvr_flag)等于1,则对序列中的图像的图像块执行上述方法。
157.根据第十六方面,本发明涉及一种存储计算机可读指令的计算机可读介质。当所述计算机可读指令在处理器上执行时,执行上述方法提供的步骤。
158.根据第十七方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧间预测的方法。所述方法包括:
159.判断至少一个条件是否满足,其中,所述至少一个条件包括:第一时间距离(例如td0)是否等于第二时间距离(例如td1);所述第一时间距离由所述当前图像的图像顺序编号值与第一参考图像的图像顺序编号值的差值表示,所述第二时间距离由第二参考图像的图像顺序编号值与所述当前图像的图像顺序编号值的差值表示;
160.当所述至少一个条件满足时,执行解码器侧运动矢量修正(decoder side motion vector refinement,dmvr)流程以确定所述当前图像块的预测块。
161.根据第十八方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧间预测的方法。所述方法包括:
162.当一个或多个条件满足时,执行运动矢量修正(motion vector refinement,dmvr)流程以获得所述当前图像块的子块的第一修正后运动矢量和第二修正后运动矢量,其中,所述第一修正后运动矢量对应于第一参考图像,所述第二修正后运动矢量对应于第二参考图像;
163.确定所述当前图像块的预测块(例如预测后的像素值),其中,所述当前图像块的所述预测块包括所述子块的预测块,至少部分根据所述第一修正后运动矢量和所述第二修正后运动矢量确定所述子块的所述预测块,
164.其中,所述一个或多个条件至少包括:
165.第一时间距离(例如td0)等于第二时间距离(例如td1);所述第一时间距离(例如td0)由所述当前图像的图像顺序编号值(pocc)与所述第一参考图像的图像顺序编号值(poc0)的差值表示,所述第二时间距离(td1)由所述当前图像的图像顺序编号值(pocc)与
所述第二参考图像的图像顺序编号值(poc1)的差值表示。
166.根据所述第十五、第十六、第十七和第十八方面的任一上述实现方式或所述第十五、第十六、第十七和第十八方面,在所述方法的一种可能实现方式中,所述第一参考图像在时间上位于所述当前图像之前,所述第二参考图像在时间上位于所述当前图像之后;或者,所述第一参考图像在时间上位于所述当前图像之后,所述第二参考图像在时间上位于所述当前图像之前;或者
167.所述第一参考图像为过去的参考图像,所述第二参考图像为未来的参考图像;或者,所述第一参考图像为未来的参考图像,所述第二参考图像为过去的参考图像。
168.本发明一些方面提供的方法可以由本发明一些方面提供的装置执行。通过本发明一些方面提供的装置的功能及其不同实现方式可以直接实现本发明一些方面提供的方法的其它特征和实现方式。
169.需要说明的是,译码设备可以是编码设备或解码设备。
170.根据另一方面,本发明涉及一种对视频流进行解码的装置。所述装置包括处理器和存储器。所述存储器存储使得所述处理器执行上述方法的指令。
171.根据另一方面,本发明涉及一种用于对视频流进行编码的装置。所述装置包括处理器和存储器。所述存储器存储使得所述处理器执行上述方法的指令。
172.根据另一方面,提供了一种计算机可读存储介质。所述计算机可读存储介质中存储有指令;当所述指令被执行时,一个或多个处理器用于对视频数据进行译码。所述指令使得所述一个或多个处理器执行上述方法。
173.根据另一方面,提供了一种计算机程序产品。所述计算机程序产品包括程序代码;当所述计算机程序在计算机上运行时,用于执行上述方法。
174.以下附图和描述详细阐述了一个或多个实施例。其它特征、目的和优点在描述、附图和权利要求中是显而易见的。
175.为清楚起见,任一上述实施例可以与上述其它任一或多个实施例结合以创建在本发明范围内的新实施例。
176.通过以下结合附图和权利要求书进行的详细描述,将更清楚地理解这些和其它特征。
附图说明
177.为了更全面地理解本发明,现在参考下文结合附图和详细说明进行的简要描述,其中,相似的参考数字代表相似的部件。
178.图1为示例性译码系统的框图,该译码系统可以采用条件性解码器侧运动矢量修正技术。
179.图2为示例性视频编码器的框图,该视频编码器可以实现条件性解码器侧运动矢量修正技术。
180.图3为示例性视频解码器的框图,该视频解码器可以实现条件性解码器侧运动矢量修正技术。
181.图4为译码设备的示意图。
182.图5为示例性编码装置或解码装置的框图。
183.图6a为用于视频译码中的条件性解码器侧运动矢量修正的时间距离的图示。
184.图6b为解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程的一个示例的图示。
185.图6c为参考图6b的示例性解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程的流程图。
186.图6d为另一示例性解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程的流程图。
187.图7为示例性编码方法的流程图。
188.图8为示例性解码方法的流程图。
189.图9为用于对视频的当前图像中的当前图像块进行帧间预测的示例性方法的流程图。
190.图10为用于对视频的当前图像中的当前图像块进行帧间预测的装置的一种示例性结构的框图。
191.图11为提供内容分发业务的内容供应系统的一种示例性结构的框图。
192.图12为示例性终端设备的结构的框图。
具体实施方式
193.首先应理解,尽管下文提供一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可以在所附权利要求书的范围以及其等效物的完整范围内修改。
194.缩略语和词汇定义
195.dmvr 解码器侧运动矢量修正
196.sad 绝对差和
197.mv 运动矢量
198.mvp 运动补偿预测
199.hevc高效视频译码
200.图1为示例性译码系统10的框图。译码系统10可以采用双向预测技术。如图1所示,译码系统10包括源设备12。源设备12提供目的地设备14在稍后的时间解码的经编码视频数据。具体而言,源设备12可以经由计算机可读介质16将视频数据提供到目的地设备14。源设备12和目的地设备14可以包括以下多种设备中的任一个:台式电脑、笔记本(即膝上型)电脑、平板电脑、机顶盒、电话手机(例如所谓的“智能”手机)、所谓的“智能”板(pad)、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备12和目的地设备14可以用于无线通信。
201.目的地设备14可以经由计算机可读介质16接收待解码的经编码视频数据。计算机可读介质16可以包括任何类型的介质或设备,这种介质或设备能够将经编码视频数据从源设备12移到目的地设备14。在一个示例中,计算机可读介质16可以包括通信介质以使得源设备12能够实时地将经编码视频数据直接传输到目的地设备14。经编码视频数据可以根据通信标准(例如无线通信协议)进行调制,并传输到目的地设备14。通信介质可以包括任何
无线或有线通信介质,例如射频(radio frequency,rf)频谱或一条或多条物理传输线。通信介质可以形成分组网络(例如局域网、广域网或诸如互联网之类的全球网络)的一部分。通信介质可以包括路由器、交换机、基站或任何其它设备,这些设备可以有助于从源设备12到目的地设备14进行通信。
202.在一些示例中,经编码数据可以从输出接口22输出到存储设备。类似地,可以通过输入接口从存储设备存取经编码数据。存储设备可以包括以下各种分布式或本地存取的数据存储介质中的任一个:硬盘驱动器、蓝光光盘、数字视频光盘(digital video disk,dvd)、只读光盘存储器(compact disc read-only memory,cd-rom)、闪存、易失性或非易失性存储器,或任何其它合适的用于存储经编码视频数据的数字存储介质。在又一示例中,存储设备可以对应于文件服务器或另一中间存储设备,该中间存储设备可以存储由源设备12生成的经编码视频。目的地设备14可以经由流式传输或下载从存储设备存取所存储的视频数据。文件服务器可以是任何类型的服务器,这种服务器能够存储经编码视频数据并将经编码视频数据传输到目的地设备14。示例性文件服务器包括网络服务器(例如用于网站)、文件传输协议(file transfer protocol,ftp)服务器、网络附属存储(network attached storage,nas)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接(包括网络连接)来存取经编码视频数据。标准数据连接可以包括无线信道(例如wi-fi连接)、有线连接(例如数字用户线(digital subscriber line,dsl)、电缆调制解调器等)或以上两者的组合,该组合适合于存取存储在文件服务器上的经编码视频数据。经编码视频数据从存储设备的传输可以是流式传输、下载传输或其组合。
203.本发明的技术不一定受限于无线应用或设置。这些技术可以应用于视频译码,以支持以下各种多媒体应用中的任一种:空中电视广播、有线电视传输、卫星电视传输、互联网流媒体视频传输(例如http动态自适应流媒体(dynamic adaptive streaming over http,dash))、被编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码或其它应用。在一些示例中,译码系统10可以用于支持单向或双向视频传输,从而支持视频流式传输、视频播放、视频广播和/或视频电话等应用。
204.在图1的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本发明,源设备12中的视频编码器20和/或目的地设备14中的视频解码器30可以用于采用双向预测技术。在其它示例中,源设备和目的地设备可以包括其它组件或装置。例如,源设备12可以从外部视频源(例如外部相机)接收视频数据。同样地,目的地设备14可以与外部显示设备连接,而不包括集成显示设备。
205.图1所示的译码系统10仅仅是一个示例。双向预测技术可以由任何数字视频编码和/或解码设备执行。尽管通常由视频译码设备来执行本发明的技术,但还可以由视频编码器/解码器(通常称为“译码器(codec)”)来执行这些技术。此外,还可以由视频预处理器来执行本发明的技术。视频编码器和/或解码器可以是图形处理单元(graphics processing unit,gpu)或类似的设备。
206.源设备12和目的地设备14仅仅是此类译码设备的示例,在此类译码设备中,源设备12生成传输到目的地设备14的经译码视频数据。在一些示例中,源设备12和目的地设备14可以以基本上对称的方式进行操作,使得源设备12和目的地设备14都包括视频编码和解
码组件。因此,译码系统10可以支持视频设备12和14之间的单向或双向视频传输,以用于视频流式传输、视频播放、视频广播或视频电话等。
207.源设备12中的视频源18可以包括视频捕获设备(例如摄影机)、视频档案库(包括之前捕获的视频),和/或视频输入容接口(用于从视频内容提供者接收视频)。或者,视频源18可以生成基于计算机图形的数据作为源视频,或作为实况视频、存档视频和计算机生成视频的组合。
208.在一些情况下,当视频源18是摄影机时,源设备12和目的地设备14可以形成所谓的摄像头手机或可视电话。然而,如上所述,本发明中描述的技术通常可以适用于视频译码,也可以应用于无线应用和/或有线应用。在每种情况下,视频编码器20可以对所捕获、预捕获或计算机生成的视频进行编码。然后,可以通过输出接口22将经编码视频信息输出到计算机可读介质16上。
209.计算机可读介质16可以包括无线广播或有线网络传输等瞬态介质,还可以包括存储介质(即非瞬时性存储介质),例如硬盘、闪存盘、光盘、数字视频光盘、蓝光光盘或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收经编码视频数据,并且通过网络传输等将经编码视频数据提供到目的地设备14。类似地,介质生产设施(例如光盘冲压设施)中的计算设备可以从源设备12接收经编码视频数据,并产生包括经编码视频数据的光盘。因此,在各种示例中,计算机可读介质16可以理解为包括各种形式的一个或多个计算机可读介质。
210.目的地设备14中的输入接口28从计算机可读介质16接收信息。计算机可读介质16接收到的信息可以包括由视频编码器20定义的语法信息,视频解码器30也会使用该语法信息。该语法信息包括描述块和其它经译码单元(例如图像组(group of picture,gop))的特征和/或处理方式的语法元素。显示设备32向用户显示经解码视频数据,并且可以包括以下各种显示设备中的任一个:阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)、等离子体显示器、有机发光二极体(organic light emitting diode,oled)显示器或其它类型的显示设备。
211.视频编码器20和视频解码器30可以根据视频译码标准(例如目前正在开发的高效视频译码(efficiency video coding,hevc)标准)进行操作,并且可以遵照hevc测试模型(hevc test model,hm)。或者,视频编码器20和视频解码器30可以根据其它专有或行业标准进行操作,这些标准包括国际电信联盟电信标准化部门(international telecommunications union telecommunication standardization sector,itu-t)h.264标准(或称为运动图像专家组(motion picture expert group,mpeg)-4第10部分、高级视频编译码(advanced video coding,avc))、h.265/hevc及此类标准的扩展版本等。然而,本发明的技术不限于任何特定的译码标准。视频译码标准的其它示例包括mpeg-2和itu-t h.263。尽管图1未示出,但是在一些方面中,视频编码器20和视频解码器30可以分别与音频编码器和音频解码器集成,并且可以包括合适的复用器-解复用器(multiplexer-demultiplexer,mux-demux)单元或其它硬件和软件,以对通用数据流或单独数据流中的音频和视频都进行编码。如果适用,mux-demux单元可以遵照itu h.223复用器协议,或遵照用户数据报协议(user datagram protocol,udp)等其它协议。
212.视频编码器20和视频解码器30可以分别实现为以下各种合适的编码器电路中的
任一个:一个或多个微处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)、离散逻辑、软件、硬件、固件或它们的任何组合。当上述技术部分在软件中实现时,一种设备可以将软件指令存储在合适的非瞬时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行这些指令,以执行本发明的技术。视频编码器20和视频解码器30都可以包括在一个或多个编码器或解码器中,编码器或解码器可以集成为相应设备中的组合编码器/解码器(codec)的一部分。包括视频编码器20和/或视频解码器30的一种设备可以包括集成电路、微处理器和/或蜂窝电话等无线通信设备。
213.图2为示例性视频编码器20的框图。视频编码器20可以实现双向预测技术。视频编码器20可以对视频条带内的视频块执行帧内译码和帧间译码。帧内译码通过空间预测来减少或移除某个视频帧或图像内的视频中的空间冗余。帧间译码通过时间预测来减少或移除视频序列的相邻帧或图像内的视频中的时间冗余。帧内模式(i模式)可以是若干基于空间的译码模式中的任一种。帧间模式(例如单向预测(p模式)或双向预测(b模式))可以是若干基于时间的译码模式中的任一种。
214.如图2所示,视频编码器20接收待编码视频帧内的当前视频块。在图2的示例中,视频编码器20包括模式选择单元40、参考帧存储器64、求和器50、变换处理单元52、量化单元54和熵译码单元56。模式选择单元40又包括运动补偿单元44、运动估计单元42、帧内预测单元46和分割单元48。为了进行视频块重建,视频编码器20还包括反量化单元58、逆变换单元60和求和器62。还可以包括去块滤波器(图2中未示出)以对块边界进行滤波,从而从重建后的视频移除块状伪影。如果需要,去块滤波器通常对求和器62的输出进行滤波。除去块滤波器之外,还可以使用其它滤波器(循环内或循环后)。出于简明而未示出此类滤波器,但如果需要,此类滤波器(作为环内滤波器)可以对求和器50的输出进行滤波。
215.在编码过程中,视频编码器20接收待译码视频帧或条带。可以将该帧或条带划分成多个视频块。运动估计组件42和运动补偿组件44执行所接收的视频块相对于一个或多个参考帧中的一个或多个块的帧间预测译码,以提供时间预测。帧内预测单元46可替代地执行所接收的视频块相对于一个或多个相邻块的帧内预测编码,以提供空间预测,其中,一个或多个相邻块与待译码的视频块位于同一帧或条带中。视频编码器20可以执行多个译码回合,(例如)从而为视频数据的每个块选择适当译码模式。
216.此外,分割单元48可以根据先前译码回合中的先前分割方案的评估将视频数据的块分割成子块。例如,分割单元48最初可以将帧或条带分割成最大译码单元(largest coding unit,lcu),并且根据率失真分析(例如率失真优化)将这些lcu都分割成子译码单元(sub-coding unit,sub-cu)。模式选择单元40还可以产生四叉树数据结构,指示将一个lcu分割成子cu。四叉树中的叶节点cu可以包括一个或多个预测单元(prediction unit,pu)和一个或多个变换单元(transform unit,tu)。
217.本发明使用术语“块”来指代hevc上下文中的cu、pu或tu中的任一种或其它标准上下文下的类似数据结构(例如h.264/avc中的宏块及其子块)。一个cu包括译码节点和与该译码节点相关联的pu和tu。cu的大小对应于该译码节点的大小且形状为正方形。cu的大小可以在8
×
8个像素直到最大值为64
×
64个像素或更大的树块大小的范围内。每个cu可以包括一个或多个pu和一个或多个tu。与cu相关联的语法数据可以描述(例如)将cu分割成一个
或多个pu。分割模式可以在cu是否跳过或经直接模式编码、经帧内预测模式编码或经帧间预测模式编码之间有所不同。pu的形状经分割可以为非正方形。与cu相关联的语法数据还可以描述(例如)根据四叉树将cu分割成一个或多个tu。在一个实施例中,cu、pu或tu的形状可以是正方形或非正方形(例如矩形)。
218.模式选择单元40可以根据误差结果等来选择译码模式(帧内或帧间)中的一种,将所得的经帧内或帧间译码的块提供到求和器50以生成残差块数据,并将残差块数据提供到求和器62以重建用作参考帧的经编码块。模式选择单元40还将语法元素(例如运动矢量、帧内模式指示符、分割信息和其它此类语法信息)提供到熵译码单元56。
219.运动估计单元42和运动补偿单元44可以高度集成,但是出于概念目的而单独说明。由运动估计单元42执行的运动估计是生成运动矢量的过程,这些运动矢量用于估计视频块的运动。运动矢量(例如)可以指示当前视频帧或图像内的视频块的pu相对于参考帧(或其它经译码单元)内的预测块(相对于当前帧(或其它经译码单元)内的正被译码的当前块)的位移。预测块是发现在像素差方面与待译码块高度匹配的块,该像素差可以由绝对差和(sum of absolute difference,sad)、平方差和(sum of square difference,ssd)或其它差度量来确定。在一些示例中,视频编码器20可以计算存储在参考帧存储器64中的参考图像的子整数像素位置的值。例如,视频编码器20可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以执行相对于完整像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。
220.运动估计单元42通过将帧间译码条带中的视频块的pu的位置与参考图像中的预测块的位置进行比较来计算该pu的运动矢量。可以从第一参考图像列表(列表0)或第二参考图像列表(列表1)中选择该参考图像,第一参考图像列表和第二参考图像列表分别标识存储在参考帧存储器64中的一个或多个参考图像。运动估计单元42将计算出的运动矢量发送到熵编码单元56和运动补偿单元44。
221.由运动补偿单元44执行的运动补偿可以涉及根据由运动估计单元42确定的运动矢量来获取或生成预测块。再次,在一些示例中,运动估计单元42和运动补偿单元44可以在功能上集成。在接收到当前视频块的pu的运动矢量之后,运动补偿单元44可以即刻定位运动矢量在其中一个参考图像列表中所指向的预测块。求和器50通过从正被译码的当前视频块的像素值中减去预测块的像素值来形成残差视频块,从而形成像素差值,如下文所述。一般而言,运动估计单元42执行相对于亮度分量的运动估计,运动补偿单元44将根据亮度分量计算出的运动矢量用于色度分量和亮度分量两者。模式选择单元40还可以生成与视频块和视频条带相关的语法元素,以供视频解码器30在解码视频条带中的视频块时使用。
222.如上文所述,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代,帧内预测单元46可以对当前块进行帧内预测。具体而言,帧内预测单元46可以确定待用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测单元46可以(例如)在单独的编码回合中使用各种帧内预测模式对当前块进行编码,而且帧内预测单元46(或在一些示例中,模式选择单元40)可以从所测试的模式中选择待使用的合适帧内预测模式。
223.例如,帧内预测单元46可以使用对于各种所测试的帧内预测模式的率失真分析来计算率失真值,并在所测试的模式中选择率失真特性最佳的帧内预测模式。率失真分析一般确定经编码块与原始、未经编码块(曾经被编码以产生经编码块)之间的失真(或误差)
量,以及确定用于产生经编码块的码率(即比特数)。帧内预测单元46可以根据各种经编码块的失真和速率计算比率,以判断哪种帧内预测模式展现该块的最佳率失真值。
224.另外,帧内预测单元46可以用于使用深度建模模式(depth modeling mode,dmm)对深度图像中的深度块进行译码。模式选择单元40可以判断可用dmm模式是否比帧内预测模式和其它dmm模式(例如使用率失真优化(rate-distortion optimization,rdo))产生更好的译码结果。对应于深度图像的纹理图像的数据可以存储在参考帧存储器64中。运动估计单元42和运动补偿单元44也可以用于对深度图像中的深度块进行帧间预测。
225.在选择块的帧内预测模式(例如常规的帧内预测模式或其中一个dmm模式)之后,帧内预测单元46可以将信息提供到熵译码单元56,该信息指示为块选择的帧内预测模式。熵译码单元56可以对指示所选帧内预测模式的信息进行编码。视频编码器20可以在所传输的码流中包括以下内容:配置数据,可以包括多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表);各种块的编码上下文的定义;待用于每个编码上下文的最有可能帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示。
226.视频编码器20通过从正被译码的原始视频块中减去来自模式选择单元40的预测数据而形成残差视频块。求和器50表示执行这种减法操作的一个或多个组件。
227.变换处理单元52将变换(例如离散余弦变换(discrete cosine transform,dct)或概念上类似的变换)应用于残差块,从而产生包括残差变换系数值的视频块。变换处理单元52可以执行概念上类似于dct的其它变换。还可以使用小波变换、整数变换、子频带变换或其它类型的变换。
228.变换处理单元52将变换应用于残差块,从而产生残差变换系数块。上述变换可以将残差信息从像素值域转换到变换域(例如频域)。变换处理单元52可以将所得到的变换系数发送到量化单元54。量化单元54量化这些变换系数以进一步减小码率。该量化过程可以减小与部分或全部系数相关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可以接着对包括量化变换系数的矩阵执行扫描。或者,熵编码单元56可以执行扫描。
229.在量化之后,熵译码单元56对量化变换系数进行熵译码。例如,熵译码单元56可以执行上下文自适应可变长度译码(context adaptive variable length coding,cavlc)、基于上下文的自适应二进制算术译码(context adaptive binary arithmetic coding,cabac)、基于语法的上下文自适应二进制算术译码(syntax-based context-adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)译码或其它熵译码技术。在基于上下文的熵译码的情况下,上下文可以基于相邻块。在由熵译码单元56执行熵译码之后,可以将经编码码流传输到另一设备(例如视频解码器30)或进行存档以供稍后传输或检索。
230.反量化单元58和逆变换单元60分别应用反量化和逆变换以在像素域中重建残差块,(例如)以供稍后用作参考块。运动补偿单元44可以通过将残差块加到参考帧存储器64的其中一个帧的预测块来计算参考块。运动补偿单元44还可以将一个或多个内插滤波器应用于重建后的残差块,以计算在运动估计中使用的子整数像素值。求和器62将重建后的残差块加到由运动补偿单元44产生的运动补偿预测块,从而产生重建后的视频块以存储在参
考帧存储器64中。重建后的视频块可以由运动估计单元42和运动补偿单元44用作参考块以对后续视频帧中的块进行帧间译码。
231.视频编码器20的其它结构变型可以用于对视频流进行编码。例如,基于非变换的编码器20可以在没有用于某些块或帧的变换处理单元52的情况下直接量化残差信号。在另一种实现方式中,编码器20中的量化单元54和反量化单元58可以组合成一个单元。
232.图3为示例性视频解码器30的框图。视频解码器30可以实现双向预测技术。在图3的示例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、逆变换单元78、参考帧存储器82和求和器80。在一些示例中,视频解码器30可以执行解码回合,该解码回合一般与参照视频编码器20(图2)描述的编码回合互逆。运动补偿单元72可以根据从熵解码单元70接收到的运动矢量来生成预测数据,而帧内预测单元74可以根据从熵解码单元70接收到的帧内预测模式指示符来生成预测数据。
233.在解码过程中,视频解码器30从视频编码器20接收经编码视频码流,该经编码视频码流表示经编码视频条带中的视频块和相关联的语法元素。视频解码器30中的熵解码单元70对码流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符和其它语法元素。熵解码单元70将运动矢量和其它语法元素转发到运动补偿单元72。视频解码器30可以接收视频条带级和/或视频块级的语法元素。
234.当视频条带被译码为经帧内译码(i)条带时,帧内预测单元74可以根据指示的帧内预测模式和来自当前帧或图像中的先前经解码块的数据为当前视频条带中的视频块生成预测数据。当视频帧被译码为经帧间译码(即b或gpb)条带时,运动补偿单元72根据从熵解码单元70接收到的运动矢量和其它语法元素为当前视频条带中的视频块产生预测块。这些预测块可以根据其中一个参考图像列表内的其中一个参考图像而产生。视频解码器30可以根据存储在参考帧存储器82中的参考图像使用默认构建技术来构建参考帧列表:列表0和列表1。
235.运动补偿单元72通过解析运动矢量和其它语法元素为当前视频条带中的视频块确定预测信息,并使用该预测信息为正被解码的当前视频块产生预测块。例如,运动补偿单元72使用所接收的一些语法元素来确定用于对视频条带中的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、条带中的一个或多个参考图像列表的构建信息、条带中的每个经帧间编码视频块的运动矢量、条带中的每个经帧间译码视频块的帧间预测状态以及用于对当前视频条带中的视频块进行解码的其它信息。
236.运动补偿单元72还可以根据内插滤波器来执行内插。运动补偿单元72可以使用由视频编码器20在视频块的编码过程中所使用的内插滤波器来计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元72可以根据所接收的语法元素来确定由视频编码器20使用的内插滤波器,并使用该内插滤波器来产生预测块。
237.对应于深度图像的纹理图像的数据可以存储在参考帧存储器82中。运动补偿单元72还可以用于对深度图像中的深度块进行帧间预测。
238.如本领域技术人员理解的那样,图1中的译码系统10适合于实现各种视频译码或压缩技术。据证明,一些视频压缩技术(例如帧间预测、帧内预测和环路滤波器)是有效果的,因此各种视频译码标准(例如h.264/avc、h.265/hevc)中采用了视频压缩技术。
239.自适应运动矢量预测(adaptive motion vector prediction,amvp)和合并模式(merge)等各种译码工具用于对运动矢量(motion vector,mv)进行预测并提高帧间预测效率,从而提升整体视频压缩效率。
240.上述mv用于双向预测中。在双向预测操作中,形成两个预测块。一个预测块使用列表0中的mv(这里称为mv0)形成,另一个预测块使用列表1中的mv(这里称为mv1)形成,接着组合(例如平均)这两个预测块以形成单个预测信号(例如预测块或预测值块)。
241.视频解码器30的其它变型可以用于对压缩码流进行解码。例如,解码器30可以在没有环路滤波单元的情况下产生输出视频流。例如,基于非变换的解码器30可以在没有用于某些块或帧的逆变换处理单元78的情况下直接对残差信号进行反量化。在另一种实现方式中,视频解码器30中的反量化单元76和逆变换处理单元78可以组合成一个单元。
242.图5为本发明实施例提供的译码设备500的示意图。译码设备500适合于实现本文所述的公开实施例。在一个实施例中,译码设备500可以是解码器(例如图1中的视频解码器30)或编码器(例如图1中的视频编码器20)在一个实施例中,译码设备500可以是如上所述的图1中的视频解码器30或图1中的视频编码器20中的一个或多个组件。
243.译码设备500包括:入端口510和接收单元(rx)520,用于接收数据;处理器、逻辑单元或中央处理器(central processing unit,cpu)530,用于处理所述数据;发送单元(tx)540和出端口550,用于发送所述数据;存储器560,用于存储所述数据。译码设备500还可以包括与入端口510、接收单元520、发送单元540和出端口550耦合的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用于光信号或电信号的出口或入口。
244.处理器530通过硬件和软件实现。处理器530可以实现为一个或多个cpu芯片、核(例如多核处理器)、fpga、asic和dsp。处理器530与入端口510、接收单元520、发送单元540、出端口550和存储器560通信。处理器530包括译码模块570。译码模块570实现上文所述的公开实施例。例如,译码模块570实现、处理、准备或提供各种译码操作。因此,将译码模块570包括在内为译码设备500的功能提供了实质性的改进,并且影响了译码设备500到不同状态的转换。或者,以存储在存储器560中并由处理器530执行的指令来实现译码模块570。
245.存储器560包括一个或多个磁盘、磁带机或固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储此类程序,或者存储在执行程序过程中读取的指令和数据。存储器560可以是易失性的和/或非易失性的,可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、三态内容寻址存储器(ternary content-addressable memory,tcam)或静态随机存取存储器(static random-access memory,sram)。
246.图4为示例性实施例提供的装置1000的简化框图。装置1000可以用作图1中的源设备12和目的地设备14中的任一个或两个。装置1000可以实现本技术的技术。装置1000可以是包括多个计算设备的计算系统,也可以是单个计算设备,例如手机、平板电脑、膝上型电脑、笔记本电脑、台式电脑等。
247.装置1000中的处理器1002可以是中央处理器。或者,处理器1002可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器1002等一个处理器来实施所公开的实现方式,但使用多个处理器可以提高
速度和效率。
248.在一种实现方式中,装置1000中的存储器1004可以是只读存储器(read only memory,rom)设备或随机存取存储器(random access memory,ram)设备。任何其它合适类型的存储设备都可以用作存储器1004。存储器1004可以包括处理器1002通过总线1012存取的代码和数据1006。存储器1004还可以包括操作系统1008和应用程序1010,应用程序1010包括至少一个程序,该程序使得处理器1002执行本文所述方法。例如,应用程序1010可以包括应用1至应用n,还包括执行本文所述方法的视频译码应用。装置1000还可以包括辅助存储器1014形式的额外存储器,辅助存储器1014可以是与移动计算设备一起使用的存储卡等。由于视频通信会话可以包括大量信息,因此可以全部或部分地存储在辅助存储器1014中,并根据需要加载到存储器1004中进行处理。
249.装置1000还可以包括一个或多个输出设备,例如显示器1018。在一个示例中,显示器1018可以是将显示器与触敏元件组合的触敏显示器,该触敏元件能够用于感测触摸输入。显示器1018可以通过总线1012与处理器1002耦合。除显示器1018之外,还可以提供使得用户对装置1000进行编程或以它他方式使用装置1000的其它输出设备。当输出设备是显示器或者包括显示器时,该显示器可以为液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode-ray tube,crt)显示器、等离子显示器或发光二极管(light emitting diode,led)显示器(例如有机led(organic led,oled)显示器)。
250.装置1000还可以包括图像传感设备1020或者与图像传感设备1020通信。图像传感设备1020可以是相机,或现有的或今后将研发出的能够感测图像(例如操作装置1000的用户的图像)的任何其它图像传感设备1020等。可以将图像传感设备1020朝向操作装置1000的用户放置。在一个示例中,可以设置图像传感设备1020的位置和光轴,使得视野包括与显示器1018紧邻的区域,从这个区域可以看到显示器1018。
251.装置1000还可以包括声音传感设备1022或者与声音传感设备通信。声音传感设备1022可以是麦克风,或现有的或今后将研发出的能够感测装置1000附近声音的任何其它声音传感设备等。可以将声音传感设备1022朝向操作装置1000的用户放置。声音传感设备1022可以用于接收用户在操作装置1000时发出的语音或其它话语等声音。
252.虽然图4描述了装置1000中的处理器1002和存储器1004集成在单个设备中,但是可以使用其它构造。处理器1002的操作可以分布在多台机器(每台机器包括一个或多个处理器)上,这些机器可以直接耦合或者通过局域网或其它网络耦合。存储器1004可以分布在多台机器中,例如基于网络的存储器或者执行装置1000的操作的多台机器中的存储器。虽然装置1000中的总线1012在这里示为单个总线,但是总线1012可以有多个。此外,辅助存储器1014可以直接与装置1000中的其它组件耦合或者可以通过网络被访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置1000可以具有各种各样的构造。
253.在视频压缩中,帧间预测是一种过程,即通过指定相对于当前块的运动矢量使用先前经解码的参考图像中的重建后像素点。可以使用空间或时间运动矢量预测值可以将这些运动矢量译码为预测残差。这些运动矢量可以具有子像素精度。为了从重建后的整数位置值中导出参考帧中的子像素精度像素值,使用内插滤波器。双向预测是指一种过程,即把当前块的预测块导出为使用两个运动矢量从两个参考图像区域中导出的两个预测块的加
权组合。在这种情况下,除了这些运动矢量之外,还需要对导出两个预测块的参考图像的参考索引进行译码。当前块的运动矢量还可以通过合并过程导出,其中,继续使用空间邻块的运动矢量和参考索引,而不需要对任何运动矢量残差进行译码。除了空间邻块之外,先前经译码参考帧的运动矢量也被存储并用作时间合并选项,经过运动矢量的适当缩放,以考虑当前图像到先前经译码参考帧的距离,当前图像到先前经译码参考帧的距离是相对于当前图像到当前块的参考帧的距离来说的。
254.已经提供了用于执行解码器侧运动矢量修正或导出的若干方法,从而能够进一步减少运动矢量残差译码比特。
255.在称为双向匹配(bilateral matching,bm)的一类方法中,通过在两个不同的参考图像中沿当前cu的运动路径查找两个最佳匹配的块,导出当前cu的运动信息。这在图6a中示出。假设在连续运动路径下,指向两个参考块的运动矢量mv0和mv1应与当前图像和两个参考图像之间的时间距离td0和td1成正比。
256.在双向匹配合并模式中,由于cu的运动信息是根据两个不同参考图像中沿当前cu的运动路径的两个最匹配的块导出的,因此始终采用双向预测。
257.显式合并模式用于指示模板匹配合并或双向匹配合,并可以指示这些模式,以区分这些模式与不需要进行任何解码器侧运动矢量导出的默认合并模式。
258.在一些示例中,忽略时间距离,而使用在过去和未来参考帧中大小相等但符号相反的运动矢量来执行双向匹配。
259.在一些示例中,不指示合并索引,而在其它示例中,为了降低执行多次运动补偿所产生的解码器复杂度,指示显式合并索引。
260.图6b为示例性dmvr方法400的图示。在一个示例中,dmvr方法400从当前图像404中的当前块402开始。在一个示例中,当前块402的形状可以是正方形或非正方形。当前图像404也可以称为当前区域、当前图像、当前分块等。如图6b所示,mv0指向第一参考图像408中的第一参考块(也称为第一初始参考块)406,mv1指向第二参考图像412中的第二参考块(也称为第二初始参考块)410。在一个示例中,第一参考块406在时间、次序、解码顺序或其它参数方面位于当前块402之前。在一个示例中,第二参考块410在时间、次序、解码顺序或其它参数方面位于当前块402之后。第一参考块406和第二参考块410在本文中可以称为初始参考块。
261.第一参考块406和第二参考块410组合形成双向模板块414。在一个示例中,第一参考块406和第二参考块410一起平均,生成双向模板块414。在一个示例中,双向模板块414是第一参考块406和第二参考块410的加权组合。
262.生成双向模板块414之后执行模板匹配操作。模板匹配操作涉及计算双向模板块414与第一参考块406周围的像素区域中的每个候选参考块之间的第一成本以及双向模板块414与第二参考块410周围的像素区域中的每个候选参考块之间的第二成本。在一个示例中,产生对应最低成本(例如最小模板成本)的潜在参考块判断每个像素区域中的哪个参考块用作修正后(refined/revised)参考块。在一个示例中,使用sad确定第一成本和第二成本。实际应用中还可以采用其它成本度量方法。
263.在图6b的示例中,第一参考图像408中的由mv0'指向的第一修正后参考块416产生最低的第一成本,第二参考图像412中的由mv1'指向的第二修正后参考块418产生最低的第
二成本。在一个示例中,第一修正后参考块416和第二修正后参考块418分别取代第一参考块406和第二参考块410。
264.之后,使用第一修正后参考块416和第二修正后参考块418生成预测块420。预测块420可以称为预测值块或最终的双向预测结果。生成之后,预测块420可以用于生成一张图像,以显示在电子设备(例如智能手机、平板设备、膝上型电脑等)的显示器上。
265.dmvr方法400可以应用于双向预测的合并模式,其中,一个mv来自过去的参考图像,另一个mv来自未来的参考图像,无需传输额外的语法元素。当在联合探索模型(joint exploration model,jem)参考软件中执行cu的局部照明补偿(local illumination compensation,lic)、仿射运动、帧率上转换(frame-rate up-conversion,fruc)或cu合并候选时,不采用dmvr方法400。
266.在jem参考软件中,为参考图像中的每个参考块(例如每个列表,例如列表0或列表1)搜索9个mv候选(指向9个候选参考块)。这9个mv候选包括指向参考块(即初始参考块,例如参考块406或参考块410)的原始mv(即初始mv,例如初始mv0或初始mv1)以及指向该参考块周围的各个参考块的8个mv。这8个mv相对于原始mv在水平方向、垂直方向或两个方向存在一个亮度像素偏移。然而,使用相对于原始mv具有一个亮度像素偏移的mv候选可能无法提供最佳mv候选。
267.在一种示例性方法中,提供了基于双向模板匹配的解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)方法,即首先使用参考图像l0和l1中的参考块(根据显式指示的合并候选索引获得)来创建双向平均模板,然后参照该模板执行双向匹配。这在图6b和6c中示出。如果初始运动矢量引用的初始参考块(406,410)与最近的最佳运动矢量引用的参考块(416,418)之间有任何移动,则更新该模板。此外,在一些示例中,在一个参考图像中执行修正,而另一个参考图像中的运动矢量通过修正后运动矢量的镜像得到。修正在两个参考图像之间交替执行,直到中心位置的匹配错误最小或达到最大迭代次数。
268.图6c是示例性译码方法600的流程图。在一个示例中,译码方法600在解码器(例如图1中的视频解码器30)中实现。例如,当需要对从编码器(例如图1中的视频编码器20)接收到的码流进行解码,从而生成一张图像以在电子设备的显示器上显示时,可以执行译码方法600。译码方法600也可以在编码器(例如图1中的视频编码器20)中实现。参考图6b中标识的元素对译码方法600进行描述。
269.在步骤602中,根据与当前图像(例如当前图像404)中的当前块(例如当前块402)对应的第一运动矢量(例如mv0)确定第一参考图像(例如参考图像408)中的第一参考块(例如参考块406)。
270.在步骤604中,根据与所述当前图像(例如当前图像404)中的所述当前块(例如当前块402)对应的第二运动矢量(例如mv1)确定第二参考图像(例如参考图像412)中的第二参考块(例如参考块410)。
271.在步骤606中,根据所述第一参考块和所述第二参考块生成双向参考块(例如双向参考块414)。在一个示例中,所述双向参考块为所述第一参考块和所述第二参考块的加权平均值。
272.在步骤608中,分别比较所述双向参考块与所述第一参考图像中的多个第一参考
块候选之间的成本。所述多个第一参考块候选可以是第一参考图像408中的第一参考块406周围的各种参考块,等等。通过成本比较确定第一修正后运动矢量(例如mv0')。在一个示例中,根据从多个可用步长(例如1/8、1/4、1/2、1等)中选择的一个步长确定所述多个第一参考块候选。
273.在步骤610中,分别比较所述双向参考块与所述第二参考图像中的多个第二参考块候选之间的成本。所述多个第二参考块候选可以是第二参考图像412中的第二参考块410周围的各种参考块,等等。通过成本比较确定第二修正后运动矢量(例如mv1
′
)。在一个示例中,根据从所述多个可用步长(例如1/8、1/4、1/2、1等)中选择的一个步长确定所述多个第二参考块候选。
274.在步骤612中,根据所述第一修正后运动矢量选择所述第一参考图像中的第一修正后参考块(例如修正后参考块416),根据所述第二修正后运动矢量选择所述第二参考图像中的第二修正后参考块(例如修正后参考块418)。
275.在步骤614中,根据所述第一修正后参考块和所述第二修正后参考块确定预测块(例如预测块420)。
276.在步骤616中,在电子设备的显示器上显示使用所述预测块生成的图像。
277.在上述修正方法的一些示例中,首先执行cu级修正。然后,以cu级修正后mv作为多个候选,执行子cu(即子块)级多候选评估。可选地,每个子cu可以根据最佳匹配候选执行自己的修正。在另一个示例中,不执行cu级修正,相反每个子cu可以执行自己的修正。
278.一些成本函数使用运动矢量修正距离作为偏置项。
279.考虑到隐式的解码器侧导出或修正过程,编码器需要以与解码器完全相同的方式执行这些步骤,以便编码器侧的重建与解码器侧的重建相匹配。
280.通常情况下,解码器侧运动矢量修正或导出过程只使用亮度像素。然而,在一些情况下,还使用用于亮度运动补偿的最终修正后运动矢量(为了考虑任何色度下采样,对运动矢量做适当缩放)对色度进行运动补偿。
281.另一种解码器侧运动矢量修正技术称为双向光流(bi-directional optical flow,bio)技术。在本方法中,使用规范性运动补偿方法对某个译码单元执行运动补偿内插,该方法使用由参考索引指示的两个参考帧中的像素以及与该译码单元相关联的运动矢量。另外,根据用于运动补偿的参考像素或使用运动补偿后像素本身来评估子像素精度位置上的水平梯度值和垂直梯度值。译码单元被分割成大小均匀的子块,其中,子块大小可以是1
×
1像素、2
×
2像素、4
×
4像素等。以下方程(1)是基于光流的方程,涉及与参考帧相关联的各种值,以生成当前帧中的子块的像素值pred
bio
的估计值。在方程(1)中,(vx,vy)表示子块从参考帧l0到当前帧再到参考帧l1的流动。gx0和gy0分别表示l0中的水平方向和垂直方向的梯度值。gx1和gy1分别表示l1中的水平方向和垂直方向的梯度值。i0和i1分别表示l0和l1中的两个参考区块的强度值。τ1和τ0分别表示当前帧到参考帧l0和l1的距离。τ0=poc(当前)-poc(ref0),τ1=poc(ref1)-poc(当前)。
282.pred
bio
=1/2(i0+i1+vx/2(τ1gx1-τ0gx0)+vy/2*(τ1gy1-τ0gy0))
ꢀꢀ
(1)
283.在每个时间间隔内使用单独的光流方程,使用l0像素的预测值(即子块的预测后像素值)与使用l1像素的预测值之间的差值可以写为:
284.δ=(i0-i1)+vx(τ1gx1+τ0gx0)+vy(τ1gy1+τ0gy0)
285.通过使差值δ减到最小,可以得到vx和vy的估计值。例如,通过对差值δ的平方做vx和vy的偏微分并将微分设置为0,得到针对子块内的像素和与子块相邻的像素的方程,vx和vy为未知数。这组过度约束方程可以通过最小二乘法求解,得到vx和vy的估计值。使用上文提到的方程(1)、计算出的vx和vy的估计值以及梯度值gx0和gy0,将校正项增加到通常的双向预测运动补偿中。在一些方法中,假设τ0和τ1在这些方程中是相等的。
286.如上所述,基于双向匹配的解码器侧运动矢量导出/修正方法计算两个参考图像(用于双向预测)中的合并模式运动矢量(即包括初始运动矢量mv0和mv1的合并候选)周围的增量(delta)运动矢量(即初始运动矢量mv0和mv1的变化量)。计算出的增量运动矢量根据当前图像与两个参考图像的时间距离td0和td1确定。然而,由于td1与td0之间的比率,一个参考图像中的整数距离移动可以是另一个参考图像中的非整数距离移动,因此,与构成修正起始位置的合并模式运动矢量的相位相比,评估上述修正需要评估不同相位的子像素精度位置(例如,当td1和td0不相等时,如果l0与当前图像的距离为2,l1与当前图像的距离为1,则l0中的1个像素修正移动导致l1中的0.5个像素移动。因此,修正流程的计算复杂度高。为了简化修正流程,修正流程可以忽略td0和td1并使用两个参考图像中大小相等且方向相反的增量运动矢量,这样一个参考图像中的整数距离移动仍然是另一个参考图像中的整数距离移动。进行多次迭代修正,直到达到预定义的最大迭代次数或者某次迭代的中心位置是成本最低的位置。这种方法也适用于采用二元配置(用于通用视频译码的通用测试条件下)中的分层b图像的情况下。在这种二元配置中,下一个时间层的图像数量是当前时间层的图像数量的两倍。因此,b图像有一个过去的参考图像和一个未来的参考图像,它们与当前图像的距离相等。
287.然而,由于其中一个参考图像中存在遮挡,因此候选合并运动矢量可以适用于单向预测,或者候选合并运动矢量可以指与当前图像的距离不相等的两个参考帧。此外,商用编码器中可能不使用严格的二元分层b图像,因为它们往往根据时间相关性来调整图像类型。例如,有些编码器在每两个参考图像之间使用2个非参考图像。某些其它编码器由于底层运动特性的原因而在属于同一时间层的图像之间具有可变距离。在这类情况下,根据大小相等且方向相反的增量运动矢量进行修正不会产生任何主要的译码增益,而且每当不使用显式标志来指示是否需要修正时,还会影响编码增益。然而,为每个cu指示一个标志以指示执行修正,降低了这种修正带来的一些编码增益。
288.因此,需要选择性地或适应性地提供一种能力,从而每当根据大小相等且方向相反的增量运动矢量进行基于双向匹配的修正时,将解码器侧修正只限于具有等距离参考图像的译码单元或对这些译码单元执行解码器侧修正。
289.此外,每当bio方法假设τ0和τ1相等时,需要提供一种能力,从而将bio方法只限于时间距离真正相等时或者只在此时执行bio方法。
290.本发明通过提供一种方法来解决上述问题,即根据一组帧中的至少一个接入单元与其两个参考图像的时间距离选择性地将解码器侧运动矢量修正限于在该接入单元中译码的双向预测合并模式译码单元或对该译码但执行解码器侧运动矢量修正。这种限制可以通过在编码器侧的序列参数集级处设置一个标志来执行,从而只有当译码单元与其两个参考图像之间的时间距离基本上相等时才执行解码器侧mv修正。在执行解码器侧mv修正时,编码侧和解码侧均采用这种方法。
291.所述方法的详细示例
292.本发明实施例提供一种方法,以将解码器侧运动矢量导出/修正只限于具有等距参考图像的译码单元。本实施例可以在进行解码器侧mv修正的情况下使用。例如,当根据用于双向预测(无论是否使用双向模板)的两个参考图像中的大小相等且符号相反的增量运动矢量进行基于双向匹配的解码器侧mv修正时,可以使用该方法。如上所述,此类方法忽略了参考帧与当前图像的时间距离,这样可以通过将像素内插在每个参考帧的单个子像素相位处来执行从子像素精度合并运动矢量中心开始的整数距离修正。从合并候选列表中获得的合并运动矢量可以位于任何子像素位置上。例如,子像素精度可以位于1/16。当基于双向光流(bi-directional optical flow,bdof)的解码器侧运动矢量修正不依赖于时间距离或假设时间距离相等时,也可以使用该方法。
293.在本实施例中,只有当某个译码单元或译码块与用于双向预测的参考图像的时间距离基本上大小相等且符号或方向相反时,才对该译码块进行解码器侧mv修正。图7为示例性编码方法700的流程图。在一个实施例中,编码方法700在编码器(例如图1中的视频编码器20)中实现。在步骤701中,在根据编码侧或解码侧的规范性过程构建包括一个或多个合并候选的合并候选列表之后,合并运动矢量及其参考索引变为可用。在步骤703中,对于指示双向预测的每个合并候选,识别与双向预测所需的2个参考索引对应的2个参考帧(在本文称为参考帧l0和l1),获取所述2个参考帧与当前图像的时间距离td0和td1。在步骤705中,判断所述当前图像与用于双向预测的参考图像的时间距离是否基本上大小相等且符号相反。在步骤707中,如果所述时间距离基本上大小相等且符号相反,则编码器或解码器对所述合并候选执行规范性解码器侧mv修正过程。修正后运动矢量用于使用参考帧l0和l1来执行运动补偿双向预测。如果在步骤705中确定所述当前图像与用于双向预测的参考图像的时间距离基本上大小相等且符号相反,则在步骤709中,跳过解码器侧mv修正,使用合并运动矢量进行双向预测。在步骤711中,如果最佳合并模式候选的成本低于任何其它评估的模式,则编码器将译码单元的合并标志设置为1。此外,编码器还可以显式地指示在合并列表中选中的合并候选的合并候选索引。在一些情况下,可以在解码侧隐式导出合并候选索引。
294.图8为示例性解码方法800的流程图。在一个实施例中,解码方法800在解码器(例如图1中的视频解码器30)中实现。在步骤801中,对于译码单元,从接收到的码流中解析合并标志;如果所述合并标志设置为真(例如1),则通过对显式指示的合并索引进行解码或通过在解码侧隐式导出合并索引来获取合并候选。在步骤803中,使用规范性合并列表构建过程来获得与所述合并索引相关联的(一个或多个)运动矢量和(一个或多个)参考索引。在步骤805中,如果所述合并候选指示双向预测,则识别与2个参考索引对应的2个参考帧,获取所述2个参考帧与当前图像的时间距离td0和td1。在步骤807中,判断所述当前图像与用于双向预测的参考图像的时间距离是否基本上大小相等且符号相反。在步骤809中,如果所述时间距离基本上大小相等且符号相反,则解码器对所述合并候选执行规范性解码器侧mv修正过程。具体而言,如果在序列级执行解码器侧运动矢量修正,则只有当td0和td1基本上大小相等且符号相反时,才执行解码器侧mv修正。修正后运动矢量用于使用参考帧l0和l1来执行运动补偿双向预测。否则,在步骤811中,跳过解码器侧mv修正,使用合并索引的运动矢量来执行运动补偿双向预测。在步骤813中,根据运动补偿数据(例如解析出的残差数据和
预测后数据之和)重建译码块。
295.在另一个实施例中,对td0和td1的相同检查也可以用于基于双向光流(bidirectional optical flow,bio)的方法(其中,td0对应于τ0,td1对应于
–
τ1,如上所述),从而只有当td0和td1基本上大小相等且符号相反时,才对某个译码单元执行基于bio的方法。
296.图9为用于对视频的当前图像中的当前图像块进行帧间预测(双向预测)的方法的流程图。所述方法开始于步骤901。
297.在步骤903中,判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间以及第一时间距离(例如td0)和第二时间距离(例如td1)是否相等,其中,所述第一时间距离(td0)是所述当前图像与所述第一参考图像(refpic0)之间的距离,所述第二时间距离(td1)是所述当前图像与所述第二参考图像(refpic1)之间的距离。
298.在步骤905中,当确定所述当前图像在时间上位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间以及所述第一时间距离(td0)和所述第二时间距离(td1)相等时,执行运动矢量修正(motion vector refinement,dmvr)流程以确定所述当前图像块的预测块。所述运动矢量修正(motion vector refinement,dmvr)流程可以如上所述结合图6c中的步骤602至步骤610或图6d中的步骤632至步骤640来执行。还可以采用其它方式来执行运动矢量修正。
299.在步骤907中,当确定所述第一时间距离(td0)和所述第二时间距离(td1)不相等或所述当前图像在时间上不位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间时,执行运动补偿以使用第一初始运动矢量(mv0)和第二初始运动矢量(mv1)来获得所述当前图像块的预测块。
300.图10为用于对视频的当前图像中的当前图像块进行帧间预测的装置的一种示例性结构的框图。所述装置可以包括:
301.判断单元101,用于判断所述当前图像是否在时间上位于第一参考图像(例如refpic0)和第二参考图像(例如refpic1)之间以及第一时间距离(例如td0)和第二时间距离(例如td1)是否相等,其中,所述第一时间距离(td0)是所述当前图像与所述第一参考图像(refpic0)之间的距离,所述第二时间距离(td1)是所述当前图像与所述第二参考图像(refpic1)之间的距离;
302.帧间预测处理单元103,用于:当确定所述当前图像在时间上位于所述第一参考图像(例如refpic0)和所述第二参考图像(例如refpic1)之间以及所述第一时间距离(td0)和所述第二时间距离(td1)相等时,执行运动矢量修正(motion vector refinement,dmvr)流程以确定所述当前图像块的预测块。
303.在一些实施例中,并不是始终应用上述提到的基于时间距离的检查以在译码单元或译码块级上条件性地执行解码器侧运动矢量修正,而是只有当在序列参数集级和/或图像级上指示特定标志时,才条件性地执行这些检查。
304.在一个实施例中,每当在序列参数集级上执行解码器侧运动矢量修正时,在序列参数集级上指示标志,例如sps_conditional_dmvr_flag。当该标志设置为0时,解码器侧mv修正可以不依赖所有访问单元中的当前图像与参考帧的时间距离来执行。当该标志设置为
1时,在图像参数集级上指示一个额外标志,例如pps_conditional_dmvr_flag。当pps_conditional_dmvr_flag设置为0时,解码器侧mv修正可以在不依赖于当前图像与参考帧的时间距离来执行。当pps_conditional_dmvr_flag设置为1时,只有当某个cu的当前图像与参考帧的时间距离基本上大小相等且符号相反时才能执行解码器侧mv修正。
305.编码器可以在以下情况下将sps_conditional_dmvr_flag设置为0:相对两侧使用常规的二元分层b图像的图像组(group of picture,gop)结构,b图像中的参考帧的最大数量设置为2,始终选择与当前图像的时间距离相等且位于当前图像的参考帧。显示顺序中的二元gop结构的一个示例为i0
0 b1
4 b2
3 b3
4 b4
2 b5
4 b6
3 b7
4 b8
1 b9
4 b10
3 b11
4 b12
2 b13
4 b14
3 b154p160,其中,下标指示时间层,图像类型旁边的数字指示显示顺序帧计数。
306.编码器在以下情况下将sps_conditional_dmvr_flag设置为1:(a)使用常规的二元分层b图像gop结构,但b图像中的参考帧的最大数量设置为大于2,或者(b)如果很可能选择与当前图像的时间距离基本上不相等或者在显示顺序中不位于当前图像的相对两侧,或者(c)使用非二元分层b图像或非二元单个b图像层gop结构。非二元gop结构的一个示例是i00b1
1 b2
1 p3
0 b4
1 b5
1 p60,只有一层b图像。自适应分层b图像的一个示例是i0
0 b1
2 b2
2 b31b4
2 p50,其中,同一时间层级上的两个图像之间的间距根据内容属性适应性地确定。
307.或者,sps_conditional_dmvr_flag可以由用户根据上述条件手动配置为编码器参数。
308.当sps_conditional_dmvr_flag设置为1时,编码器可以将帧中的pps_conditional_dmvr_flag设置为0,这些帧的参考帧的最大数量设置为2,参考帧与当前图像的时间距离基本上相等且在显示顺序中位于当前图像的相对两侧。
309.当sps_conditional_dmvr_flag设置为1时,编码器可以将帧中的pps_conditional_dmvr_flag设置为1,这些帧的参考帧的最大数量设置为大于2的值,用于cu的双向预测的2个参考帧与当前图像的时间距离不需要基本上相等或者两个参考图像在显示顺序中不位于当前图像的相对两侧。以编码/解码顺序i0
0 p1
0 p6
0 b4
1 b2
2 b3
2 b52和显示顺序i0
0 p1
0 b2
2 b3
2 b4
1 b5
2 p60为例,图像b22的参考图像可以有i00、p10、p60和b41。在这些参考图像中,参考图像i0和b4的距离相等且方向相反。因此,当i0和b4作为b2的参考图像时,时间距离相等且方向相反,而当p1和b4作为参考图像时,情况并非如此。当pps_conditional_dmvr_flag设置为1时,以i0和b4作为参考图像的b2中的译码单元进行解码器侧mv修正,而以p1和b4作为参考图像的b2中的译码单元不能进行解码器侧mv修正(取决于预定的比率阈值,例如当前图像和第一参考图像(refl0)之间的距离与第二参考图像(refl1)和当前图像之间的距离的比率)。
310.由于物体的运动不一定是从l0到当前图像以及从当前图像到l1的线性运动,因此即使当参考图像的时间距离基本上不相等时,相等和相反的运动假设有时也是有效的。在某些实施例中,编码器可以对pps_conditional_dmvr_flag设置为0的帧执行编码,对pps_conditional_dmvr_flag设置为1的同一帧执行另一种编码,并选择率失真优化成本较低的设置。计算率失真优化成本等于重建后的帧相对于源帧的失真度量值与所使用的比特乘以适当的拉格朗日乘数(lagrangian multiplier)之和,该乘数取决于用于该帧的平均量化参数。
311.在其它实施例中,累积对译码单元执行解码器侧mv修正和不执行解码器侧mv修正
两情况下的率失真优化成本,这些译码单元的时间距离基本上不相等;如果不执行修正产生的累积成本比执行修正产生的累积成本少,则下一图像的标志可以设置为1。
312.根据编码器侧确定的gop结构,任何译码单元的参考帧的时间距离不可能基本上相等时,还可以对序列参数集(sequence parameter set,sps)级或图像参数集级不执行解码器侧运动矢量修正。只有当对sps级执行解码器侧运动矢量修正时,才指示sps级的条件标志(如果存在)。只有当对pps级(显式或隐式)执行解码器侧运动矢量修正时,才指示pps级的条件标志(如果存在)。本发明考虑到了指示sps/pps级的解码器侧mv修正的任何替代方法、不依赖于参考图像的时间距离指示修正的能力以及依赖于参考图像的时间距离指示修正的能力。例如,有可能对一个语法元素进行译码,而不是对两个标志进行译码,该语法元素通过将两个标志连接在一起取三个可能值(例如0、1和2)中的一个值。
313.图6d为用于执行解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程或过程的另一个示例的流程图。在一个实施例中,所述过程在解码器(例如图1中的视频解码器30)中实现。例如,当需要对从编码器(例如图1的视频编码器20)接收到的码流进行解码,从而生成一张图像以在电子设备的显示器上显示时,可以执行所述过程。所述过程也编码器(例如图1中的视频编码器20)中实现。所述过程参照图6b中标识的元素进行描述。
314.在步骤632中,根据与当前图像(例如当前图像404)中的当前块(例如当前块402)对应的第一运动矢量(例如mv0)确定第一参考图像(例如参考图像408)中的第一初始参考块(例如参考块406)的位置。
315.在步骤634中,根据与所述当前图像(例如当前图像404)中的所述当前块(例如当前块402)对应的第二运动矢量(例如mv1)确定第二参考图像(例如参考图像412)中的第二初始参考块(例如参考块410)的位置。
316.在步骤636中,确定所述第一参考图像中的多个第一参考块(例如n-1个第一参考块)的位置。
317.在步骤638中,确定所述第二参考图像中的多个第二参考块(例如n-1个第二参考块)的位置。在步骤636和步骤638中,每对参考块的位置包括第一参考块的位置和第二参考块的位置;对于每对参考块,第一位置偏移量(delta0x,delta0y)和第二位置偏移(delta1x,delta1y)镜像(即大小相等且符号相反),所述第一位置偏移(delta0x,delta0y)表示所述第一参考块的位置相对于所述第一初始参考块的位置的偏移,所述第二位置偏移(delta1x,delta1y)表示所述第二参考块的位置相对于所述第二初始参考块的位置的偏移。具体而言,对于每对第一和第二参考块的位置,第一偏移的方向与第二偏移的方向相反,第一偏移的大小与第二偏移的大小相同;所述第一偏移和所述第二偏移分别与这对中的相应第一参考块和相应第二参考块相关联。
318.在步骤640中,比较所述第一参考图像中的多个第一参考块和所述第二参考图像中的多个第二参考块中的每对第一参考块和第二参考块之间的成本。也可以比较所述第一和第二初始参考块之间的成本。所述多个第一参考块可以是围绕第一参考图像408中的第一初始参考块406的各种参考块,等等。通过成本比较确定第一修正后运动矢量(例如mv0')和第二修正后运动矢量(例如mv1')。
319.所述多个第二参考块可以是围绕第二参考图像412中的第二初始参考块410的各
种参考块,等等。或者,根据匹配成本准则,从n对参考块的位置中确定一对参考块的位置作为所述第一修正后参考块的位置和所述第二修正后参考块的位置。可以理解的是,所述n对参考块可以包括一对第一和第二初始参考块。
320.在步骤642中,根据所述第一修正后运动矢量选择所述第一参考图像中的第一修正后参考块(例如修正后参考块416),根据所述第二修正后运动矢量选择所述第二参考图像中的第二修正后参考块(例如修正后参考块418)。或者,根据所述第一修正后参考块的位置确定第一修正后参考块在所述第一参考图像中,根据所述第二修正后参考块的位置确定所述第二修正后参考块在所述第二参考图像中。
321.在步骤644中,根据所述第一修正后参考块和所述第二修正后参考块确定预测块(例如预测块420)。
322.在步骤646中,在电子设备的显示器上显示使用所述预测块生成的图像。
323.本领域技术人员将认识到,可以应用许多方案来执行解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程,并且本发明不限于上文示出的示例性过程。
324.基于上述内容,本发明条件性地限制(例如执行或不执行)以每个cu使用的两个参考图像的时间距离为基础的解码器侧运动矢量修正,因此,当修正使用的大小相等且方向相反的增量运动矢量的基本假设不太可能成立时,不进行修正能够提高编码效率。
325.基于上述内容,本公开还提供了无条件地对所有接入单元不执行修正、有条件地对某些接入单元不执行修正、对接入单元级执行无条件修正,或者根据接入单元内的译码单元使用的当前图像与参考图像的时间距离对接入单元执行条件修正的粒度。
326.基于上述内容,本发明还提供了对不太可能提高压缩增益的合并索引不执行解码器侧修正的优点。
327.此外,基于上述内容,本发明将修正仅限于两个等距参考图像,优点是解码器侧的其它参考图像产生较少的缓存污染。
328.基于上述内容,每当两个参考图像的时间距离基本上不是大小相等且方向相反时,本发明规范性地不执行cu级的基于双向匹配的解码器侧运动矢量修正。具体而言,当修正过程不使用时间距离来缩放增量运动矢量时,不执行基于双向匹配的解码器侧运动矢量修正。
329.基于上述内容,本发明在序列级和图像参数集级增加标志,使得只有当由这些标志指示时才对cu级执行基于时间距离的检查,这样编码器可以选择根据gop结构和编码增益等因素指示合适的标志值。
330.下面对上述实施例中所示的编码方法和解码方法的应用以及使用这些应用的系统进行说明。
331.图11为用于实现内容分发业务的内容分发系统3100的框图。内容分发系统3100包括捕获设备3102、终端设备3106和(可选)显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。该通信链路可以包括上述通信信道13。通信链路3104包括但不限于wi-fi、以太网、有线、无线(3g/4g/5g)、usb或者其任意类型的组合等。
332.捕获设备3102生成数据,并可使用上述实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),该服务器对数据进
行编码并将经编码数据发送到终端设备3106。捕获设备3102包括但不限于相机、智能手机或pad、计算机或膝上型电脑、视频会议系统、pda、车载设备或其任意组合等。例如,捕获设备3102可以包括上述源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当数据包括音频时,捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。在某些实际场景中,捕获设备3102通过将经编码视频数据和经编码音频数据复用在一起来分发它们。在其它实际场景中,例如,在视频会议系统中,不复用经编码音频数据和经编码视频数据。捕获设备3102将经编码音频数据和经编码视频数据分别分发到终端设备3106。
333.内容分发系统3100中的终端设备310接收并再生成经编码数据。终端设备3106可以是能够接收和恢复数据的设备,例如智能手机或pad 3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,nvr)/硬盘录像机(digital video recorder,dvr)3112、电视3114、机顶盒(set top box,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,pda)3122、车载设备3124或其任意组合,或能够对上述经编码数据进行解码的此类设备。例如,终端设备3106可以包括上述目的地设备14。当经编码数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码。当经编码数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。
334.对于带显示器的终端设备,例如智能手机或pad 3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,nvr)/硬盘录像机(digital video recorder,dvr)3112、电视3114、个人数字助理(personal digital assistant,pda)3122或车载设备3124,终端设备可以将经解码数据输入到其显示器。对于不带显示器的终端设备,例如stb 3116、视频会议系统3118或视频监控系统3120,使外部显示器3126与终端设备连接,以接收并显示经解码数据。
335.本系统中的各个设备执行编码或解码时,可以使用上述实施例所示的图像编码设备或图像解码设备。
336.图12为终端设备3106的示例性结构的示意图。在终端设备3106从捕获设备3102接收流之后,协议处理单元3202分析该流的传输协议。该协议包括但不限于实时流协议(real time streaming protocol,rtsp)、超文本传输协议(hyper text transfer protocol,http)、http直播流协议(http live streaming protocol,hls)、mpeg-dash)-、实时传输协议(real-time transport protocol,rtp)、实时消息传输协议(real time messaging protocol,rtmp)或其任意组合等。
337.在协议处理单元3202对码流进行处理之后,生成流文件。将该文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为经编码音频数据和经编码视频数据。如上所述,在某些实际场景中,例如,在视频会议系统中,不复用经编码音频数据和经编码视频数据。在这种情况下,经编码数据不经过解复用单元3204就发送到视频解码器3206和音频解码器3208。
338.通过解复用处理,生成视频基本码流(elementary stream,es)、音频es和(可选)字幕。视频解码器3206包括如上述实施例所解释的视频解码器30,通过如上述实施例所示的解码方法对视频es进行解码以生成视频帧,并将该数据输入到同步单元3212。音频解码器3208对音频es进行解码以生成音频帧,并将该数据输入到同步单元3212。或者,视频帧可
以存储在缓冲器(图12中未示出)中,然后输入到同步单元3212。类似地,音频帧可以存储在缓冲器(图12中未示出)中,然后输入到同步单元3212。
339.同步单元3212同步视频帧和音频帧,并将视频/音频提供到视频/音频显示器3214。例如,同步单元3212使视频和音频信息同步呈现。可以使用与译码音频和可视数据的呈现相关的时间戳和与数据流的分发相关的时间戳将信息编码到语法中。
340.如果码流中包括字幕,则字幕解码器3210对字幕进行解码,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供到视频/音频/字幕显示器3216。
341.本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以在汽车系统等其它系统中使用。
342.在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质中或由计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,对应于对应于有形介质(例如数据存储介质)或者包括任何根据通信协议等促进将计算机程序从一个地方传递到另一个地方的通信介质。通过这种方式,计算机可读介质一般可以对应于(1)非瞬时性的有形计算机可读存储介质或(2)信号或载波等通信介质。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实施本发明所述技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
343.作为示例而非限制,这类计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可以用于存储指令或数据结构形式的所需程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(digital subscriber line,dsl)或红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,则同轴缆线、光纤缆线、双绞线、dsl或红外线、无线电和微波等无线技术包含在介质的定义中。但是,应理解,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是实际上针对于非瞬时性有形存储介质。如本文中所使用,磁盘和光盘包含压缩光盘(compact disc,cd)、激光光盘、光学光盘、数字多功能光盘(digital versatile disc,dvd)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读介质的范围内。
344.可以通过一个或多个数字信号处理器(digital signal processor,dsp)、通用微处理器、专用集成电路(application specific integrated circuit,asic)、现场可编程逻辑阵列(field programmable logic array,fpga)或其它同等集成或离散逻辑电路等一或多个处理器来执行指令。因此,本文所使用的术语“处理器”可以指上述结构中的任一种或适于实施本文所述技术的任何其它结构。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合译码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。
345.本发明的技术可以在多种设备或装置中实施,这些设备或装置包括无线手持设备、集成电路(integrated circuit,ic)或一组ic(例如芯片组)。本发明描述了各种组件、模块或单元,以强调用于执行所公开技术的设备的功能方面,但未必需要由不同的硬件单
元实现。相反,如上所述,各种单元可以结合合适的软件和/或固件组合在译码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
346.虽然本发明提供了几个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可能通过其它多种具体形式体现。本发明的示例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者某些特征可以省略或不实施。
347.另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。展示或论述为彼此耦合或直接耦合或者通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更改示例可以由本领域技术人员在不脱离本文所公开的精神和范围的情况下确定。
348.虽然本发明提供了几个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可能通过其它多种具体形式体现。本发明的示例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者某些特征可以省略或不实施。
349.另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。展示或论述为彼此耦合或直接耦合或者通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更改示例可以由本领域技术人员在不脱离本文所公开的精神和范围的情况下确定。
技术特征:
1.一种由解码设备实现的解码方法,其特征在于,所述解码方法包括:从码流中解析序列参数集(sequence parameter set,sps)级和/或图像级上解码器侧运动矢量修正(decoder motion vector refinement,dmvr)控制标志的值;根据序列参数集(sequence parameter set,sps)级和/或图像级上解码器侧运动矢量修正(decoder motion vector refinement,dmvr)控制标志的值,适应性地执行或不执行解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程。2.根据权利要求1所述的方法,其特征在于,所述序列参数集(sequence parameter set,sps)级上dmvr控制标志的取值为1,在图像块级上或译码块级上条件性地执行解码器侧运动矢量修正(dmvr),其中,所述条件性地执行dmvr中的多个条件包括:所述图像级上dmvr控制标志的值,以指示在所述图像级上允许执行dmvr;和,所述第一时间距离等于所述第二时间距离,其中,所述第一时间距离由所述当前图像的图像顺序编号值与第一参考图像的图像顺序编号值的差值表示,所述第二时间距离由第二参考图像的图像顺序编号值与所述当前图像的图像顺序编号值的差值表示。3.根据权利要求1或2所述的方法,其特征在于,所述在图像块级上或译码块级上条件性地执行解码器侧运动矢量修正(dmvr),包括:判断第一时间距离是否等于第二时间距离,其中,所述第一时间距离由所述当前图像的图像顺序编号值与第一参考图像的图像顺序编号值的差值表示,所述第二时间距离由第二参考图像的图像顺序编号值与所述当前图像的图像顺序编号值的差值表示;当所述多个条件均满足时,执行解码器侧运动矢量修正(decoder motion vector refinement,dmvr)流程以确定所述当前图像块的预测块,其中所述多个条件包括:-在图像级上指示的一个标志的值,以指示在所述图像级上执行所述dmvr流程;和,-所述第一时间距离等于所述第二时间距离;当所述多个条件中的所述第一时间距离等于所述第二时间距离不满足时,跳过解码器侧运动矢量修正(decoder motion vector refinement,dmvr)流程。4.根据权利要求1至3任一项所述的方法,其特征在于,所述执行dmvr流程包括:根据匹配成本准则,从多对第一参考块和第二参考块的位置中确定一对第一参考块和第二参考块的位置,其中,所述一对第一参考块和第二参考块的位置包括:在所述第一参考图像中的第一参考块的位置和在所述第二参考图像中的第二参考块的位置,其中所述第一参考块的位置是根据第一初始运动矢量确定的,所述第二参考块的位置是根据第二初始运动矢量确定的,其中,所述匹配成本准则是基于所述第一参考块和所述第二参考块之间的成本比较;其中,第一修正后运动矢量和第二修正后运动矢量分别与所述第一参考块的位置和所述第二参考块的位置相关联。5.根据权利要求1至4任一项所述的方法,其特征在于,所述dmvr控制标志包括第一标志(sps_conditional_dmvr_flag),或者所述sps级上dmvr控制标志为sps_conditional_dmvr_flag。6.根据权利要求5所述的方法,其特征在于,如果所述第一标志(sps_conditional_dmvr_flag)等于0,则对序列中的图像块不允许执行dmvr;或者,所述sps_conditional_dmvr_flag等于0,则对序列中的图像块不允许执行dmvr,或者对序列中的图像不允许执行dmvr,所述图像包括一个或多个图像块。
7.根据权利要求5或6所述的方法,其特征在于,如果所述第一标志(sps_conditional_dmvr_flag)等于1,则对序列中的图像的图像块允许执行dmvr;或者,所述sps_conditional_dmvr_flag等于1,则对序列中的图像允许执行dmvr,所述图像包括一个或多个图像块。8.一种用于对视频的当前图像中的当前图像块进行帧间预测的方法,其特征在于,所述方法包括:在从码流中解析出的序列参数集(sequence parameter set,sps)级上解码器侧运动矢量修正(decoder motion vector refinement,dmvr)控制标志的值等于1的情况下,判断第一时间距离是否等于第二时间距离,其中,所述第一时间距离由所述当前图像的图像顺序编号值与第一参考图像的图像顺序编号值的差值表示,所述第二时间距离由第二参考图像的图像顺序编号值与所述当前图像的图像顺序编号值的差值表示;当多个条件满足时,执行解码器侧运动矢量修正(decoder motion vector refinement,dmvr)流程以确定所述当前图像块的预测块,其中所述多个条件包括:-图像级上解码器侧运动矢量修正(decoder motion vector refinement,dmvr)控制标志的值,以指示在所述图像级上执行所述dmvr流程;和,-所述第一时间距离等于所述第二时间距离;当确定所述第一时间距离不等于所述第二时间距离时,跳过执行解码器侧运动矢量修正(decoder motion vector refinement,dmvr)流程。9.根据权利要求8所述的方法,其特征在于,所述dmvr流程包括:根据匹配成本准则,从多对第一参考块和第二参考块的位置中确定一对第一参考块和第二参考块的位置,其中,所述一对第一参考块和第二参考块的位置包括:在所述第一参考图像中的第一参考块的位置和在所述第二参考图像中的第二参考块的位置,其中所述第一参考块的位置是根据第一初始运动矢量确定的,所述第二参考块的位置是根据第二初始运动矢量确定的,其中,所述匹配成本准则是基于所述第一参考块和所述第二参考块之间的成本比较;其中,第一修正后运动矢量和第二修正后运动矢量分别与所述第一参考块的位置和所述第二参考块的位置相关联。10.根据权利要求8或9所述的方法,其特征在于,所述当前图像块的初始运动信息包括所述第一初始运动矢量、第一参考索引、所述第二初始运动矢量和第二参考索引;所述第一参考索引指示所述第一参考图像,所述第二参考索引指示所述第二参考图像。11.根据权利要求8至10任一项所述的方法,其特征在于,当确定所述第一时间距离不等于所述第二时间距离时,使用第一初始运动矢量和第二初始运动矢量来执行运动补偿,以确定所述当前图像块的预测块。12.根据权利要求1或2所述的方法,其特征在于,所述当前图像块的初始运动信息包括所述第一初始运动矢量、第一参考索引、所述第二初始运动矢量和第二参考索引;所述第一参考索引指示所述第一参考图像,所述第二参考索引指示所述第二参考图像。13.一种解码装置,其特征在于,所述解码装置包括:一个或多个处理器;计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序指令,其中
所述程序指令在由所述处理器执行时,使得所述设备执行根据权利要求1至12任一项所述的方法。14.一种存储计算机可读指令的计算机可读介质,其特征在于,当在处理器上执行时,所述计算机可读指令执行根据权利要求1至12中任一项所述的步骤。15.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有根据权利要求1至12任一项所述的步骤解码的码流,或者,所述计算机可读存储介质上存储有由一个或多个处理器执行的如权利要求1至12任一项所述方法处理的视频码流。16.一种用于对视频的当前图像中的当前图像块进行帧间预测的方法,其特征在于,所述方法包括:判断第一时间距离是否等于第二时间距离,其中,所述第一时间距离由所述当前图像的图像顺序编号值与第一参考图像的图像顺序编号值的差值表示,所述第二时间距离由第二参考图像的图像顺序编号值与所述当前图像的图像顺序编号值的差值表示;当多个条件均满足时,执行运动矢量修正(motion vector refinement,dmvr)流程以确定所述当前图像块的预测块,其中所述多个条件中的一个是所述第一时间距离等于所述第二时间距离;当所述第一时间距离不等于所述第二时间距离时,跳过dmvr流程。17.一种由解码设备实现的解码方法,其特征在于,所述解码方法包括:从码流中解析语法元素,其中,所述语法元素的值指示是否执行根据权利要求16所述的方法;根据所述语法元素的值,适应性地执行或不执行解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)流程。18.根据权利要求17所述的方法,其特征在于,所述语法元素是序列参数集(sequence parameter set,sps)级语法元素、图像参数集(picture parameter set,pps)级语法元素、条带头中的语法元素、译码树单元(coding tree unit,ctu)级语法元素或译码单元(coding unit,cu)级语法元素中的任一个。
技术总结
本发明提供了一种对用于视频的当前图像中的当前图像块进行帧间预测的方法。所述方法包括:判断第一时间距离(例如TD0)是否等于第二时间距离(例如TD1),其中,所述第一时间距离由所述当前图像的图像顺序编号值与第一参考图像的图像顺序编号值的差值表示,所述第二时间距离由第二参考图像的图像顺序编号值与所述当前图像的图像顺序编号值的差值表示;当确定所述第一时间距离(TD0)不等于所述第二时间距离(TD1)时,不执行运动矢量修正(motion vector refinement,DMVR)流程。因此,所述DMVR流程仅限于具有等距参考块的图像块。流程仅限于具有等距参考块的图像块。流程仅限于具有等距参考块的图像块。
技术研发人员:斯利拉姆
受保护的技术使用者:华为技术有限公司
技术研发日:2019.09.12
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
