首页 / 专利库 / 资料储存系统 / 数据压缩 / 无损压缩 / 熵编码 / 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器

插值滤波器的训练方法、装置及视频图像编解码方法、编解码器

阅读:392发布:2020-05-08

专利汇可以提供插值滤波器的训练方法、装置及视频图像编解码方法、编解码器专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种插值 滤波器 的训练方法、装置及视频图像编解码方法、编 解码器 ,该训练方法通过以传统的插值滤波器插值得到的第一分 像素 图像为标签数据,来训练第二插值滤波器,使得训得到的第二插值滤波器可直接用于插值得到第一分数像素 位置 的像素值,标签数据更加准确,提升视频图像的编解码性能。该编码方法在进行 帧 间预测过程中,通过从候选插值滤波器集合中确定用于所述当前编码图像 块 的目标插值滤波器,实现 编码器 根据当前编码图像块的内容选择合适的插值滤波器进行插值运算,使得得到的预测块预测准确性更高的预测块,减少码流,提高视频图像的压缩率。,下面是插值滤波器的训练方法、装置及视频图像编解码方法、编解码器专利的具体信息内容。

1.一种插值滤波器训练方法,其特征在于,包括:
通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
通过最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数确定所述第二插值滤波器的滤波器参数。
2.一种基于插值滤波器训练方法,其特征在于,包括:
通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
将所述第二分像素图像经过翻转运算输入到第三插值滤波器中,得到第一图像,并将所述第一图像通过所述翻转运算的逆运算得到第二图像,其中,所述第二插值滤波器和所述第三插值滤波器共享滤波器参数;
根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
3.根据权利要求2所述的方法,其特征在于,所述根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数,具体包括:
通过最小化第三函数确定所述滤波器参数,其中,所述第三函数为用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数的加权求和。
4.根据权利要求2所述的方法,其特征在于,所述根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数,具体包括:
通过交替最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
5.一种视频图像编码方法,其特征在于,包括:
对所述当前编码图像进行间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测过程包括:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入码流,其中,所述编码信息包括目标插值滤波器的指示信息;所述目标插值滤波器的指示信息用于指示通过所述目标插值滤波器进行分像素插值得到所述当前编码图像块对应的分数像素位置的参考块。
6.根据权利要求5所述的方法,其特征在于,所述从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器,包括:
根据率失真代价准则从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器。
7.根据权利要求5所述的方法,其特征在于,所述对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,包括:
确定与所述当前编码图像块最优匹配的整像素参考图像块;
通过候选插值滤波器集合中每一个插值滤波器对所述整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;
在所述整像素参考图像块和所述N个分像素参考图像块中确定与所述当前编码图像块最优匹配的预测块;
基于所述预测块确定所述运动信息,其中,插值得到所述预测块的插值滤波器即为目标插值滤波器。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述候选插值滤波器集合包括通过如权利要求1-4任意权利要求所述插值滤波器的训练方法得到的第二插值滤波器。
9.根据权利要求8所述的方法,其特征在于,若所述目标滤波器为通过所述如权利要求
1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
10.根据权利要求9所述的方法,其特征在于,所述编码信息还包括训练得到的所述目标插值滤波器的滤波器参数;或者,所述编码信息还包括滤波器参数差值,所述滤波器参数差值为训练得到的用于当前图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
11.根据权利要求10所述的方法,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
12.一种视频图像编码方法,其特征在于,包括:
对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测过程包括:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入到码流,其中,若所述当前编码图像块的帧间预测模式是目标帧间预测模式,所述编码信息不包括所述目标插值滤波器的指示信息;若所述当前编码图像块的帧间预测模式为非目标帧间预测模式,所述编码信息包括所述目标插值滤波器的指示信息,所述目标插值滤波器的指示信息用于指示所述当前编码图像块采用所述目标插值滤波器进行分像素插值。
13.根据权利要求12所述的方法,其特征在于,所述从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器,包括:
根据率失真代价准则从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器。
14.根据权利要求12所述的方法,其特征在于,所述对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,包括:
确定与所述当前编码图像块最优匹配的整像素参考图像块;
通过候选插值滤波器集合中每一个插值滤波器对所述整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;
在所述整像素参考图像块和所述N个分像素参考图像块中确定与所述当前编码图像块最优匹配的预测块;
基于所述预测块确定所述运动信息,其中,插值得到所述预测块的插值滤波器即为目标插值滤波器。
15.根据权利要求12-14任一项所述的方法,其特征在于,所述候选插值滤波器集合包括通过如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器。
16.根据权利要求15所述的方法,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
17.根据权利要求16所述的方法,其特征在于,所述编码信息还包括训练得到的所述目标插值滤波器的滤波器参数;或者,所述编码信息还包括滤波器参数差值,所述滤波器参数差值为训练得到的用于当前编码的图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
18.根据权利要求17所述的方法,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
19.一种视频图像解码方法,其特征在于,包括:
从码流中解析出目标插值滤波器的指示信息;
获取当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据所述指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
基于所述当前解码图像块的预测块,重建所述当前解码图像块的重建块。
20.根据权利要求19所述的方法,其特征在于,所述获取当前解码图像块的运动信息,包括:
从码流中解析出所述当解码图像块的运动信息的索引;
基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动信息。
21.根据权利要求19所述的方法,其特征在于,所述获取当前解码图像块的运动信息,包括:
从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;
基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;
基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
22.根据权利要求19所述的方法,其特征在于,所述获取当前解码图像块的运动信息包括:
若所述当前解码图像块的帧间预测模式为合并模式(merge mode),获取在所述合并模式下合并到的在先解码的图像块的运动信息,即为当前解码图像块的运动信息。
23.根据权利要求20-22任一项所述的方法,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
24.根据权利要求23所述的方法,其特征在于,所述方法还包括:
从码流中解析出用于当前解码的图像单元的目标插值滤波器的滤波器参数;
通过所述用于当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
25.根据权利要求23所述的方法,其特征在于,所述方法还包括:
从码流中解析出滤波器参数差值,所述滤波器参数差值为用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于用于在先解码的图像单元的目标插值滤波器的滤波器参数用于当前解码的图像单元的目标插值滤波器的滤波器参数;
根据所述在先解码的图像单元的目标插值滤波器的滤波器参数和所述滤波器参数差值得到所述当前解码的图像单元的目标插值滤波器的滤波器参数;
通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
26.根据权利要求24或25所述的方法,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
27.一种视频图像解码方法,其特征在于,包括:
从码流中解析出当前解码图像块的用于指示所述当前解码图像块的帧间预测模式的信息;
获取所述当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
若所述当前图像块的帧间预测模式为非目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
基于所述当前解码图像块的预测块,对所述当前解码图像块进行重建。
28.根据权利要求27所述的方法,其特征在于,所述获取当前解码图像块的运动信息,包括:
从码流中解析出所述当解码图像块的运动信息的索引;
基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动信息。
29.根据权利要求27所述的方法,其特征在于,所述获取当前解码图像块的运动信息,包括:
从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;
基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动矢量预测值;
基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
30.根据权利要求27所述的方法,其特征在于,若所述当前图像块的帧间预测模式是目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:确定用于所述当前解码图像块的目标插值滤波器;通过所述目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
31.根据权利要求30所述的方法,其特征在于,所述目标帧间预测模式为合并模式,其中,
所述获取所述当前解码图像块的运动信息,包括:获取在所述合并模式下合并到的在先解码的图像块的运动信息;
所述确定用于所述当前解码图像块的目标插值滤波器,包括:确定在所述先解码的图像块在解码过程中使用的插值滤波器为所述用于所述当前解码图像块的目标插值滤波器;
或,确定所述用于所述当前解码图像块的目标插值滤波器为从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器。
32.根据权利要求27-31任一项所述的方法,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
33.根据权利要求27-32任一项所述的方法,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,所述方法还包括:
从码流中解析出用于当前解码的图像单元的目标插值滤波器的滤波器参数;
通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
34.根据权利要求27-32任一项所述的方法,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,所述方法还包括:
从码流中解析出滤波器参数差值,所述滤波器参数差值为用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于用于在先解码的图像单元的目标插值滤波器的滤波器参数用于当前解码的图像单元的目标插值滤波器的滤波器参数;
根据所述在先解码的图像单元的目标插值滤波器的滤波器参数和所述滤波器参数差值得到所述当前解码的图像单元的目标插值滤波器的滤波器参数;
通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
35.根据权利要求33或34所述的方法,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
36.一种插值滤波器训练装置,其特征在于,包括:
标签数据获取模块,用于通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
插值模块,用于将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
参数确定模块,用于通过最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数确定所述第二插值滤波器的滤波器参数。
37.一种插值滤波器训练装置,其特征在于,包括:
标签数据获取模块,用于通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
插值模块,用于将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
逆插值模块,用于将所述第二分像素图像经过翻转运算输入到第三插值滤波器中,得到第一图像,并将所述第一图像通过所述翻转运算的逆运算得到第二图像,其中,所述第二插值滤波器和所述第三插值滤波器共享滤波器参数;
参数确定模块,用于根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
38.根据权利要求37所述的装置,其特征在于,参数确定模块具体用于:通过最小化第三函数确定所述滤波器参数,其中,所述第三函数为用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数的加权求和。
39.根据权利要求37所述的装置,其特征在于,参数确定模块具体用于:通过交替最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
40.一种编码器,其特征在于,包括:
帧间预测单元,用于对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测单元包括滤波器选择单元,用于从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
熵编码单元,基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入码流,其中,所述编码信息包括目标插值滤波器的指示信息;所述目标插值滤波器的指示信息用于指示通过所述目标插值滤波器进行分像素插值得到所述当前编码图像块对应的分数像素位置的参考块。
41.根据权利要求40所述的编码器,其特征在于,所述滤波器选择单元具体用于根据率失真代价准则从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器。
42.根据权利要求40所述的编码器,其特征在于,所述帧间预测单元具体用于:
确定与所述当前编码图像块最优匹配的整像素参考图像块;
通过候选插值滤波器集合中每一个插值滤波器对所述整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;
在所述整像素参考图像块和所述N个分像素参考图像块中确定与所述当前编码图像块最优匹配的预测块;
基于所述预测块确定所述运动信息,其中,插值得到所述预测块的插值滤波器即为目标插值滤波器。
43.根据权利要求40-42任一项所述的编码器,其特征在于,所述候选插值滤波器集合包括通过如权利要求1-4任意权利要求所述插值滤波器的训练方法得到的第二插值滤波器。
44.根据权利要求43所述的编码器,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
45.根据权利要求44所述的编码器,其特征在于,所述编码信息还包括训练得到的所述目标插值滤波器的滤波器参数;或者,所述编码信息还包括滤波器参数差值,所述滤波器参数差值为训练得到的用于当前图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
46.根据权利要求45所述的编码器,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
47.一种编码器,其特征在于,包括:
帧间预测单元,用于对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测单元包括滤波器选择单元,所述滤波器选择单元用于:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
熵编码单元,用于基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入到码流,其中,若所述当前编码图像块的帧间预测模式是目标帧间预测模式,所述编码信息不包括所述目标插值滤波器的指示信息;若所述当前编码图像块的帧间预测模式为非目标帧间预测模式,所述编码信息包括所述目标插值滤波器的指示信息,所述目标插值滤波器的指示信息用于指示所述当前编码图像块采用所述目标插值滤波器进行分像素插值。
48.根据权利要求47所述的编码器,其特征在于,所述滤波器选择单元具体用于:
根据率失真代价准则从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器。
49.根据权利要求47所述的编码器,其特征在于,所述帧间预测单元具体用于:
确定与所述当前编码图像块最优匹配的整像素参考图像块;
通过候选插值滤波器集合中每一个插值滤波器对所述整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;
在所述整像素参考图像块和所述N个分像素参考图像块中确定与所述当前编码图像块最优匹配的预测块;
基于所述预测块确定所述运动信息,其中,插值得到所述预测块的插值滤波器即为目标插值滤波器。
50.根据权利要求47-49任一项所述的编码器,其特征在于,所述候选插值滤波器集合包括通过如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器。
51.根据权利要求50所述的编码器,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
52.根据权利要求51所述的编码器,其特征在于,所述编码信息还包括训练得到的所述目标插值滤波器的滤波器参数;或者,所述编码信息还包括滤波器参数差值,所述滤波器参数差值为训练得到的用于当前编码的图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
53.根据权利要求52所述的编码器,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
54.一种解码器,其特征在于,包括:
熵解码单元,用于从码流中解析出目标插值滤波器的指示信息;以及,获取当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
帧间预测单元,用于基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据所述指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
重构单元,用于基于所述当前解码图像块的预测块,重建所述当前解码图像块的重建块。
55.根据权利要求54所述的解码器,其特征在于,
所述熵解码单元具体用于从码流中解析出所述当解码图像块的运动信息的索引;
所述帧间预测单元,还用于基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动信息。
56.根据权利要求54所述的解码器,其特征在于,
所述熵解码单元具体用于:从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;
所述帧间预测单元还用于:基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;以及,基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
57.根据权利要求54所述的解码器,其特征在于,所述帧间预测单元还用于:
若所述当前解码图像块的帧间预测模式为合并模式(merge mode),获取在所述合并模式下合并到的在先解码的图像块的运动信息,即为当前解码图像块的运动信息。
58.根据权利要求54-57任一项所述的解码器,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练解码器得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
59.根据权利要求58所述的解码器,其特征在于,
所述熵解码单元还用于:从码流中解析出用于当前解码的图像单元的目标插值滤波器的滤波器参数;
所述解码器还包括配置单元,用于通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
60.根据权利要求58所述的解码器,其特征在于,所述熵解码单元还用于:从码流中解析出滤波器参数差值,所述滤波器参数差值为用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于用于在先解码的图像单元的目标插值滤波器的滤波器参数用于当前解码的图像单元的目标插值滤波器的滤波器参数;
所述解码器还包括:配置单元,用于根据所述在先解码的图像单元的目标插值滤波器的滤波器参数和所述滤波器参数差值得到所述当前解码的图像单元的目标插值滤波器的滤波器参数;以及,通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
61.根据权利要求59或60所述的解码器,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
62.一种解码器,其特征在于,包括:
熵解码单元,用于从码流中解析出当前解码图像块的用于指示所述当前解码图像块的帧间预测模式的信息;
帧间预测单元,用于获取所述当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;若所述当前图像块的帧间预测模式为非目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
重构单元,用于基于所述当前解码图像块的预测块,对所述当前解码图像块进行重建。
63.根据权利要求62所述的解码器,其特征在于,
所述熵解码单元还用于:从码流中解析出所述当解码图像块的运动信息的索引;
所述帧间预测单元还用于:基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动信息。
64.根据权利要求62所述的解码器,其特征在于,
所述熵解码单元还用于:从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;
所述帧间预测单元还用于:基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动矢量预测值;以及,基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
65.根据权利要求62所述的解码器,其特征在于,所述帧间预测单元还用于:若所述当前图像块的帧间预测模式是目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:确定用于所述当前解码图像块的目标插值滤波器;根据所述目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
66.根据权利要求65所述的解码器,其特征在于,所述目标帧间预测模式为合并模式,其中,
所述获取所述当前解码图像块的运动信息,包括:获取在所述合并模式下合并到的在先解码的图像块的运动信息;
所述确定用于所述当前解码图像块的目标插值滤波器,包括:确定在所述先解码的图像块在解码过程中使用的插值滤波器为所述用于所述当前解码图像块的目标插值滤波器;
或,确定所述用于所述当前解码图像块的目标插值滤波器为从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器。
67.根据权利要求62-66任一项所述的解码器,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,则:
所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
68.根据权利要求62-67任一项所述的解码器,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,所述熵解码单元还用于:从码流中解析出用于当前解码的图像单元的目标插值滤波器的滤波器参数;
所述解码器还包括:配置单元,用于通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
69.根据权利要求62-67任一项所述的解码器,其特征在于,若所述目标滤波器为通过所述如权利要求1-4任意权利要求所述的插值滤波器的训练方法得到的第二插值滤波器,所述熵解码单元还用于:从码流中解析出滤波器参数差值,所述滤波器参数差值为用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于用于在先解码的图像单元的目标插值滤波器的滤波器参数用于当前解码的图像单元的目标插值滤波器的滤波器参数;
所述解码器还包括:配置单元,所述配置单元用于根据所述在先解码的图像单元的目标插值滤波器的滤波器参数和所述滤波器参数差值得到所述当前解码的图像单元的目标插值滤波器的滤波器参数;以及,通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
70.根据权利要求68或69所述的解码器,其特征在于,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
71.一种插值滤波器的训练装置,其特征在于,包括存储器和处理器;所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如权利要求1-4任一项所述的插值滤波器训练方法。
72.一种编码装置,其特征在于,包括存储器和处理器;所述存储器用于存储程序代码;
所述处理器用于调用所述程序代码,以执行如权利要求5-19任一项所述的视频图像编码方法。
73.一种解码装置,其特征在于,包括存储器和处理器;所述存储器用于存储程序代码;
所述处理器用于调用所述程序代码,以执行如权利要求20-35任一项所述的视频图像解码方法。
74.一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求1-4任一项所述的插值滤波器训练方法。
75.一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求5-19任一项所述的视频图像编码方法。
76.一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求20-35任一项所述的视频图像解码方法。

说明书全文

插值滤波器的训练方法、装置及视频图像编解码方法、编解

码器

技术领域

[0001] 本申请涉及视频编解码技术领域,尤其涉及一种插值滤波器的训练方法、装置及视频图像编解码方法、编解码器

背景技术

[0002] 数字视频能可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式传输装置及其类似者。数字视频装置实施视频压缩技术,例如,在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频编码(AVC)定义的标准、视频编码标准H.265/高效视频编码(HEVC)标准以及此类标准的扩展中所描述的视频压缩技术。视频装置可通过实施此类视频压缩技术来更有效率地发射、接收、编码、解码和/或存储数字视频信息。
[0003] 视频压缩技术执行空间(图像内)预测和/或时间(图像间)预测以减少或去除视频序列中固有的冗余。对于基于的视频编码,视频条带(即,视频或视频帧的一部分)可分割成若干图像块,所述图像块也可被称作树块、编码单元(CU)和/或编码节点。使用关于同一图像中的相邻块中的参考样本的空间预测来编码图像的待帧内编码(I)条带中的图像块。图像的待帧间编码(P或B)条带中的图像块可使用相对于同一图像中的相邻块中的参考样本的空间预测或相对于其它参考图像中的参考样本的时间预测。图像可被称作帧,且参考图像可被称作参考帧。
[0004] 其中,包含高效视频编码(HEVC)标准在内的各种视频编码标准提出了用于图像块的预测性编码模式,即基于已经编码的视频数据块来预测当前待编码的块。在帧内预测模式中,基于与当前块在相同的图像中的一或多个先前经解码相邻块来预测当前块;在帧间预测模式中,基于不同图像中的已经解码块来预测当前块。
[0005] 然而,在帧间预测模式中,运动矢量指向分像素时,需要对最优匹配的参考块进行分像素插值,现有技术中通常使用固定系数的插值滤波器进行分像素插值,对于目前多样性和非平稳性的视频信号,预测的准确性差,导致视频图像的编解码性能差。发明内容
[0006] 本申请实施例提供一种插值滤波器的训练方法、装置及视频图像编解码方法、编解码器,可提高图像块的运动信息的预测准确性,从而提高编解码性能。
[0007] 第一方面,本申请实施例提供了一种插值滤波器的训练方法,包括:计算设备通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;进而,通过最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数确定所述第二插值滤波器的滤波器参数。
[0008] 可见,本申请实施例,以传统的插值滤波器插值得到的第一分像素图像为标签数据,来训练第二插值滤波器,使得训得到的第二插值滤波器可直接用于插值得到第一分数像素位置的像素值,标签数据更加准确,提升视频图像的编解码性能。而且,通过神经网络的第二插值滤波器为非线性滤波器在进行预测时,对于复杂视频信号预测的准确性差,可进一步提升视频图像的编解码性能。
[0009] 第二方面,本申请实施例还提供了一种插值滤波器的训练方法,包括:计算设备通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;将所述第二分像素图像经过翻转运算输入到第三插值滤波器中,得到第一图像,并将所述第一图像通过所述翻转运算的逆运算得到第二图像,其中,所述第二插值滤波器和所述第三插值滤波器共享滤波器参数;进而,根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0010] 可见,本发明实施例通过传统插值滤波器对样本图像进行分像素插值,得到第一分像素图像,并作为标签数据,利用分像素的可逆性原理,通过同时最小化用于表示第一分像素图像与第二分像素图像的差值的第一函数和用于表示样本图像与第二图像的差值的第二函数来确定所述滤波器参数,实现了通过监督样本图像来约束第二插值滤波器,提高第二插值滤波器进行分像素插值的准确性,进而提升视频图像的编解码性能。
[0011] 可选地,计算设备根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数的可以包括但不限于以下两种实现方式:
[0012] 第一种实现方式:计算设备通过最小化第三函数确定所述滤波器参数,其中,所述第三函数为用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数的加权求和。
[0013] 第二种实现方式:通过交替最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0014] 应理解,第一方面和第二方面所述的计算设备可以是编码设备或压缩设备,上述设备可以是计算机、服务器或终端(例如,手机、平板电脑等)等具有数据处理功能的设备。
[0015] 第三方面,本申请实施例还提供了一种视频图像编码方法,包括:
[0016] 编码器对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测过程包括:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0017] 基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入码流,其中,所述编码信息包括目标插值滤波器的指示信息;所述目标插值滤波器的指示信息用于指示通过所述目标插值滤波器进行分像素插值得到所述当前编码图像块对应的分数像素位置的参考块。
[0018] 第四方面,本申请实施例还提供了一种视频图像编码方法,包括:
[0019] 编码器对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测过程包括:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0020] 基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入到码流,其中,若所述当前编码图像块的帧间预测模式是目标帧间预测模式,所述编码信息不包括所述目标插值滤波器的指示信息;若所述当前编码图像块的帧间预测模式为非目标帧间预测模式,所述编码信息包括所述目标插值滤波器的指示信息,所述目标插值滤波器的指示信息用于指示所述当前编码图像块采用所述目标插值滤波器进行分像素插值。
[0021] 可见,本申请实施例中,编码器在进行帧间预测过程中可以根据当前编码图像块的内容选择插值滤波器进行插值运算,使得得到的预测块预测准确性更高的预测块,减少码流,提高视频图像的压缩率。
[0022] 应理解,第三方面或第四方面所述的编码器还可以是包括该编码器的编码设备,该编码设备可以是计算机、服务器或终端(例如,手机、平板电脑等)等具有数据处理功能的设备。
[0023] 结合第三方面或第四方面,在本申请实施例的一种可能的实现中,编码器从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器的一种实现方式可以是:编码器根据率失真代价准则从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器。
[0024] 可见,编码器在进行帧间预测过程中可以根据当前编码图像块的内容选择率失真代价小的插值滤波器进行插值运算,提高预测准确性,减少码流,提高视频图像的压缩率。
[0025] 结合第三方面或第四方面,在本申请实施例的一种可能的实现中,编码器对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息的一种实现方式可以是:
[0026] 编码器确定与所述当前编码图像块最优匹配的整像素参考图像块;
[0027] 通过候选插值滤波器集合中每一个插值滤波器对所述整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;
[0028] 在所述整像素参考图像块和所述N个分像素参考图像块中确定与所述当前编码图像块最优匹配的预测块;
[0029] 基于所述预测块确定所述运动信息,其中,插值得到所述预测块的插值滤波器即为目标插值滤波器。
[0030] 可见,编码器在进行帧间预测过程中可以选择失真最小的参考块对应的插值滤波器进行插值,以减少码流,提高视频图像的压缩率。
[0031] 结合第三方面或第四方面,在本申请实施例的一种可能的实现中,所述候选插值滤波器集合包括通过第一方面或第二方面所述的任一种插值滤波器的训练方法得到的第二插值滤波器。
[0032] 可选地,若所述目标滤波器为通过第一方面或第二方面所述的任一种插值滤波器的训练方法得到的第二插值滤波器,则:所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
[0033] 进一步地,所述编码信息还包括训练得到的所述目标插值滤波器的滤波器参数;或者,所述编码信息还包括滤波器参数差值,所述滤波器参数差值为训练得到的用于当前图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
[0034] 可见,编码器可以对候选插值滤波器集合中的第二插值滤波器进行在线训练,以使插值滤波器可以根据当前编码的图像单元的内容进行实时调整,提高预测准确性。
[0035] 可选地,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
[0036] 第五方面,本申请实施例还提供了一种视频图像解码方法,包括:
[0037] 解码器从码流中解析出目标插值滤波器的指示信息;
[0038] 获取当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0039] 基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据所述指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
[0040] 基于所述当前解码图像块的预测块,重建所述当前解码图像块的重建块。
[0041] 第六方面,本申请实施例还提供了一种视频图像解码方法,包括:
[0042] 解码器从码流中解析出当前解码图像块的用于指示所述当前解码图像块的帧间预测模式的信息;
[0043] 获取所述当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0044] 若所述当前图像块的帧间预测模式为非目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
[0045] 基于所述当前解码图像块的预测块,对所述当前解码图像块进行重建。
[0046] 可选地,若所述当前图像块的帧间预测模式是目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:确定用于所述当前解码图像块的目标插值滤波器;通过所述目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
[0047] 应理解,若所述当前图像块的帧间预测模式是目标帧间预测模式,所确定用于所述当前解码图像块的目标插值滤波器,具体包括:确定在所述先解码的图像块在解码过程中使用的插值滤波器为所述用于所述当前解码图像块的目标插值滤波器;或,确定所述用于所述当前解码图像块的目标插值滤波器为从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器。
[0048] 可见,本申请实施例中,解码器在进行帧间预测过程中选择目标帧间模式的指示信息指示的插值滤波器进行分像素插值,以得到当前解码图像块的预测块,实现了解码器根据当前编码图像块的内容选择插值滤波器进行插值运算,使得得到的预测块预测准确性更高的预测块,减少码流,提高视频图像的压缩率。
[0049] 结合第五方面或第六方面,在本申请实施例的一种可能的实现中,解码器获取当前解码图像块的运动信息可以包括但不限于以下三种实施方式:
[0050] 第一实施方式:在非目标帧间预测模式(比如非合并模式)下,解码器可以从码流中解析出所述当解码图像块的运动信息的索引;进而,基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动信息。
[0051] 第二实施方式:在非目标帧间预测模式(比如非合并模式)下,解码器可以从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;进而,基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
[0052] 第三实施方式:在目标帧间预测模式(比如合并模式)下,解码器若所述当前解码图像块的帧间预测模式为合并模式(merge mode),获取在所述合并模式下合并到的在先解码的图像块的运动信息,即为当前解码图像块的运动信息。
[0053] 结合第五方面或第六方面,在本申请实施例的一种可能的实现中,若所述目标滤波器为通过第一方面或第二方面所述的插值滤波器训练方法得到的第二插值滤波器,则:
[0054] 所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据第一方面或第二方面所述的插值滤波器训练方法得到的滤波器参数。
[0055] 可选地,若所述目标滤波器为通过第一方面或第二方面所述的插值滤波器训练方法得到第二插值滤波器,该方法还可以包括:
[0056] 从码流中解析出用于当前解码的图像单元的目标插值滤波器的滤波器参数;
[0057] 在根据目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块之前,该方法还可以包括:通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
[0058] 可选地,若所述目标滤波器为通过第一方面或第二方面所述的插值滤波器训练方法得到第二插值滤波器,该方法还可以包括:
[0059] 从码流中解析出滤波器参数差值,所述滤波器参数差值为用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于用于在先解码的图像单元的目标插值滤波器的滤波器参数用于当前解码的图像单元的目标插值滤波器的滤波器参数;
[0060] 根据所述在先解码的图像单元的目标插值滤波器的滤波器参数和所述滤波器参数差值得到所述当前解码的图像单元的目标插值滤波器的滤波器参数;
[0061] 通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
[0062] 可选地,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
[0063] 第七方面,本申请实施例还提供了一种插值滤波器的训练装置,包括用于实施第一方面的任意一种方法的若干个功能单元。举例来说,插值滤波器的训练装置可以包括:
[0064] 标签数据获取模块,用于通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
[0065] 插值模块,用于将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
[0066] 参数确定模块,用于通过最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数确定所述第二插值滤波器的滤波器参数。
[0067] 第八方面,本申请实施例还提供了一种插值滤波器的训练装置,包括用于实施第二方面的任意一种方法的若干个功能单元。举例来说,插值滤波器的训练装置可以包括:
[0068] 标签数据获取模块,用于通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
[0069] 插值模块,用于将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
[0070] 逆插值模块,用于将所述第二分像素图像经过翻转运算输入到第三插值滤波器中,得到第一图像,并将所述第一图像通过所述翻转运算的逆运算得到第二图像,其中,所述第二插值滤波器和所述第三插值滤波器共享滤波器参数;
[0071] 参数确定模块,用于根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0072] 第九方面,本申请实施例还提供了一种编码器,包括用于实施第三方面的任意一种方法的若干个功能单元。举例来说,编码器可以包括:
[0073] 帧间预测单元,用于对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测单元包括滤波器选择单元,用于从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0074] 熵编码单元,基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入码流,其中,所述编码信息包括目标插值滤波器的指示信息;所述目标插值滤波器的指示信息用于指示通过所述目标插值滤波器进行分像素插值得到所述当前编码图像块对应的分数像素位置的参考块。
[0075] 第十方面,本申请实施例还提供了一种编码器,包括用于实施第四方面的任意一种方法的若干个功能单元。举例来说,编码器可以包括:
[0076] 帧间预测单元,用于对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测单元包括滤波器选择单元,所述滤波器选择单元用于:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0077] 熵编码单元,用于基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入到码流,其中,若所述当前编码图像块的帧间预测模式是目标帧间预测模式,所述编码信息不包括所述目标插值滤波器的指示信息;若所述当前编码图像块的帧间预测模式为非目标帧间预测模式,所述编码信息包括所述目标插值滤波器的指示信息,所述目标插值滤波器的指示信息用于指示所述当前编码图像块采用所述目标插值滤波器进行分像素插值。
[0078] 第十一方面,本申请实施例还提供了一种解码器,包括用于实施第五方面的任意一种方法的若干个功能单元。举例来说,编码器可以包括:
[0079] 熵解码单元,用于从码流中解析出目标插值滤波器的指示信息;以及,获取当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0080] 帧间预测单元,用于基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据所述指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
[0081] 重构单元,用于基于所述当前解码图像块的预测块,重建所述当前解码图像块的重建块。
[0082] 第十二方面,本申请实施例还提供了一种解码器,包括用于实施第六方面的任意一种方法的若干个功能单元。举例来说,编码器可以包括:
[0083] 熵解码单元,用于从码流中解析出当前解码图像块的用于指示所述当前解码图像块的帧间预测模式的信息;
[0084] 帧间预测单元,用于获取所述当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;若所述当前图像块的帧间预测模式为非目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
[0085] 重构单元,用于基于所述当前解码图像块的预测块,对所述当前解码图像块进行重建。
[0086] 第十三方面,本申请实施例还提供了一种插值滤波器的训练装置,包括存储器和处理器;所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如第一方面或第二方面所述的任意一种插值滤波器训练方法的部分或全部步骤。
[0087] 例如,执行:通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
[0088] 进而,通过最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数确定所述第二插值滤波器的滤波器参数。
[0089] 又例如,执行:通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;将所述第二分像素图像经过翻转运算输入到第三插值滤波器中,得到第一图像,并将所述第一图像通过所述翻转运算的逆运算得到第二图像,其中,所述第二插值滤波器和所述第三插值滤波器共享滤波器参数;进而,根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0090] 可选地,处理器执行所述根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数的可以包括但不限于以下两种实现方式:
[0091] 第一种实现方式:通过最小化第三函数确定所述滤波器参数,其中,所述第三函数为用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数的加权求和。
[0092] 第二种实现方式:通过交替最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0093] 应理解,第一方面和第二方面所述的插值滤波器的训练装置可以是编码设备或压缩设备,上述设备可以是计算机、服务器或终端(例如,手机、平板电脑等)等具有数据处理功能的设备。
[0094] 第十四方面,本申请实施例还提供了一种编码装置,包括存储器和处理器;所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如第三方面或第四方面所述的任意一种视频图像编码方法的部分或全部步骤。
[0095] 例如,执行:对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测过程包括:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0096] 基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入码流,其中,所述编码信息包括目标插值滤波器的指示信息;所述目标插值滤波器的指示信息用于指示通过所述目标插值滤波器进行分像素插值得到所述当前编码图像块对应的分数像素位置的参考块。
[0097] 又例如,执行:对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测过程包括:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0098] 基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入到码流,其中,若所述当前编码图像块的帧间预测模式是目标帧间预测模式,所述编码信息不包括所述目标插值滤波器的指示信息;若所述当前编码图像块的帧间预测模式为非目标帧间预测模式,所述编码信息包括所述目标插值滤波器的指示信息,所述目标插值滤波器的指示信息用于指示所述当前编码图像块采用所述目标插值滤波器进行分像素插值。
[0099] 应理解,第十四方面所述的编码器还可以是包括该编码器的编码设备,该编码设备可以是计算机、服务器或终端(例如,手机、平板电脑等)等具有数据处理功能的设备。
[0100] 结合第十四方面,在本申请实施例的一种可能的实现中,处理器从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器的一种实现方式可以是:编码器根据率失真代价准则从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器。
[0101] 结合第十四方面,在本申请实施例的一种可能的实现中,处理器对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息的一种实现方式可以是:
[0102] 确定与所述当前编码图像块最优匹配的整像素参考图像块;
[0103] 通过候选插值滤波器集合中每一个插值滤波器对所述整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;
[0104] 在所述整像素参考图像块和所述N个分像素参考图像块中确定与所述当前编码图像块最优匹配的预测块;
[0105] 基于所述预测块确定所述运动信息,其中,插值得到所述预测块的插值滤波器即为目标插值滤波器。
[0106] 结合第十四方面,在本申请实施例的一种可能的实现中,所述候选插值滤波器集合包括通过第一方面或第二方面所述的任一种插值滤波器的训练方法得到的第二插值滤波器。
[0107] 可选地,若所述目标滤波器为通过第一方面或第二方面所述的任一种插值滤波器的训练方法得到的第二插值滤波器,则:所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据权利要求1-4所述的插值滤波器的训练方法得到的滤波器参数。
[0108] 进一步地,所述编码信息还包括训练得到的所述目标插值滤波器的滤波器参数;或者,所述编码信息还包括滤波器参数差值,所述滤波器参数差值为训练得到的用于当前图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
[0109] 可见,处理器可以对候选插值滤波器集合中的第二插值滤波器进行在线训练,以使插值滤波器可以根据当前编码的图像单元的内容进行实时调整,提高预测准确性。
[0110] 可选地,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
[0111] 第十五方面,本申请实施例还提供了一种解码装置,包括存储器和处理器;所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如第五方面或第六方面所述的任意一种视频图像解码方法的部分或全部步骤。
[0112] 例如,执行:
[0113] 从码流中解析出目标插值滤波器的指示信息;
[0114] 获取当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0115] 基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据所述指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
[0116] 基于所述当前解码图像块的预测块,重建所述当前解码图像块的重建块。
[0117] 又例如,执行:
[0118] 从码流中解析出当前解码图像块的用于指示所述当前解码图像块的帧间预测模式的信息;
[0119] 获取所述当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0120] 若所述当前图像块的帧间预测模式为非目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
[0121] 基于所述当前解码图像块的预测块,对所述当前解码图像块进行重建。
[0122] 可选地,若所述当前图像块的帧间预测模式是目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:确定用于所述当前解码图像块的目标插值滤波器;通过所述目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
[0123] 应理解,若所述当前图像块的帧间预测模式是目标帧间预测模式,处理器确定用于所述当前解码图像块的目标插值滤波器,具体包括:确定在所述先解码的图像块在解码过程中使用的插值滤波器为所述用于所述当前解码图像块的目标插值滤波器;或,确定所述用于所述当前解码图像块的目标插值滤波器为从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器。
[0124] 结合第十五方面,在本申请实施例的一种可能的实现中,处理器获取当前解码图像块的运动信息可以包括但不限于以下三种实施方式:
[0125] 第一实施方式:在非目标帧间预测模式(比如非合并模式)下,处理器可以从码流中解析出所述当解码图像块的运动信息的索引;进而,基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动信息。
[0126] 第二实施方式:在非目标帧间预测模式(比如非合并模式)下,处理器可以从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;进而,基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
[0127] 第三实施方式:在目标帧间预测模式(比如合并模式)下,处理器若所述当前解码图像块的帧间预测模式为合并模式(merge mode),获取在所述合并模式下合并到的在先解码的图像块的运动信息,即为当前解码图像块的运动信息。
[0128] 结合第十五方面,在本申请实施例的一种可能的实现中,若所述目标滤波器为通过第一方面或第二方面所述的插值滤波器训练方法得到的第二插值滤波器,则:
[0129] 所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据第一方面或第二方面所述的插值滤波器训练方法得到的滤波器参数。
[0130] 可选地,若所述目标滤波器为通过第一方面或第二方面所述的插值滤波器训练方法得到第二插值滤波器,该处理器还可以执行:
[0131] 从码流中解析出用于当前解码的图像单元的目标插值滤波器的滤波器参数;
[0132] 在根据目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块之前,该方法还可以包括:通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
[0133] 可选地,若所述目标滤波器为通过第一方面或第二方面所述的插值滤波器训练方法得到第二插值滤波器,该处理器还可以执行:
[0134] 从码流中解析出滤波器参数差值,所述滤波器参数差值为用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于用于在先解码的图像单元的目标插值滤波器的滤波器参数用于当前解码的图像单元的目标插值滤波器的滤波器参数;
[0135] 根据所述在先解码的图像单元的目标插值滤波器的滤波器参数和所述滤波器参数差值得到所述当前解码的图像单元的目标插值滤波器的滤波器参数;
[0136] 通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
[0137] 可选地,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
[0138] 第十六方面,本申请实施例还提供了一种计算机可读存储介质,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如第一方面或第二方面所述的任意一种插值滤波器训练方法的部分或全部步骤。
[0139] 第十七方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面或第二方面所述的任意一种插值滤波器训练方法的部分或全部步骤。
[0140] 第十八方面,本申请实施例还提供了一种计算机可读存储介质,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如第三方面或第四方面所述的任意一种视频图像编码方法的部分或全部步骤。
[0141] 第十九方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第三方面或第四方面所述的任意一种视频图像编码方法的部分或全部步骤。
[0142] 第二十方面,本申请实施例还提供了一种计算机可读存储介质,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如第五方面或第六方面所述的任意一种视频图像解码方法的部分或全部步骤。
[0143] 第二十一方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第五方面或第六方面所述的任意一种视频图像解码方法的部分或全部步骤。附图说明
[0144] 为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
[0145] 图1为本申请实施例中一种视频编码及解码系统的示意性框图
[0146] 图2为本申请实施例中一种编码器的示意性框图;
[0147] 图3为本申请实施例中一种解码器的示意性框图;
[0148] 图4为本申请实施例中一种整像素和分像素的位置示意性说明图;
[0149] 图5为本申请实施例中分像素插值可逆性原理的示意性说明图;
[0150] 图6A为本申请实施例中一种插值滤波器的训练方法的示意性流程图
[0151] 图6B为本申请实施例中一种插值滤波器的训练训练流程的示意性说明图;
[0152] 图6C为本申请实施例中另一种插值滤波器的训练方法的示意性流程图;
[0153] 图6D为本申请实施例中另一种插值滤波器的训练训练流程的示意性说明图;
[0154] 图7为本申请实施例中一种视频图像编码方法的示意性流程图;
[0155] 图8为本申请实施例中另一种视频图像编码方法的示意性流程图;
[0156] 图9为本申请实施例中一种视频图像解码方法的示意性流程图;
[0157] 图10为本申请实施例中另一种视频图像解码方法的示意性流程图;
[0158] 图11为本申请实施例中又一种视频图像解码方法的示意性流程图;
[0159] 图12是本发明实施例提供的一种插值滤波器训练装置的示意性框图;
[0160] 图13是本发明实施例提供的一种插值滤波器训练装置的示意性框图;
[0161] 图14是本发明实施例提供的另一种插值滤波器训练装置的示意性框图;
[0162] 图15为本申请实施例中另一种编码器的示意性框图;
[0163] 图16为本申请实施例中另一种解码器的示意性框图;
[0164] 图17为本申请实施例中一种编码设备或解码设备的示意性框图。

具体实施方式

[0165] 以下描述中,参考形成本公开一部分并以说明之方式示出本发明实施例的具体方面或可使用本发明实施例的具体方面的附图。应理解,本发明实施例可在其它方面中使用,并可包括附图中未描绘的结构或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。
[0166] 例如,应理解,结合所描述方法的揭示内容可以同样适用于用于执行所述方法的对应设备或系统,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包含如功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元,其中每个都执行多个步骤中的一个或多个),即使附图中未明确描述或说明这种一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元描述具体装置,则对应的方法可以包含一个步骤来执行一个或多个单元的功能性(例如,一个步骤执行一个或多个单元的功能性,或多个步骤,其中每个执行多个单元中一个或多个单元的功能性),即使附图中未明确描述或说明这种一个或多个步骤。进一步,应理解的是,除非另外明确提出,本文中所描述的各示例性实施例和/或方面的特征可以相互组合。
[0167] 视频编码通常是指处理形成视频或视频序列的图片序列。在视频编码领域,术语“图片 (picture)”、“帧(frame)”或“图像(image)”可以用作同义词。本申请(或本公开) 中使用的视频编码表示视频编码或视频解码。视频编码在源侧执行,通常包括处理(例如,通过压缩)原始视频图片以减少表示该视频图片所需的数据量(从而更高效地存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重构视频图片。实施例涉及的视频图片(或总称为图片,下文将进行解释)“编码”应理解为涉及视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码(编码和解码)。
[0168] 无损视频编码情况下,可以重构原始视频图片,即经重构视频图片具有与原始视频图片相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频编码情况下,通过例如量化执行进一步压缩,来减少表示视频图片所需的数据量,而解码器侧无法完全重构视频图片,即经重构视频图片的质量相比原始视频图片的质量较低或较差。
[0169] H.261的几个视频编码标准属于“有损混合型视频编解码”(即,将样本域中的空间和时间预测与变换域中用于应用量化的2D变换编码结合)。视频序列的每个图片通常分割成不重叠的块集合,通常在块层级上进行编码。换句话说,编码器侧通常在块(视频块)层级处理亦即编码视频,例如,通过空间(图片内)预测和时间(图片间)预测来产生预测块,从当前块(当前处理或待处理的块)减去预测块以获取残差块,在变换域变换残差块并量化残差块,以减少待传输(压缩)的数据量,而解码器侧将相对于编码器的逆处理部分应用于经编码或经压缩块,以重构用于表示的当前块。另外,编码器复制解码器处理循环,使得编码器和解码器生成相同的预测(例如帧内预测和帧间预测)和/或重构,用于处理亦即编码后续块。
[0170] 如本文中所用,术语“块”、“图像块”“图片块”可以用作同义词,可以为图片或帧的一部分。为便于描述,参考由ITU-T视频编码专家组(Video Coding Experts Group,VCEG) 和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合工作组 (Joint Collaboration Team on Video Coding,JCT-VC)开发的高效视频编码(High-Efficiency Video Coding,HEVC)或者ITU-T H.266/下一代视频编码(Versatile video coding,VVC)的参考软件描述本发明实施例。本领域普通技术人员理解本发明实施例不限于HEVC或VVC。可以指CU、PU和TU。在HEVC中,通过使用表示为编码树的四叉树结构将CTU拆分为多个CU。在CU层级处作出是否使用图片间(时间)或图片内(空间)预测对图片区域进行编码的决策。每个CU可以根据PU拆分类型进一步拆分为一个、两个或四个PU。一个PU内应用相同的预测过程,并在PU基础上将相关信息传输到解码器。在通过基于PU拆分类型应用预测过程获取残差块之后,可以根据类似于用于CU的编码树的其它四叉树结构将CU分割成变换单元(transform unit,TU)。在视频压缩技术最新的发展中,使用四叉树和二叉树 (Quad-tree and binary tree,QTBT)分割帧来分割编码块。在QTBT块结构中,CU可以为正方形或矩形形状。作为一种示例,编码树单元(coding tree unit,CTU)首先由四叉树结构分割。四叉树叶节点进一步由二进制树结构分割。二进制树叶节点称为编码单元(coding unit, CU),所述分段用于预测和变换处理,无需其它任何分割。这表示CU、PU和TU在QTBT 编码块结构中的块大小相同。同时,还提出与QTBT块结构一起使用多重分割,例如三叉树分割。
[0171] 如本文中所用,术语“编码图像块”是应用在编码端的图像块,同理,“解码图像块”是应用在解码端的图像块。“当前编码图像块”也可以表示为“当前待编码图像块”或“当前编码块”等,“当前解码图像块”也可以表示为“当前待解码图像块”或“当前解码块”等。“参考块”也可以表示为“参考图像块”;“预测块”可以表示为“预测图像块”,在一些场景中也可以表示为“最优匹配块”或“匹配块”等。
[0172] 如本文中所用,“第一插值滤波器”为现有技术中提供的插值滤波器,可以是固定系数的插值滤波器,例如,双线性插值滤波器、双三次插值滤波器等;也可以是内容自适应插值滤波器或其他种类的插值滤波器。在H.264/AVC中,采用6抽头的有限相应滤波器来产生半像素样值,采用简单的双线性插值来产生四分之一像素。HEVC中的插值滤波器相比于H.264/AVC做了很多改进,使用8抽头滤波器来产生半像素,而四分之一像素则采用7抽头的插值滤波器。为了应对自然视频的非平稳特性,研究人员提出了内容自适应插值滤波器。典型的自适应插值滤波器在编码端根据运动补偿预测的误差估计滤波器系数,然后将滤波器系数编码写入码流。为了减少插值滤波器的复杂度,可分离的自适应插值滤波器被提出,可以实现在基本保持编码性能的情况下明显降低复杂度。
[0173] 如本文中所用,“第二插值滤波器”、“第三插值滤波器”为基于本申请实施例提供的插值滤波器训练方法得到的插值滤波器,具体可参见插值滤波器训练方法实施例中的相关描述。可以理解,该第二插值滤波器和/或第三插值滤波器可以是支持向量机(support vector machine,SVM)、神经网络(neural network,NN)、卷积神经网络(convolutional neural network, CNN)或其他形式,对此,本申请实施例不作限定。
[0174] 如本文中所用,“目标插值滤波器”为候选滤波器集合中被选定的插值滤波器。本文中,“候选插值滤波器集合”可以包括一个或多个插值滤波器,该多个插值滤波器的种类不同,可以包括但不限于本文中的第二插值滤波器。在本申请的另一种实现中,候选滤波器集合包括的多个插值滤波器可以不包括第二插值滤波器。
[0175] 运动信息可以包括运动矢量,运动矢量是帧间预测过程中的一个重要参数,其表示先前已编码图像块相对于该当前编码图像块的空间位移。可以使用运动估算的方法,诸如运动搜索来获取运动矢量。初期的帧间预测技术,将表示运动矢量的位包括在编码的位流中,以允许解码器再现预测块,进而得到重建块。为了进一步的改善编码效率,后来又提出使用参考运动矢量差分地编码运动矢量,即取代编码运动矢量整体,而仅仅编码运动矢量和参考运动矢量之间的差值。在有些情况下,参考运动矢量可以是从在视频流中先前使用的运动矢量中选择出来的,选择先前使用的运动矢量编码当前的运动矢量可以进一步减少包括在编码的视频位流中的位数。
[0176] 以下基于图1到3描述编码器100、解码器200和编码系统300的实施例。
[0177] 图1为绘示示例性编码系统300的概念性或示意性框图,例如,可以利用本申请(本公开)技术的视频编码系统300。视频编码系统300的编码器100(例如,视频编码器100)和解码器200(例如,视频解码器200)表示可用于根据本申请中描述的各种实例执行用于视频图像编码或解码的技术的设备实例。如图1中所示,编码系统300包括源设备310,用于向例如解码经编码数据330的目的地设备320提供经编码数据330,例如,经编码图片330。
[0178] 源设备310包括编码器100,另外亦即可选地,可以包括图片源312,例如图片预处理单元314的预处理单元314,以及通信接口或通信单元318。
[0179] 图片源312可以包括或可以为任何类别的图片捕获设备,用于例如捕获现实世界图片,和/或任何类别的图片或评论(对于屏幕内容编码,屏幕上的一些文字也认为是待编码的图片或图像的一部分)生成设备,例如,用于生成计算机动画图片的计算机图形处理器,或用于获取和/或提供现实世界图片、计算机动画图片(例如,屏幕内容、虚拟现实(virtual reality, VR)图片)的任何类别设备,和/或其任何组合(例如,实景(augmented reality,AR)图片)。
[0180] (数字)图片为或者可以视为具有亮度值的采样点的二维阵列或矩阵。阵列中的采样点也可以称为像素(pixel)(像素(picture element)的简称)或像素(pel)。阵列或图片在平和垂直方向(或轴线)上的采样点数目定义图片的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即图片可以表示为或包含三个采样阵列。RBG格式或颜色空间中,图片包括对应的红色、绿色及蓝色采样阵列。但是,在视频编码中,每个像素通常以亮度/色度格式或颜色空间表示,例如,YCbCr,包括Y指示的亮度分量(有时也可以用L指示)以及Cb 和Cr指示的两个色度分量。亮度(简写为luma)分量Y表示亮度或灰度水平强度(例如,在灰度等级图片中两者相同),而两个色度(简写为chroma)分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图片包括亮度采样值(Y)的亮度采样阵列,和色度值(Cb 和Cr)的两个色度采样阵列。RGB格式的图片可以转换或变换为YCbCr格式,反之亦然,该过程也称为色彩变换或转换。如果图片是黑贝的,该图片可以只包括亮度采样阵列。
[0181] 图片源312(例如,视频源312)可以为,例如用于捕获图片的相机,例如图片存储器的存储器,包括或存储先前捕获或产生的图片,和/或获取或接收图片的任何类别的(内部或外部)接口。相机可以为,例如,本地的或集成在源设备中的集成相机,存储器可为本地的或例如集成在源设备中的集成存储器。接口可以为,例如,从外部视频源接收图片的外部接口,外部视频源例如为外部图片捕获设备,比如相机、外部存储器或外部图片生成设备,外部图片生成设备例如为外部计算机图形处理器、计算机或服务器。接口可以为根据任何专有或标准化接口协议的任何类别的接口,例如有线或无线接口、光接口。获取图片数据313的接口可以是与通信接口318相同的接口或是通信接口318的一部分。
[0182] 区别于预处理单元314和预处理单元314执行的处理,图片或图片数据313(例如,视频数据312)也可以称为原始图片或原始图片数据313。
[0183] 预处理单元314用于接收(原始)图片数据313并对图片数据313执行预处理,以获取经预处理的图片315或经预处理的图片数据315。例如,预处理单元314执行的预处理可以包括整修、色彩格式转换(例如,从RGB转换为YCbCr)、调色或去噪。可以理解,预处理单元314可以是可选组件。
[0184] 编码器100(例如,视频编码器100)用于接收经预处理的图片数据315并提供经编码图片数据171(下文将进一步描述细节,例如,基于图2、图7或图8)。在一个实例中,编码器100可以用于执行视频图像编码方法,在另一实施例中,编码器100还可以用于插值滤波器的训练。
[0185] 源设备310的通信接口318可以用于接收经编码图片数据171并传输至其它设备,例如,目的地设备320或任何其它设备,以用于存储或直接重构,或用于在对应地存储经编码数据 330和/或传输经编码数据330至其它设备之前处理经编码图片数据171,其它设备例如为目的地设备320或任何其它用于解码或存储的设备。
[0186] 目的地设备320包括解码器200(例如,视频解码器200),另外亦即可选地,可以包括通信接口或通信单元322、后处理单元326和显示设备328。
[0187] 目的地设备320的通信接口322用于例如,直接从源设备310或任何其它源接收经编码图片数据171或经编码数据330,任何其它源例如为存储设备,存储设备例如为经编码图片数据存储设备。
[0188] 通信接口318和通信接口322可以用于藉由源设备310和目的地设备320之间的直接通信链路或藉由任何类别的网络传输或接收经编码图片数据171或经编码数据330,直接通信链路例如为直接有线或无线连接,任何类别的网络例如为有线或无线网络或其任何组合,或任何类别的私网和公网,或其任何组合。
[0189] 通信接口318可以例如用于将经编码图片数据171封装成合适的格式,例如包,以在通信链路或通信网络上传输。
[0190] 形成通信接口318的对应部分的通信接口322可以例如用于解封装经编码数据330,以获取经编码图片数据171。
[0191] 通信接口318和通信接口322都可以配置为单向通信接口,如图1中用于经编码图片数据330的从源设备310指向目的地设备320的箭头所指示,或配置为双向通信接口,以及可以用于例如发送和接收消息来建立连接、确认和交换任何其它与通信链路和/或例如经编码图片数据传输的数据传输有关的信息。
[0192] 解码器200用于接收经编码图片数据171并提供经解码图片数据231或经解码图片231 (下文将进一步描述细节,例如,基于图3、图9、图10或图11)。在一个实例中,解码器 
200可以用于执行执行下文描述的视频图像解码方法。
[0193] 目的地设备320的后处理器326用于后处理经解码图片数据231(也称为经重构图片数据),例如,经解码图片131,以获取经后处理图片数据327,例如,经后处理图片327。后处理单元326执行的后处理可以包括,例如,色彩格式转换(例如,从YCbCr转换为RGB)、调色、整修或重采样,或任何其它处理,用于例如准备经解码图片数据231以由显示设备328 显示。
[0194] 目的地设备320的显示设备328用于接收经后处理图片数据327以向例如用户或观看者显示图片。显示设备328可以为或可以包括任何类别的用于呈现经重构图片的显示器,例如,集成的或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquid crystal display, LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微LED显示器、基液晶(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任何类别的其它显示器。
[0195] 虽然图1将源设备310和目的地设备320绘示为单独的设备,但设备实施例也可以同时包括源设备310和目的地设备320或同时包括两者的功能性,即源设备310或对应的功能性以及目的地设备320或对应的功能性。在此类实施例中,可以使用相同硬件和/或软件,或使用单独的硬件和/或软件,或其任何组合来实施源设备310或对应的功能性以及目的地设备320 或对应的功能性。
[0196] 本领域技术人员基于描述明显可知,不同单元的功能性或图1所示的源设备310和/或目的地设备320的功能性的存在和(准确)划分可能根据实际设备和应用有所不同。
[0197] 编码器100(例如,视频编码器100)和解码器200(例如,视频解码器200)都可以实施为各种合适电路中的任一个,例如,一个或多个微处理器数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件实施所述技术,则设备可将软件的指令存储于合适的非暂时性计算机可读存储介质中,且可使用一或多个处理器以硬件执行指令从而执行本公开的技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可视为一或多个处理器。视频编码器100和视频解码器200中的每一个可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一个可以集成为对应设备中的组合编码器/解码器(编解码器)的一部分。
[0198] 源设备310可称为视频编码设备或视频编码装置。目的地设备320可称为视频解码设备或视频解码装置。源设备310以及目的地设备320可以是视频编码设备或视频编码装置的实例。
[0199] 源设备310和目的地设备320可以包括各种设备中的任一个,包含任何类别的手持或静止设备,例如,笔记本或膝上型计算机、移动电话、智能电话、平板或平板计算机、摄像机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备(例如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并可以不使用或使用任何类别的操作系统
[0200] 在一些情况下,源设备310和目的地设备320可以经装备以用于无线通信。因此,源设备310和目的地设备320可以为无线通信设备。
[0201] 在一些情况下,图1中所示视频编码系统300仅为示例,本申请的技术可以适用于不必包含编码和解码设备之间的任何数据通信的视频编码设置(例如,视频编码或视频解码)。在其它实例中,数据可从本地存储器检索、在网络上流式传输等。视频编码设备可以对数据进行编码并且将数据存储到存储器,和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备执行编码和解码。
[0202] 应理解,对于以上参考视频编码器100所描述的实例中的每一个,视频解码器200可以用于执行相反过程。关于信令语法元素,视频解码器200可以用于接收并解析这种语法元素,相应地解码相关视频数据。在一些例子中,视频编码器100可以将一个或多个定义目标滤波器的指示信息、插值滤波器的参数信息等语法元素熵编码成经编码视频比特流(也称码流)。在此类实例中,视频解码器200可以解析这种语法元素,并相应地解码相关视频数据。
[0203] 编码器&编码方法
[0204] 图2示出用于实现本申请(公开)技术的视频编码器100的实例的示意性/概念性框图。在图2的实例中,视频编码器100包括残差计算单元104、变换处理单元106、量化单元108、逆量化单元110、逆变换处理单元112、重构单元114、缓冲器116、环路滤波器单元120、经解码图片缓冲器(decoded picture buffer,DPB)130、预测处理单元160和熵编码单元
170。预测处理单元160可以包含帧间预测单元144、帧内预测单元154和模式选择单元162。
帧间预测单元144可以包含运动估计单元和运动补偿单元(未图示)。图2所示的视频编码器
100 也可以称为混合型视频编码器或根据混合型视频编解码器的视频编码器。
[0205] 例如,残差计算单元104、变换处理单元106、量化单元108、预测处理单元160和熵编码单元170形成编码器100的前向信号路径,而例如逆量化单元110、逆变换处理单元112、重构单元114、缓冲器116、环路滤波器120、经解码图片缓冲器(decoded picture buffer,DPB) 130、预测处理单元160形成编码器的后向信号路径,其中编码器的后向信号路径对应于解码器的信号路径(参见图3中的解码器200)。
[0206] 编码器100通过例如输入102,接收图片101或图片101的块103,例如,形成视频或视频序列的图片序列中的图片。图片块103也可以称为当前图片块或待编码图片块,图片101 可以称为当前图片或待编码图片(尤其是在视频编码中将当前图片与其它图片区分开时,其它图片例如同一视频序列亦即也包括当前图片的视频序列中的先前经编码和/或经解码图片)。
[0207] 编码器100的实施例可以包括分割单元(图2中未绘示),用于将图片101分割成多个例如块103的块,通常分割成多个不重叠的块。分割单元可以用于对视频序列中所有图片使用相同的块大小以及定义块大小的对应栅格,或用于在图片或子集或图片群组之间更改块大小,并将每个图片分割成对应的块。
[0208] 在一个实例中,视频编码器100的预测处理单元160可以用于执行上述分割技术的任何组合。
[0209] 如图片101,块103也是或可以视为具有亮度值(采样值)的采样点的二维阵列或矩阵,虽然其尺寸比图片101小。换句话说,块103可以包括,例如,一个采样阵列(例如黑白图片101情况下的亮度阵列)或三个采样阵列(例如,彩色图片情况下的一个亮度阵列和两个色度阵列)或依据所应用的色彩格式的任何其它数目和/或类别的阵列。块103的水平和垂直方向(或轴线)上采样点的数目定义块103的尺寸。
[0210] 如图2所示的编码器100用于逐块编码图片101,例如,对每个块103执行编码和预测。
[0211] 残差计算单元104用于基于图片块103和预测块165(下文提供预测块165的其它细节) 计算残差块105,例如,通过逐样本(逐像素)将图片块103的样本值减去预测块165的样本值,以在样本域中获取残差块105。
[0212] 变换处理单元106用于在残差块105的样本值上应用例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST)的变换,以在变换域中获取变换系数107。变换系数107也可以称为变换残差系数,并在变换域中表示残差块105。
[0213] 变换处理单元106可以用于应用DCT/DST的整数近似值,例如为HEVC/H.265指定的变换。与正交DCT变换相比,这种整数近似值通常由某一因子按比例缩放。为了维持经正变换和逆变换处理的残差块的范数,应用额外比例缩放因子作为变换过程的一部分。比例缩放因子通常是基于某些约束条件选择的,例如,比例缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性和实施成本之间的权衡等。例如,在解码器200侧通过例如逆变换处理单元212为逆变换(以及在编码器100侧通过例如逆变换处理单元112为对应逆变换)指定具体比例缩放因子,以及相应地,可以在编码器100侧通过变换处理单元106为正变换指定对应比例缩放因子。
[0214] 量化单元108用于例如通过应用标量量化或向量量化来量化变换系数107,以获取经量化变换系数109。经量化变换系数109也可以称为经量化残差系数109。量化过程可以减少与部分或全部变换系数107有关的位深度。例如,可在量化期间将n位变换系数向下舍入到m 位变换系数,其中n大于m。可通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以应用不同的标度来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过量化参数(quantization parameter,QP) 指示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,较小的量化参数可以对应精细量化(较小量化步长),较大量化参数可以对应粗糙量化(较大量化步长),反之亦然。量化可以包含除以量化步长以及例如通过逆量化110执行的对应的量化或逆量化,或者可以包含乘以量化步长。根据例如HEVC的一些标准的实施例可以使用量化参数来确定量化步长。一般而言,可以基于量化参数使用包含除法的等式的定点近似来计算量化步长。可以引入额外比例缩放因子来进行量化和反量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的标度而修改的残差块的范数。在一个实例实施方式中,可以合并逆变换和反量化的标度。或者,可以使用自定义量化表并在例如比特流中将其从编码器通过信号发送到解码器。量化是有损操作,其中量化步长越大,损耗越大。
[0215] 逆量化单元110用于在经量化系数上应用量化单元108的逆量化,以获取经反量化系数 111,例如,基于或使用与量化单元108相同的量化步长,应用量化单元108应用的量化方案的逆量化方案。经反量化系数111也可以称为经反量化残差系数111,对应于变换系数107,虽然由于量化造成的损耗通常与变换系数不相同。
[0216] 逆变换处理单元112用于应用变换处理单元106应用的变换的逆变换,例如,逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sine transform,DST),以在样本域中获取逆变换块113。逆变换块113也可以称为逆变换经反量化块113或逆变换残差块113。
[0217] 重构单元114(例如,求和器114)用于将逆变换块113(即经重构残差块113)添加至预测块165,以在样本域中获取经重构块115,例如,将经重构残差块113的样本值与预测块 165的样本值相加。
[0218] 可选地,例如线缓冲器116的缓冲器单元116(或简称“缓冲器”116)用于缓冲或存储经重构块115和对应的样本值,用于例如帧内预测。在其它的实施例中,编码器可以用于使用存储在缓冲器单元116中的未经滤波的经重构块和/或对应的样本值来进行任何类别的估计和/或预测,例如帧内预测。
[0219] 例如,编码器100的实施例可以经配置以使得缓冲器单元116不只用于存储用于帧内预测154的经重构块115,也用于环路滤波器单元120(在图2中未示出),和/或,例如使得缓冲器单元116和经解码图片缓冲器单元130形成一个缓冲器。其它实施例可以用于将经滤波块121和/或来自经解码图片缓冲器130的块或样本(图2中均未示出)用作帧内预测154 的输入或基础。
[0220] 环路滤波器单元120(或简称“环路滤波器”120)用于对经重构块115进行滤波以获取经滤波块121,从而顺利进行像素转变或提高视频质量。环路滤波器单元120旨在表示一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF),或锐化或平滑滤波器,或协同滤波器。尽管环路滤波器单元120在图2中示出为环内滤波器,但在其它配置中,环路滤波器单元120可实施为环后滤波器。经滤波块121也可以称为经滤波的经重构块121。经解码图片缓冲器130可以在环路滤波器单元120对经重构编码块执行滤波操作之后存储经重构编码块。
[0221] 编码器100(对应地,环路滤波器单元120)的实施例可以用于输出环路滤波器参数(例如,样本自适应偏移信息),例如,直接输出或由熵编码单元170或任何其它熵编码单元熵编码后输出,例如使得解码器200可以接收并应用相同的环路滤波器参数用于解码。
[0222] 经解码图片缓冲器(decoded picture buffer,DPB)130可以为存储参考图片数据供视频编码器100编码视频数据之用的参考图片存储器。DPB 130可由多种存储器设备中的任一个形成,例如动态随机存储器(dynamic random access memory,DRAM)(包含同步DRAM (synchronous DRAM,SDRAM)、磁阻式RAM(magnetoresistive RAM,MRAM)、电阻式RAM(resistive RAM,RRAM))或其它类型的存储器设备。可以由同一存储器设备或单独的存储器设备提供DPB 130和缓冲器116。在某一实例中,经解码图片缓冲器(decoded picture buffer,DPB)130用于存储经滤波块121。经解码图片缓冲器130可以进一步用于存储同一当前图片或例如先前经重构图片的不同图片的其它先前的经滤波块,例如先前经重构和经滤波块121,以及可以提供完整的先前经重构亦即经解码图片(和对应参考块和样本) 和/或部分经重构当前图片(和对应参考块和样本),例如用于帧间预测。在某一实例中,如果经重构块115无需环内滤波而得以重构,则经解码图片缓冲器(decoded picture buffer,DPB) 130用于存储经重构块115。
[0223] 预测处理单元160,也称为块预测处理单元160,用于接收或获取块103(当前图片101 的当前编码图像块103)和经重构图片数据,例如来自缓冲器116的同一(当前)图片的参考样本和/或来自经解码图片缓冲器130的一个或多个先前经解码图片的参考图片数据
231,以及用于处理这类数据进行预测,即提供可以为经帧间预测块145或经帧内预测块155的预测块165。
[0224] 在本申请实施例中,帧间预测单元145可以包括候选插值滤波器集合151和滤波器选择单元152,该候选插值滤波器集合151可以包括多个种类的插值滤波器,例如,包括基于离散余弦变换的插值滤波器(DCT-based interpolation filter,DCTIF)和基于可逆性的插值滤波器(invertibility based interpolation filter,本文中也称InvIF)。其中,InvIF是指经过本申请图6C、6C描述的插值滤波器训练方法得到的插值滤波器。滤波器选择单元152用于实现或与其他单元(如变换处理单元106、量化单元108、逆变换处理单元112、重构单元114、环路滤波器单元120、变换处理单元106等)的组合用于实现从候选插值滤波器集合151中选择插值滤波器(例如DCTIF或InvIF)和/或用于熵编码单元对选择的插值滤波器(本文中也称目标插值滤波器)的指示信息进行熵编码。在本申请另一实施例中,候选插值滤波器集合 151可以包括的多个种类插值滤波器可以都为现有技术中提供的插值滤波器,或可以包括通过图6A或6C所示的插值滤波器训练方法得到的插值滤波器。在本申请的又一实施例中,帧间预测块145可以包括单个本申请实施例提供的通过图6A或6C所示的插值滤波器训练方法得到的插值滤波器。应理解,候选插值滤波器集合151可以应用于运动估计的过程中,在本申请的另一实施例中候选插值滤波器集合151还可以用于其他需要进行插值运算的场景中。
[0225] 编码器100还可以包括训练单元(图2中未示出)用于实现插值滤波器的训练,训练单元可以设置于帧间预测模块145内部或外部。可以理解,训练单元可以设置于帧间预测单元 145内,也可以设置于编码器100的其他位置,通过与帧间预测单元中的一个或多个插值滤波器耦合,来实现插值滤波器的训练,插值滤波器的滤波器参数的更新等。可以理解训练单元也可以位于编码器之外或其他设备(不包含编码器100的设备)中,编码器可以通过接收滤波器参数,实现对插值滤波器的配置。
[0226] 模式选择单元162可以用于选择预测模式(例如帧内或帧间预测模式)和/或对应的用作预测块165的预测块145或155,以计算残差块105和重构经重构块115。
[0227] 模式选择单元162的实施例可以用于选择预测模式(例如,从预测处理单元160所支持的那些预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差意味着传输或存储中更好的压缩),或提供最小信令开销(最小信令开销意味着传输或存储中更好的压缩),或同时考虑或平衡以上两者。模式选择单元162可以用于基于码率失真优化(rate distortion optimization,RDO)确定预测模式,即选择提供最小码率失真优化的预测模式,或选择相关码率失真至少满足预测模式选择标准的预测模式。
[0228] 下文将详细解释编码器100的实例(例如,通过预测处理单元160)执行的预测处理和 (例如,通过模式选择单元162)执行的模式选择。
[0229] 如上文所述,编码器100用于从(预先确定的)预测模式集合中确定或选择最好或最优的预测模式。预测模式集合可以包括例如帧内预测模式和/或帧间预测模式。
[0230] 帧内预测模式集合可以包括35种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式的非方向性模式,或如H.265中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式的非方向性模式,或如正在发展中的H.266 中定义的方向性模式。
[0231] (可能的)帧间预测模式集合取决于可用参考图片(即,例如前述存储在DBP 130中的至少部分经解码图片)和其它帧间预测参数,例如取决于是否使用整个参考图片或只使用参考图片的一部分,例如围绕当前块的区域的搜索窗区域,来搜索最佳匹配参考块,和/或例如取决于是否应用如半像素和/或四分之一像素内插的像素图片。
[0232] 除了以上预测模式,也可以应用跳过模式和/或直接模式。
[0233] 预测处理单元160可以进一步用于将块103分割成较小的块分区或子块,例如,通过迭代使用四叉树(quad-tree,QT)分割、二进制树(binary-tree,BT)分割或三叉树(triple-tree, TT)分割,或其任何组合,以及用于例如为块分区或子块中的每一个执行预测,其中模式选择包括选择分割的块103的树结构和选择应用于块分区或子块中的每一个的预测模式。
[0234] 帧间预测单元144可以包含运动估计(motion estimation,ME)单元(图2中未示出) 和运动补偿(motion compensation,MC)单元(图2中未示出)。运动估计单元用于接收或获取图片块103(当前图片101的当前图片块103)和经解码图片131,或至少一个或多个先前经重构块,例如,一个或多个其它/不同先前经解码图片231的经重构块,来进行运动估计。例如,视频序列可以包括当前图片和先前经解码图片231,或换句话说,当前图片和先前经解码图片231可以是形成视频序列的图片序列的一部分,或者形成该图片序列。
[0235] 例如,编码器100可以用于从多个其它图片中的同一或不同图片的多个参考块中选择参考块,并向运动估计单元(图2中未示出)提供参考图片(或参考图片索引等)和/或提供参考块的位置(X、Y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数。该偏移也称为运动向量(motion vector,MV)。
[0236] 在本申请实施例中,运动估计单元可以包括候选插值滤波器集合,运动估计单元还用于根据率失真代价准则从候选插值滤波器集合中选定用于当前编码图像块的目标插值滤波器。或者,运动估计单元还用于:通过候选插值滤波器集合中每一个插值滤波器对与当前编码图像块最优匹配的整像素参考图像块进行分像素插值,得到N个分像素参考图像块,进一步在整像素参考图像块和N个分像素参考图像块中确定与当前编码图像块最优匹配的预测块,从候选插值滤波器集合中选定插值得到该预测块的插值滤波器即为目标插值滤波器。
[0237] 运动补偿单元用于获取,例如接收帧间预测参数,并基于或使用帧间预测参数执行帧间预测来获取帧间预测块145。由运动补偿单元(图2中未示出)执行的运动补偿可以包含基于通过运动估计(可能执行对子像素精确度的内插)确定的运动/块向量取出或生成预测块。内插滤波可从已知像素样本产生额外像素样本,从而潜在地增加可用于编码图片块的候选预测块的数目。一旦接收到用于当前图片块的PU的运动向量,运动补偿单元146可以在一个参考图片列表中定位运动向量指向的预测块。运动补偿单元146还可以生成与块和视频条带相关联的语法元素,以供视频解码器200在解码视频条带的图片块时使用。
[0238] 帧内预测单元154用于获取,例如接收同一图片的图片块103(当前图片块)和一个或多个先前经重构块,例如经重构相邻块,以进行帧内估计。例如,编码器100可以用于从多个(预定)帧内预测模式中选择帧内预测模式。
[0239] 编码器100的实施例可以用于基于优化标准选择帧内预测模式,例如基于最小残差(例如,提供最类似于当前图片块103的预测块155的帧内预测模式)或最小码率失真。
[0240] 帧内预测单元154进一步用于基于如所选择的帧内预测模式的帧内预测参数确定帧内预测块155。在任何情况下,在选择用于块的帧内预测模式之后,帧内预测单元154还用于向熵编码单元170提供帧内预测参数,即提供指示所选择的用于块的帧内预测模式的信息。在一个实例中,帧内预测单元154可以用于执行下文描述的帧内预测技术的任意组合。
[0241] 熵编码单元170用于将熵编码算法或方案(例如,可变长度编码(variable length coding, VLC)方案、上下文自适应VLC(context adaptive VLC,CAVLC)方案、算术编码方案、上下文自适应二进制算术编码(context adaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,  SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)编码或其它熵编码方法或技术)应用于经量化残差系数109、帧间预测参数、帧内预测参数和/或环路滤波器参数中的单个或所有上(或不应用),以获取可以通过输出172以例如经编码比特流171的形式输出的经编码图片数据171。可以将经编码比特流传输到视频解码器200,或将其存档稍后由视频解码器200传输或检索。熵编码单元170还可用于熵编码正被编码的当前视频条带的其它语法元素。例如,在本发明的一些实施例中,熵编码单元170还用于将目标插值滤波器的指示信息和/或插值滤波器的滤波器参数进行熵编码。
[0242] 训练单元,用于基于样本图像对帧间预测单元144内包括的基于机器学习的插值滤波器进行训练,以确定或优化插值滤波器的滤波器参数。
[0243] 视频编码器100的其它结构变型可用于编码视频流。例如,基于非变换的编码器100可以在没有针对某些块或帧的变换处理单元106的情况下直接量化残差信号。在另一实施方式中,编码器100可具有组合成单个单元的量化单元108和逆量化单元110。
[0244] 图3示出示例性视频解码器200,用于实现本申请的技术,即视频图像解码方法。视频解码器200用于接收例如由编码器100编码的经编码图片数据(例如,经编码比特流)171,以获取经解码图片131。在解码过程期间,视频解码器200从视频编码器100接收视频数据,例如表示经编码视频条带的图片块的经编码视频比特流(也称码流)及相关联的语法元素。
[0245] 在图3的实例中,解码器200包括熵解码单元204、逆量化单元210、逆变换处理单元 212、重构单元214(例如求和器214)、缓冲器216、环路滤波器220、经解码图片缓冲器 230以及预测处理单元260。预测处理单元260可以包含帧间预测单元244、帧内预测单元254 和模式选择单元262。在一些实例中,视频解码器200可执行大体上与参照图2的视频编码器100描述的编码遍次互逆的解码遍次。
[0246] 熵解码单元204用于对经编码图片数据(比如,码流或当前解码图像块)171执行熵解码,以获取例如经量化系数209和/或经解码的编码参数(也称编码信息,图3中未示出),例如,帧间预测、帧内预测参数、环路滤波器参数、目标滤波器的指示信息、滤波器参数和/ 或指示帧间预测模式的信息等语法元素中(经解码)的任意一个或全部。熵解码单元204进一步用于将帧间预测参数、帧内预测参数、目标滤波器的指示信息、滤波器参数和/或指示帧间预测模式的信息等语法元素转发至预测处理单元260。视频解码器200可接收视频条带层级和/或视频块层级的语法元素。
[0247] 逆量化单元210功能上可与逆量化单元110相同,逆变换处理单元212功能上可与逆变换处理单元112相同,重构单元214功能上可与重构单元114相同,缓冲器216功能上可与缓冲器116相同,环路滤波器220功能上可与环路滤波器120相同,经解码图片缓冲器230 功能上可与经解码图片缓冲器130相同。
[0248] 预测处理单元260可以包括帧间预测单元244和帧内预测单元254,其中帧间预测单元 244功能上可以类似于帧间预测单元144,帧内预测单元254功能上可以类似于帧内预测单元 154。预测处理单元260通常用于执行块预测和/或从经编码数据171获取预测块265,以及从例如熵解码单元204(显式地或隐式地)接收或获取预测相关参数和/或关于所选择的预测模式的信息。
[0249] 当视频条带经编码为经帧内编码(I)条带时,预测处理单元260的帧内预测单元254用于基于信号表示的帧内预测模式及来自当前帧或图片的先前经解码块的数据来产生用于当前视频条带的图片块的预测块265。当视频帧经编码为经帧间编码(即B或P)条带时,预测处理单元260的帧间预测单元244(例如,运动补偿单元)用于基于运动向量及从熵解码单元204接收的其它语法元素生成用于当前视频条带的视频块的预测块265。对于帧间预测,可从一个参考图片列表内的一个参考图片中产生预测块。视频解码器200可基于存储于DPB 230中的参考图片,使用默认建构技术来建构参考帧列表:列表0和列表1。
[0250] 预测处理单元260用于通过解析运动向量、用于进行分像素插值得到预测块的目标插值滤波器的指示信息、滤波器参数或和用于指示帧间预测模式的信息等语法元素,确定用于用于进行分像素插值得到预测块的目标插值滤波器以及确定当前视频条带的视频块(也即当前解码图像块)的预测信息,并使用预测信息产生用于正经解码的当前解码图像块的预测块。例如,预测处理单元260使用接收到的一些语法元素确定用于编码视频条带的视频块的预测模式(例如,帧内或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、用于条带的参考图片列表中的一个或多个的建构信息、用于条带的每个经帧间编码视频块的运动向量、条带的每个经帧间编码视频块的帧间预测状态、用于进行分像素插值得到预测块的目标滤波器的指示信息以及其它信息,以解码当前视频条带的视频块。
[0251] 预测处理单元260可以包括候选插值滤波器集合251和滤波器选择单元252。候选插值滤波器集合251包括一种或多种插值滤波器,例如,DCTIF和InvIF等。滤波器选择单元252 用于若运动信息指向分数像素位置,则从候选插值滤波器集合251中确定解析出的目标插值滤波器的指示信息所指示的目标插值滤波器器,通过该指示信息所指示的目标插值滤波器进行分像素插值得到预测块。
[0252] 逆量化单元210可用于逆量化(即,反量化)在比特流中提供且由熵解码单元204解码的经量化变换系数。逆量化过程可包含使用由视频编码器100针对视频条带中的每一视频块所计算的量化参数来确定应该应用的量化程度并同样确定应该应用的逆量化程度。
[0253] 逆变换处理单元212用于将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残差块。
[0254] 重构单元214(例如,求和器214)用于将逆变换块213(即经重构残差块213)添加到预测块265,以在样本域中获取经重构块215,例如通过将经重构残差块213的样本值与预测块265的样本值相加。
[0255] 环路滤波器单元220(在编码循环期间或在编码循环之后)用于对经重构块215进行滤波以获取经滤波块221,从而顺利进行像素转变或提高视频质量。在一个实例中,环路滤波器单元220可以用于执行下文描述的滤波技术的任意组合。环路滤波器单元220旨在表示一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF),或锐化或平滑滤波器,或协同滤波器。尽管环路滤波器单元220在图3中示出为环内滤波器,但在其它配置中,环路滤波器单元220可实施为环后滤波器。
[0256] 随后将给定帧或图片中的经解码视频块221存储在存储用于后续运动补偿的参考图片的经解码图片缓冲器230中。
[0257] 解码器200用于例如,藉由输出232输出经解码图片231,以向用户呈现或供用户查看。
[0258] 视频解码器200的其它变型可用于对压缩的比特流进行解码。例如,解码器200可以在没有环路滤波器单元220的情况下生成输出视频流。例如,基于非变换的解码器200可以在没有针对某些块或帧的逆变换处理单元212的情况下直接逆量化残差信号。在另一实施方式中,视频解码器200可以具有组合成单个单元的逆量化单元210和逆变换处理单元212。
[0259] 应理解,虽然图2和图3示出了特定的编码器100和解码器200,但是,编码器100和解码器200还可以包括其他未被描绘的各种其他功能单元、模块或部件。此外,不限于在图 2和图3中所示出的特定的部件和/或各种部件被布置的方式。本文所描述的系统的各种单元可以被实现在软件、固件、和/或硬件和/或其任何组合中。
[0260] 下面介绍本申请涉及的分像素插值的可逆性:
[0261] 应理解,每幅数字图像可看作一个m行n列的二维阵列,包含m*n个采样(sample),每个采样的位置称为采样位置,每个采样的数值成为采样值)。通常将m*n称为图像的分辨率,即图像中包含的采样的个数。例如,2K图像分辨率是1920*1080,4K视频的图像分辨率是3840*2160。通常,也将一个采样称为一个像素,采样值也称像素值,因此每个像素也包含像素位置与像素值两个信息。
[0262] 若干幅数字图像按照时间顺序排列就构成了数字视频。数字视频编码旨在去除数字视频中的冗余信息,使得数字视频更有利于存储和网络中的传输。通常,数字视频的冗余包括空间冗余、时间冗余、统计冗余和视觉冗余。视频序列中相邻帧之间具有很强的相关性,存在大量的时间冗余,为了去除时间冗余,目前的基于块的混合编码框架中都会引入帧间预测技术,通过已编码帧来预测当前待编码帧,从而大大节省编码码率。
[0263] 在基于块的帧间预测中,当前待编码图片首先被划分为若干个互不重叠的编码单元 (CU)。每个CU有各自的编码模式。每个CU可以进一步划分为若干个预测单元(PU),每个PU拥有各自的预测模式,例如预测方向,运动矢量(MV)等等。在编码端,每个PU 都会在参考帧中搜索到一个匹配的块,匹配块的位置使用MV来标识。由于图像在数字采样的过程中某些位置的样本值没有被采样(指分数像素位置),因此,在当前块在参考帧中可能搜索不到完全匹配的块,这个时候就会使用分像素插值技术来插值产生分数像素位置的像素值。图4给出了整像素和分像素的位置示意图。其中大写字母表示的位置代表整数像素位置,其余小写字母表示不同的分数像素位置。不同的分数像素位置的像素值使用整像素通过不同的插值滤波器插值产生,然后作为参考块。
[0264] 例如,对于图1所示的插值过程,运动矢量精度为四分之一精度。在进行运动估计时,首先搜索到与当前待编码图像块最匹配的整像素图像块。然后使用1/2精度插值滤波器插值产生4个1/2-像素分像素图像块。将当前待编码图像块和4个1/2-像素分像素图像块和整像素图像块进行匹配,得到最优匹配的1/2-精度的运动矢量。使用上述最匹配的1/2-精度运动矢量指向的最匹配的像素块使用1/4-精度插值滤波器进行插值,得到8个1/4-精度的分像素块。从匹配的1/2-精度的最优匹配块和8个1/4-精度的分像素块中查找最优的匹配的图像块作为最终当前待编码图像块的预测,该匹配图像块的位置表示的运动矢量为当前待编码块的运动矢量。
[0265] 在数字视频编码中,之所以存在整像素和分像素的概念,是由于数字采样的离散性。如图5的(a)部分所示的数字采样的示意图,点代表采样的样本,虚线表示原始模拟信号为s(t),实线表示插值得到的信号(称为插值信号)。在数字采样过程中,只有在特定位置(整数像素位置)的样值被采样下来,其余位置的样值则被丢掉。插值是数字采样的逆过程,插值的目的是使用离散的样本值尽可能完全恢复原始的连续信号,并获得特定位置(分数像素位置) 的样本值。如图5的(a)部分所示,目标位置α(分数像素位置)可由其临近的样值插值获得,插值过程描述如下:
[0266] pα=fα(s-M,s-M+1,…,s0,s1,…,sN)  (1)
[0267] 其中,si代表整数像素位置i处的样值,i为整数像素位置的索引,i为整数;fα为分数像素位置α对应的插值滤波器,M、N为正整数,且-M<α
[0268] 另一方面,如图5的(b)部分所示,如果我们将原始信号沿着纵坐标翻转,可以得到s'(t)= s(-t),然后将采样器向左平移α,那么我们采样得到的样本记为si′,对应图5的(a)部分中的分像素pα。由于图5的(b)部分中的整像素和分像素的距离和图5的(a)部分中的相同,因此,在图5的(b)部分中的分数像素位置的样值也可以使用fα插值得到,即:
[0269] u0=fα(s′-α-M,s′-α-M+1,…,s′-α,s′-α+1,…,s′-α+N)   (2)[0270] 由于,s'(t)=s(-t-α),公式(2)还可以表示为:
[0271] u0=fα(sα+M,sα+M-1,…,sα,sα-1,…,sα-N)   (3)
[0272] 从公式(2)和公式(3)我们可以看到,如果存在一个理想的插值滤波器能完全插值出分数像素位置的样本,即:
[0273] pα+k=sα+k   (4)
[0274] 那么在图5的(b)部分中插值滤波器同样可以从分数像素位置恢复出整数像素位置,即:
[0275] uk=s-k   (5)
[0276] 由公式(4)和公式(5)中可知,如果存在一个滤波器能从整像素样值完全恢复出分像素样值,那么该滤波器同样可以从分数像素位置恢复出整数像素位置,这个特性称为分像素插值的可逆性。基于分像素插值的可逆性,本申请提供一种端到端的训练方式来产生插值滤波器。
[0277] 基于上述分像素插值的可逆性,本发明实施例提供了两种插值滤波器训练方法。该插值滤波器训练方法可以运行在编码器中,也可以运行于计算设备中,该计算设备可以包括但不限于计算机、计算设备、服务器、终端设备等。
[0278] 现有技术中通常采用固定系数的插值滤波器,例如,双线性插值滤波器、双三次插值滤波器等。目前,视频编码标准中普遍采用固定系数的插值滤波器。在H.264/AVC中,采用6 抽头的有限相应滤波器来产生半像素样值,采用简单的双线性插值来产生四分之一像素。 HEVC中的插值滤波器相比于H.264/AVC做了很多改进,使用8抽头滤波器来产生半像素,而四分之一像素则采用7抽头的插值滤波器。固定系数的插值滤波器实现简单,复杂度低,因此被广泛采用。但是由于视频信号的多样性和非平稳性,固定系数滤波器的性能十分有限。
[0279] 为了应对自然视频的非平稳特性,研究人员提出了内容自适应插值滤波器。典型的自适应插值滤波器在编码端根据运动补偿预测的误差估计滤波器系数,然后将滤波器系数编码写入码流。为了减少插值滤波器的复杂度,可分离的自适应插值滤波器被提出,可以实现在基本保持编码性能的情况下明显降低复杂度。为了减少编码系数所需的比特数,一些自适应插值滤波器的设计时通常会假设图像为各向同性。虽然自适应插值滤波器是内容自适应的,然后仍然建立在线性插值滤波器的基础上,另外编码滤波器系数仍然需要一些比特数。
[0280] 本申请实施例正是基于上述技术问题,提出了一种插值滤波器的训练的方法。请参阅图 6A所示的本申请实施例提供的一种插值滤波器的训练方法的示意性流程图,以及图6B所示的训练流程的示意性说明图。该方法包括但不限于如下部分或全部步骤:
[0281] S612:通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像。
[0282] S614:将所述样本图像输入到第二插值滤波器中,得到第二分像素图像。
[0283] S616:通过最小化用于表示所述第一分像素图像块与所述第二分像素图像块的差值的第一函数确定所述第二插值滤波器的滤波器参数。
[0284] 需要说明的是,虽然将本申请实施例中的方法通过步骤来表示,但步骤S64和步骤S66 在训练过程中为一个迭代的过程。
[0285] 在本申请实施例的一种实现中,样本图像可以是原始图像X或原始图像X经过编码器编码压缩后的图像X′。然而,在本申请实施例的另一种实现中,输入到第一插值滤波器的样本图像为原始图像,输入到第二插值滤波器的可以是样本图像经过编码器编码压缩后的图像。
[0286] 应理解,第一插值滤波器为现有技术中的任意一种可插值产生在第一分数像素位置的像素值的插值滤波器,该第一插值滤波器可以是固定系数的插值滤波器、自适应插值滤波器或其他类型的插值滤波器等,本申请实施例不作限定。第一分数像素位置可以是任意一个分数像素位置。可见,本申请实施例,以第一分像素图像为标签数据,来训练第二插值滤波器,使得训得到的第二插值滤波器可直接用于插值得到第一分数像素位置的像素值。
[0287] 还应理解,第二插值滤波器可以是支持向量机(support vector machine,SVM)、神经网络(neural network,NN)、卷积神经网络(convolutional neural network,CNN)或其他形式,对此,本申请实施例不作限定。
[0288] 第一函数可以是用于表示第一分数像素图像和第二分数像素图像的差值的函数,该第一函数可以是损失函数、目标函数、代价函数等,本申请实施例不作限定。
[0289] 例如,第一函数为正则化损失函数(regularization loss function),该第一函数的可以表示为:
[0290]
[0291] 其中,γ为分数像素位置的索引,Lreg,γ为分数像素位置γ对应的第一函数,X为样本图像,X′为样本图像进过编码器压缩后的图像,TIFγ为分数像素位置γ对应的第一插值滤波器,F为第二插值滤波器,TIFγ(X)为分数像素位置γ对应的第一分像素图像,Xf,γ、Fγ(X′) 为分数像素位置γ对应的第二分像素图像。其中,范数符号 其中,i为x中像素点的索引。
[0292] 应理解,第一函数还可以具体其他表示方式,例如,对数损失函数、平方损失函数、指数损失函数或其他形式的损失函数,对此,本申请实施例不作限定。
[0293] 可以理解,样本图像可以是一个图像也可以是多个图像。其中,一个样本图像可以是一帧图像、也可以是一个编码单元(CU),也可以是一个预测单元(PU),对此,本发明不作限定。
[0294] 其中,第二插值滤波器的滤波器参数可以的通过最小化损失函数求得,训练过程可表示为:
[0295]
[0296] 其中,n为样本图像的总数,n为正整数;k为样本图像的索引,k为正整数,k≤n,θ*为最优滤波器参数,θ为滤波器参数, 为样本图像k对应的第一函数。可选地,n可以等于 1或其他正整数。
[0297] 可选地,可以通过最小二乘法(Least Square Method)、线性回归(Linear Regression)、梯度下降法(gradient descent)或其他方式求解第二插值滤波器的滤波器参数。
[0298] 由于采样得到的整像素图像对应的分像素图像是不可获得的,因此通过机器学习得到的插值滤波器没有标签数据。现有技术中采用的标签数据是通过“模糊-抽样”的方法,将样本图像使用低通滤波器进行模糊,使得相邻的像素之间的相关性增加。然后将图像按照不同的相位抽样成若干个子图像。将相位0看作整像素,将其他相位看作不同位置的分像素。然而,该方法得到的标签数据是人工设计的,因此并不是最优的。
[0299] 可见,本申请实施例提供的插值滤波器器训练方法通过传统插值滤波器对样本图像进行分像素插值,得到第一分像素图像,并作为标签数据,通过监督该第一分像素图像,训练插值滤波器(第二插值滤波器),得到一种插值滤波器,可提高编解码性能。
[0300] 本发明一实施例中,可以将多个分数像素位置分别对应的插值滤波器联合训练。具体的实现方法包括但不限于如下步骤:
[0301] S1:通过分数像素位置γ对应的第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在分数像素位置γ的第一分像素图像,其中,分数像素位置γ为Q 个分数像素位置中的任意一个分数像素位置,Q为正整数。
[0302] S2:将样本图像输入到分数像素位置γ对应的第二插值滤波器中,得到分数像素位置γ对应的第二分像素图像。
[0303] S3:同时最小化Q个分数像素位置分别对应的第一函数确定Q个分数像素位置分别对应的第二插值滤波器的滤波器参数,其中,分数像素位置γ对应的第一函数用于表示样本图像在分数像素位置γ的第一分像素图像与分数像素位置γ对应的第二分像素图像的差值。
[0304] 可选地,Q可以为分数像素位置的总数,也可以是其他数值。
[0305] 请参阅图6C所示的本申请实施例提供的另一种插值滤波器的训练方法的示意性流程图,以及图6D所示的训练流程的示意性说明图。该方法包括但不限于如下部分或全部步骤:
[0306] S622:通过第一插值滤波器对样本图像进行分像素插值,得到样本图像在第一分数像素位置的第一分像素图像。
[0307] S624:将样本图像输入到第二插值滤波器中,得到第二分像素图像。
[0308] S626:将第二分像素图像经过翻转运算输入到第三插值滤波器中,得到第一图像,并将第一图像通过翻转运算的逆运算得到第二图像,其中,第二插值滤波器和第三插值滤波器共享滤波器参数。
[0309] S628:根据用于表示第一分像素图像与第二分像素图像的差值的第一函数和用于表示样本图像与第二图像的差值的第二函数确定所述滤波器参数。
[0310] 需要说明的是,虽然将本申请实施例中的方法通过步骤来表示,但步骤S76和步骤S78 在训练过程中为一个迭代的过程。
[0311] 关于样本图像、第一函数、第一插值滤波器的描述可以参见上述图6A、6B描述的插值滤波器的训练方法实施例中的相关描述,本申请不在赘述。
[0312] 其中,分像素插值产生的分像素图像Xf经过翻转运算T然后再经过一次第三插值滤波器进行分像素插值得到第一图像,第一图像再经过上述翻转运算T的逆运算T-1来得到样本图像的重建图像,即第二图像。其中,第一图像和第二图像都为整像素图像,翻转运算包括水平翻转、垂直翻转和对翻转。翻转运算的类型的选择可以由下式决定:
[0313]
[0314] 其中,yf和xf分别表示翻转的图像在垂直和水平方向上相对于第二分像素图像的分像素位移。
[0315] 第二函数可以是用于表示样本图像与所述第二图像的差值的函数,该第二函数可以是损失函数、目标函数、代价函数等,本申请实施例不作限定。
[0316] 例如,第二函数为可以表示为:
[0317]
[0318] 其中,Lrec,γ为第二函数,X为样本图像,γ指示第一分数像素位置,TIFγ为第一插值滤波器,F为第二插值滤波器,TIFγ(X)为第一分像素图像,Xf,γ为第二分像素图像。TT-1=E, E为单位矩阵。
[0319] 应理解,第一函数还可以具体其他表示方式,例如,对数损失函数、平方损失函数、指数损失函数或其他形式的损失函数,对此,本申请实施例不作限定。
[0320] 可见,整个端到端训练框架的优化过程就是同时最小化第一函数和第二函数。在本申请一是实施例中,步骤S628的一种实现方式可以是:
[0321] 通过最小化第三函数确定所述滤波器参数,其中,所述第三函数为用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数的加权求和。
[0322] 例如,定义联合损失函数(也称第三函数)如下:
[0323] Ljoint=(1-δ)×Lrec+δ×Lreg   (9)
[0324] 其中,第二插值滤波器的滤波器参数可以的通过最小化联合损失函数求得,训练过程可表示为:
[0325] θ*=argminLjoint(θ)   (10)
[0326] 在本申请一是实施例中,步骤S48的另一种实现方式可以是:通过交替最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0327] 同理,上述图6C、6D描述的训练方法中,样本图像可以是一个图像也可以是多个图像。其中,一个样本图像可以是一帧图像、也可以是一个编码单元(CU),也可以是一个预测单元(PU),对此,本发明不作限定。
[0328] 其中,第二插值滤波器的滤波器参数可以的通过最小化损失函数求得,例如,训练过程可表示为:
[0329]
[0330]
[0331] 其中,n为样本图像的总数,n为正整数;k为样本图像的索引,k为正整数,k≤n,θ*为最优的滤波器参数,θ为滤波器参数, 为样本图像k对应的第一函数, 为样本图像k 对应的第二函数。可选地,n可以等于1或其他正整数。
[0332] 相对于图6A、6B所示的实施例,本发明实施例提供的插值滤波器器训练方法通过传统插值滤波器对样本图像进行分像素插值,得到第一分像素图像,并作为标签数据,利用分像素的可逆性原理,通过同时最小化用于表示第一分像素图像与第二分像素图像的差值的第一函数和用于表示样本图像与第二图像的差值的第二函数来确定所述滤波器参数,实现了通过监督样本图像来约束第二插值滤波器,提高第二插值滤波器进行分像素插值的准确性。
[0333] 以下基于图7和图8介绍本发明实施例提供的视频图像编码方法的两种具体实现过程。该方法可由视频编码器100执行。该方法描述为一系列的步骤或操作,应当理解的是,各步骤可以以各种顺序执行和/或同时发生,不限于图6所示的执行顺序。假设具有多个视频帧的视频数据流正在使用视频编码器,执行包括如下步骤的过程来预测当前视频帧的当前编码图像块的运动信息,并基于当前编码图像块的帧间预测模式和当前编码图像块的运动信息对所述当前编码图像块进行编码。
[0334] 如图7所示,第一种编码实现过程:
[0335] S72:对当前编码图像块进行帧间预测,得到当前编码图像块的运动信息,其中,当前编码图像块的运动信息指向分数像素位置,该帧间预测过程包括:从候选插值滤波器集合中确定用于当前编码图像块的目标插值滤波器。
[0336] S74:基于当前编码图像块的帧间预测模式和当前编码图像块的运动信息对当前编码图像块进行编码,得到编码信息,将编码信息编入码流,其中,编码信息包括目标插值滤波器的指示信息;目标插值滤波器的指示信息用于指示通过目标插值滤波器进行分像素插值得到当前编码图像块对应的分数像素位置的参考块。
[0337] 在上述实现方式中,不论帧间预测模式为是否为合并模式,当运动信息指向分数像素位置时,视频编码器都需要将目标滤波器的指示信息编入码流,以便于解码端获知编码得到预测块的目标滤波器的类型。
[0338] 如图8所示,第二种编码实现过程:
[0339] S82:对当前编码图像块进行帧间预测,得到当前编码图像块的运动信息,其中,当前编码图像块的运动信息指向分数像素位置,该帧间预测过程包括:从候选插值滤波器集合中确定用于当前编码图像块的目标插值滤波器。
[0340] S84:基于当前编码图像块的帧间预测模式和当前编码图像块的运动信息对当前编码图像块进行编码,得到编码信息,将编码信息编入到码流,其中,若当前编码图像块的帧间预测模式是目标帧间预测模式,编码信息不包括目标插值滤波器的指示信息;若当前编码图像块的帧间预测模式为非目标帧间预测模式,编码信息包括目标插值滤波器的指示信息,目标插值滤波器的指示信息用于指示当前编码图像块采用目标插值滤波器进行分像素插值。
[0341] 本申请实施例中,视频编码器包括候选插值滤波器集合,该候选插值滤波器集合中可以包括多个种类的插值滤波器,对于每一种类的插值滤波器可以包括一个或多个插值滤波器。视频编解码器在对当前编码图像块进行帧间预测时,可以选择其中的一个插值滤波器进行分像素插值,以得到该当前编码图像块的预测块。
[0342] 可选地,目标插值滤波器为进行分像素插值得到预测块的插值滤波器或得到该预测块的一类插值滤波器。也就是说,目标插值滤波器的指示信息指示的是得到预测块的插值滤波器,也可以是指示得到预测块的插值滤波器的类型。
[0343] 例如,候选插值滤波器集合包括两种插值滤波器,例如,第一类插值滤波器和第二类插值滤波器,当目标插值滤波器为第一类插值滤波器时,指示信息可以是“0”,当目标插值滤波器为第二类插值滤波器时,指示信息可以是“1”。
[0344] 可以理解,该第一类插值滤波器或第二类插值滤波器可以包括通过上述插值滤波器训练的一个或多个分数像素位置分别对应的第二插值滤波器。
[0345] 其中,步骤S72/S82中,确定目标插值滤波器的可以包括但不限于以下两种实现方式。
[0346] 第一实现方式:
[0347] 根据率失真代价准则从候选插值滤波器集合中确定用于当前编码图像块的目标插值滤波器。具体实现为:计算每一类插值滤波器生成分像素图像块的率失真代价,确定率失真代价最小的插值滤波器作为最终用于分像素插值得到当前编码图像块对应的预测块的目标插值滤波器。例如,视频编码器在对当前编码图像块进行帧间预测过程中,可以搜索到与当前编码图像块最优匹配的整像素参考块;进而,通过第一类插值滤波器(候选插值滤波器集合中任意一类插值滤波器)对整像素参考图像块进行分像素插值,得到P个分像素参考图像块,确定预测块,得到预测块的运动信息并计算残差,将残差、运动信息等编码信息编入码流,并根据码流进行图像块重建,将得到重建图像块与大敌当前图像块的均方差作为失真,将得到的码流大学作为码率,进一步地,根据失真和码率得到该第一类插值滤波器的率失真代价。率失真代价的计算为现有技术,在此,不在赘述。应理解,在本申请中,在帧间预测过程中虽然对当前编码图像块进行了完整的编码操作和重建,但该过程为测试过程,并不一定会该过程得到的编码信息写入码流。可选地,只有率失真代价最小的一类插值滤波器参与的编码过程得到的编码信息,才被写入到码流。
[0348] 可以理解,P为正整数,由第一类插值滤波器进行分像素插值的精度决定。
[0349] 第二实现方式:
[0350] 视频编码器在对当前编码图像块进行帧间预测过程中,可以搜索到与当前编码图像块最优匹配的整像素参考块;通过候选插值滤波器集合中每一个插值滤波器对整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;在整像素参考图像块和N个分像素参考图像块中确定与当前编码图像块最优匹配的预测块;基于预测块确定运动信息,当运动信息指向分数像素位置时,目标滤波器即为插值得到该预测块的插值滤波器或插值得到得到该预测块的一类插值滤波器,反之,当运动信息指向整数像素位置时,不需要确定目标滤波器,更不需要将目标滤波器的指示信息编入码流。
[0351] 可以理解,在对当前编码图像块进行帧间预测过程中,若与当前编码图像块的预测块为整数像素图像,则不需要执行确定目标滤波器的过程,也不需要执行将目标插值滤波器的指示信息编入码流。
[0352] 在本申请一实施例中,候选插值滤波器集合可以包括通过上述任意一种插值滤波器的训练方法得到的第二插值滤波器。
[0353] 可选地,若目标滤波器为通过上述任意一种插值滤波器的训练方法得到的第二插值滤波器,则:目标插值滤波器的滤波器参数为预设的滤波器参数;或者,目标插值滤波器的滤波器参数为根据上述任意一种插值滤波器的训练方法在线训练得到的滤波器参数。
[0354] 进一步地,该编码信息还包括训练得到的目标插值滤波器的滤波器参数;或者,编码信息还包括滤波器参数差值,滤波器参数差值为训练得到的用于当前图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
[0355] 其中,图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)等。也就是说,视频编码器可以每编码完一帧图像快,一个条带他图像块、一个视频序列子组、一个编码树单元(CTU)、一个编码单元(CU)或预测单元(PU)即训练一次。
[0356] 对于图像单元为预测单元来说,视频编码器可以每次得到将当前编码图像块作为样本图像,对候选插值滤波器集合中的第二插值滤波器进行训练。
[0357] 以下基于图9和图10介绍本发明实施例提供的视频图像解码方法的两种具体实现过程。该方法可由视频解码器200执行,该方法描述为一系列的步骤或操作,应当理解的是,各步骤可以以各种顺序执行和/或同时发生,不限于图9或图10所示的执行顺序。
[0358] 如图9所示,描述了对应于7所示的视频图像编码方法的一种视频图像解码方法的实现过程,该实现过程可以包括如下部分或全部步骤:
[0359] S92:从码流中解析出目标插值滤波器的指示信息;
[0360] S94:获取当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0361] S96:基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据所述指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
[0362] S98:基于所述当前解码图像块的预测块,重建当前解码图像块的重建块。
[0363] 需要说明的是,步骤S92可以在步骤S94之前或之后执行,也可以与步骤S94同时执行,本发明实施例不作限定。
[0364] 本申请实施例中,无论何种帧间预测模式,得到的码流,只要在运动信息指向分数像素位置,该码流解析出的编码信息中都包括目标插值滤波器的指示信息。然而,解析相互的编码信息是否包含运动信息与帧间预测模式有关。当帧间预测模式为合并模式时,视频解码器可以继承合并模式下合并到的在先解码的图像块的运动信息;而当帧间预测模式为非合并模式时,视频解码器可以从码流中解析出当解码图像块的运动信息的索引,或从码流中解析出当解码图像块的运动信息的索引和运动矢量差值,以获取到运动信息。
[0365] 在识别到当前解码图像块为非合并模式的情况下,步骤S94的一种实现可以包括:视频解码器可以从码流中解析出当解码图像块的运动信息的索引;进而,基于当解码图像块的运动信息的索引和当前解码图像块的候选运动信息列表确定当前解码图像块的运动信息。
[0366] 可选地,步骤S94的另一种实现可以包括:视频解码器可以从码流中解析出当解码图像块的运动信息的索引和运动矢量差值;进而,基于当解码图像块的运动信息的索引和当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;基于运动矢量预测值和运动矢量差值,得到当前解码图像块的运动矢量。
[0367] 在识别到当前解码图像块为合并模式的情况下,步骤S94的一种实现可以包括:视频解码器可以从继承合并模式下合并到的在先解码的图像块的运动信息。可以理解,在该线解码的图像块的运动信息与当前解码图像块的运动信息一致。
[0368] 可选地,视频解码器可以先执行S94,当获取到的当前解码图像块的运动信息指向分数像素位置时,再执行步骤S92,从码流中解析出目标插值滤波器的指示信息。可以理解,当运动信息指向整数像素位置时,从码流中解析出的当前图像块对应的编码信息不包括目标插值滤波器的指示信息;而当获取到的当前解码图像块的运动信息指向整数像素位置时,视频解码器不需要执行S92,此时,可以基于获取到的运动信息进行预测[0369] 如图10所示,描述了对应于8所示的视频图像编码方法的一种视频图像解码方法的实现过程,该实现过程可以包括如下部分或全部步骤:
[0370] S102:从码流中解析出当前解码图像块的用于指示所述当前解码图像块的帧间预测模式的信息;
[0371] S104:获取所述当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0372] S106:若所述当前图像块的帧间预测模式为非目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行帧间预测过程,其中,所述预测过程包括:根据从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
[0373] S108:基于所述当前解码图像块的预测块,对所述当前解码图像块进行重建。
[0374] 本申请实施例中,区分帧间预测模式,编码时,只有在帧间预测模式为非目标预测模式 (比如非合并模式)且运动信息指向分数像素位置的情况下,才需要将目标插值滤波器的指示信息编入码流;而当帧间预测模式为目标帧间预测模式(比如合并模式)时,不需要将运动信息、运动信息的索引、运动矢量差值、目标插值滤波器的指示信息编入码流。对应地,在解码端,只有当帧间预测模式为非目标预测模式(例如非合并模式)时且当前解码图像块的运动信息指向分数像素位置时,才需要从解析出目标插值滤波器的指示信息;而,当帧间预测模式为目标预测模式(例如合并模式)时且当前解码图像块的运动信息指向分数像素位置时,可以继承合并模式下合并到的在先解码的图像块的运动信息和目标插值滤波器的指示信息。
[0375] 若步骤S102中解析出当前解码图像块的帧间预测模式为非目标帧间预测模式(非合并模式)的情况下,步骤S104的一种实现可以包括:视频解码器可以从码流中解析出当解码图像块的运动信息的索引;进而,基于当解码图像块的运动信息的索引和当前解码图像块的候选运动信息列表确定当前解码图像块的运动信息。
[0376] 可选地,步骤S104的另一种实现可以包括:视频解码器可以从码流中解析出当解码图像块的运动信息的索引和运动矢量差值;进而,基于当解码图像块的运动信息的索引和当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;基于运动矢量预测值和运动矢量差值,得到当前解码图像块的运动矢量。
[0377] 进一步地,若当前解码图像的运动信息是否指向分数像素位置,则视频解码器需要从码流中解析出的目标插值滤波器的指示信息,在视频解码器执行帧间预测过程中需要,根据该指示信息指示的目标插值滤波器进行分像素插值,得到当前解码图像块的预测块。若当前解码图像的运动信息是否指向整数像素位置,则视频解码器根据该运动信息直接得到该运动信息指向的预测块。
[0378] 若步骤S102中解析出当前解码图像块的帧间预测模式为目标帧间预测模式(合并模式) 的情况下,步骤S104的一种实现可以包括:视频解码器可以继承合并模式下合并到的在先解码的图像块的运动信息。
[0379] 进一步地,若当前解码图像的运动信息是否指向分数像素位置,则视频解码器还需要继承合并模式下合并到的在先解码的图像块在解码过程中使用的插值滤波器的指示信息,进而确定该指示信息指定的目标插值滤波器,在视频解码器执行帧间预测过程中需要,根据该指示信息指示的目标插值滤波器进行分像素插值,得到当前解码图像块的预测块。若当前解码图像的运动信息是否指向整数像素位置,则视频解码器根据该运动信息直接得到该运动信息指向的预测块。
[0380] 应理解,在本申请的另一实施例中,编码端可以在帧间预测模式为目标帧间预测模式(比如合并模式)且运动信息执行分数像素位置时,也将目标插值滤波器的指示信息进行编码。对应地,解码端在帧间预测模式为目标帧间预测模式(比如合并模式)且运动信息执行分数像素位置时,可以从码流中解析出的目标插值滤波器的指示信息,确定该指示信息所指示的目标滤波器,以在进行帧间预测过程中,通过该目标滤波器进行插值得到当前解码图像块的预测块。
[0381] 还应理解,步骤S106中,指示信息是可以指示通过分像素插值得到当前解码图像块的预测块的目标插值滤波器的指示信息,也可以是指示该目标插值滤波器的类型。若该指示信息为目标插值滤波器的类型,则视频解码器根据指示信息所指示的目标插值滤波器进行分像素插值的一种实现方法为:视频解码器根据运动信息在指示信息确定的插值滤波器类型中确定用分像素插值得到该运动信息指示的预测块的目标插值滤波器。
[0382] 本申请一实施例中,若目标滤波器为通过上述插值滤波器的训练方法得到的第二插值滤波器,则:位于视频编码端的目标插值滤波器的滤波器参数可以是预设的滤波器参数,与视频编码端目标插值滤波器的滤波器参数一致;或者,位于视频编码端的目标插值滤波器的滤波器参数还可以是根据上述插值滤波器的训练方法得到的滤波器参数。
[0383] 可选的,对应于编码端,若目标插值滤波器为训练得到的第二插值滤波器,编码信息还包括用于当前编码的图像单元的目标插值滤波器的滤波器参数。解码端的视频解码器还可以从码流中解析到滤波器参数,该滤波器参数可以是通过上述滤波器训练方法得到的用于当前解码的图像单元的目标插值滤波器的滤波器参数,视频编码器在根据指示信息所指示的目标插值滤波器进行分像素插值,得到当前解码图像块的预测块之前,还可以通过用于当前解码的图像单元的目标插值滤波器的滤波器参数配置目标插值滤波器。
[0384] 可选的,对应于编码端,若目标插值滤波器为训练得到的第二插值滤波器,编码信息还包括滤波器参数差值。解码端的视频解码器还可以从码流中解析到滤波器参数插值,该滤波器参数差值为训练得到的用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先解码的图像单元的目标插值滤波器的滤波器参数的差值该滤波器参数;视频编码器在根据指示信息所指示的目标插值滤波器进行分像素插值,得到当前解码图像块的预测块之前,还可以:根据用于在先解码的图像单元的目标插值滤波器的滤波器参数和滤波器参数差值得到用于当前解码的图像单元的目标插值滤波器的滤波器参数;进而,通过用于当前解码的图像单元的目标插值滤波器的滤波器参数配置目标插值滤波器。
[0385] 在本申请的另一实施例中,编码端和解码端的目标插值滤波器的滤波器参数可以固定为预测的滤波器参数。此时,编码信息可以不包括目标插值滤波器的滤波器参数或滤波器参数差值,解码端也不需要对该目标插值滤波器的滤波器参数或滤波器参数差值进行解析。
[0386] 可选地,图像单元是图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)等。即,视频解码器以解码图像单元为所需时长为单位更新滤波器参数。
[0387] 以下如图11所示提供了本申请提供的又一种视频图像的编码方法的流程示意图,该方法可以包括但不限于如下部分或全部步骤:
[0388] S1101:从码流中解析出当前解码图像块的用于指示当前解码图像块的帧间预测模式的信息。
[0389] S1102:判断用于指示当前解码图像块的帧间预测模式的信息所指定的帧间预测模式是否为合并模式。
[0390] 若判断结果为是,即用于指示所述当前解码图像块的帧间预测模式的信息所指定的帧间预测模式为合并模式,则执行步骤S1103;否则,用于指示所述当前解码图像块的帧间预测模式的信息所指定的帧间预测模式为非合并模式,则执行步骤S1105。
[0391] S1103:获取在合并模式下合并到的在先解码的图像块的运动信息和目标插值滤波器的指示信息。
[0392] 应理解,在合并模式下合并到的在先解码的图像块的运动信息即为当前解码图像块的运动信息。
[0393] S1104:判断当前解码图像块的运动信息是否指向整数像素位置。
[0394] 步骤S1103之后可以执行步骤S1104。若S1104的判断结果为是,则该运动信息所指向的整数像素位置所对应的图像块即为当前解码图像块的预测块,视频解码器可以执行步骤 S1109,否则,执行步骤S1108。
[0395] S1105:从码流中解析出当前解码图像块的运动信息。
[0396] S1106:判断当前解码图像块的运动信息是否指向整数像素位置。
[0397] 步骤S1105之后可以执行步骤S1106。若S1106的判断结果为是,则说明则该运动信息所指向的整数像素位置所对应的图像块即为当前解码图像块的预测块,视频解码器可以执行步骤S1109,否则,说明当前解码图像块的预测块为分像素图像,视频解码器执行步骤S1107。
[0398] S1107:解析出用于当前编码图像块的目标插值滤波器的指示信息。
[0399] S1108:根据目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述解码图像块的预测块。
[0400] S1109:基于当前解码图像块的预测块,重建当前解码图像块的重建块。
[0401] 进一步地,视频解码器判断上述过程中解码图像块是否为最后一个图像块,如果是,则解码过程结束,否则可以对下一个待解码的图像块进行上述解码流程。
[0402] 下面介绍本发明实施例涉及的装置。
[0403] 请参阅图12,图12是本发明实施例提供的一种插值滤波器训练装置的示意性框图,应理解,插值滤波器训练装置1200可以与设置于编码器100中的帧间预测单元或设置于编码器 100中的其他单元中。应当理解的是,插值滤波器的训练还可以通过计算设备来实现,该计算设备可以是计算机、服务器或其他包括可实现数据处理的器件或设备。该插值滤波器1200 可以包括但不限于标签数据获取模块1201、插值模块1202以及参数确定模块1203。其中:
[0404] 标签数据获取模块1201,用于通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
[0405] 插值模块1202,用于将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
[0406] 参数确定模块1203,用于通过最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数确定所述第二插值滤波器的滤波器参数。
[0407] 请参阅图13,图13是本发明实施例提供的另一种插值滤波器训练装置的示意性框图,该插值滤波器1300可以包括但不限于标签数据获取模块1301、插值模块1302、逆插值模块 1303以及参数确定模块1304。
[0408] 标签数据获取模块1301,用于通过第一插值滤波器对样本图像在整数像素位置的像素进行插值,得到所述样本图像在第一分数像素位置的第一分像素图像;
[0409] 插值模块1302,用于将所述样本图像输入到第二插值滤波器中,得到第二分像素图像;
[0410] 逆插值模块1303,用于将所述第二分像素图像经过翻转运算输入到第三插值滤波器中,得到第一图像,并将所述第一图像通过所述翻转运算的逆运算得到第二图像,其中,所述第二插值滤波器和所述第三插值滤波器共享滤波器参数;
[0411] 参数确定模块1304,用于根据用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0412] 在一种可能的实施方式中,参数确定模块1304具体用于:通过最小化第三函数确定所述滤波器参数,其中,所述第三函数为用于表示所述第一分像素图像与所述第二分像素图像的差值的第一函数和用于表示所述样本图像与所述第二图像的差值的第二函数的加权求和。
[0413] 在一种可能的实施方式中,参数确定模块1304具体用于:通过交替最小化用于表示所述第一分像素图像与所述第二分像素图像的差值的第一损失函数和用于表示所述样本图像与所述第二图像的差值的第二函数确定所述滤波器参数。
[0414] 图14为本申请实施例提供的一种又一种插值滤波器训练装置的示意性框图,该装置1400 可以包括处理器1410以及存储器1420,所述存储器1420通过总线1430连接到处理器1410,该存储器1420用于存储用于实现上述任一种插值滤波器训练方法的程序代码,该处理器1410 用于调用该存储器存储的程序代码执行本申请描述的各种插值滤波器训练方法,具体可参见图6A-6D所述的插值滤波器方法实施例中相关描述,本申请实施例不再赘述。
[0415] 装置1400可以采用包含多个计算设备的计算系统的形式,或采用例如移动电话、平板计算机、膝上型计算机、笔记本电脑、台式计算机等单个计算设备的形式。
[0416] 装置1400中的处理器1410可以为中央处理器。或者,处理器1410可以为现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。如图14所示,虽然可以使用例如处理器1410的单个处理器实践所揭示的实施方式,但是使用一个以上处理器可以实现速度和效率方面的优势。
[0417] 在一实施方式中,装置140中的存储器1420可以为只读存储器(Read Only Memory, ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其他合适类型的存储设备都可以用作存储器1420。存储器1420可以包括代码和由处理器1410使用总线1430 访问的数据1401(例如样本图像)。存储器1420可进一步包括操作系统1402和应用程序1403,应用程序1403包含至少一个准许处理器1410执行本文所描述的方法的程序。例如,应用程序1403可以包括应用1到N,应用1到N进一步包括执行本文所描述的方法的视频译码应用。装置1400还可包含采用从存储器1402形式的附加存储器,该从存储器1402例如可以为与移动计算设备一起使用的存储卡。因为视频通信会话可能含有大量信息,这些信息可以整体或部分存储在从存储器1420中,并按需要加载到存储器1420用于处理。
[0418] 可选地,装置1400还可以包括但不限于通信接口或模块、输入/输出装置等,通信接口或模块用于实现装置1400与其他设备(例如,编码设备或解码设备)之间的数据交换。输入装置用于实现信息(文字、图像、声音等)或指令的输入,可以包括但不限于触控屏、键盘、摄像头、录音器等。输出装置用于实现信息(文字、图像、声音等)或指令的输出,可以包括但不限于显示器、扩音器等,对此,本申请不作限定。
[0419] 图15为本申请实施例提供的一种用于实现图7或图8所述的视频图像编码方法的编码器的示意性框图。
[0420] 对应于图7所示的视频图像编码方法,在本申请的一实施例中,编码器1500中各个单元的具体功能如下:
[0421] 帧间预测单元1501,用于对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,所述帧间预测单元包括滤波器选择单元1502,滤波器选择单元1502具体用于:用于从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0422] 熵编码单元1503,基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入码流,其中,所述编码信息包括目标插值滤波器的指示信息;所述目标插值滤波器的指示信息用于指示通过所述目标插值滤波器进行分像素插值得到所述当前编码图像块对应的分数像素位置的参考块。
[0423] 对应于图7所示的视频图像编码方法,在本申请的另一实施例中,编码器1500中各个单元的具体功能如下:
[0424] 帧间预测单元1501,用于对所述当前编码图像块进行帧间预测,得到所述当前编码图像块的运动信息,其中,所述当前编码图像块的运动信息指向分数像素位置,其中,所述帧间预测单元包括滤波器选择单元1502,所述滤波器选择单元1502用于:从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器;
[0425] 熵编码单元1503,用于基于所述当前编码图像块的帧间预测模式和所述当前编码图像块的运动信息对所述当前编码图像块进行编码,得到编码信息,将所述编码信息编入到码流,其中,若所述当前编码图像块的帧间预测模式是目标帧间预测模式,所述编码信息不包括所述目标插值滤波器的指示信息;若所述当前编码图像块的帧间预测模式为非目标帧间预测模式,所述编码信息包括所述目标插值滤波器的指示信息,所述目标插值滤波器的指示信息用于指示所述当前编码图像块采用所述目标插值滤波器进行分像素插值。
[0426] 在本申请实施例的一种可能的实现中,所述滤波器选择单元1502具体用于根据率失真代价准则从候选插值滤波器集合中确定用于所述当前编码图像块的目标插值滤波器。
[0427] 在本申请实施例的又一种可能的实现中,所述帧间预测单元1501具体用于:
[0428] 确定与所述当前编码图像块最优匹配的整像素参考图像块;
[0429] 通过候选插值滤波器集合中每一个插值滤波器对所述整像素参考图像块进行分像素插值,得到N个分像素参考图像块,N为正整数;
[0430] 在所述整像素参考图像块和所述N个分像素参考图像块中确定与所述当前编码图像块最优匹配的预测块;
[0431] 基于所述预测块确定所述运动信息,其中,插值得到所述预测块的插值滤波器即为目标插值滤波器。
[0432] 在本申请实施例的又一种可能的实现中,所述候选插值滤波器集合包括通过上述图 6A-6D所述的任一种插值滤波器的训练方法得到的第二插值滤波器。
[0433] 可选地,若所述目标滤波器为通过上述图6A-6D所述的任一种插值滤波器的训练方法得到第二插值滤波器,则:所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为根据上述图6A-6D所述的任一种插值滤波器的训练方法得到的滤波器参数。
[0434] 进一步地,所述编码信息还包括训练得到的所述目标插值滤波器的滤波器参数;或者,所述编码信息还包括滤波器参数差值,所述滤波器参数差值为训练得到的用于当前图像单元的目标插值滤波器的滤波器参数相对于训练得到的用于在先编码的图像单元的目标插值滤波器的滤波器参数。
[0435] 可选地,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
[0436] 图16为本申请实施例提供的一种用于实现图8-图10所述的视频图像解码方法的解码器的示意性框图。
[0437] 对应于图9所示的视频图像解码方法,在本申请的一实施例中,解码器1600中各个单元的具体功能如下:
[0438] 熵解码单元1601,用于从码流中解析出目标插值滤波器的指示信息;以及,获取当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;
[0439] 帧间预测单元1602,用于基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据所述指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
[0440] 重构单元1603,用于基于所述当前解码图像块的预测块,重建所述当前解码图像块的重建块。
[0441] 如图3所示的编码器的示意性框图。对应于图10或图11所示的视频图像解码方法,在本申请的另一实施例中,解码器200中各个单元的具体功能如下:
[0442] 熵解码单元1601,用于从码流中解析出当前解码图像块的用于指示所述当前解码图像块的帧间预测模式的信息;
[0443] 帧间预测单元1602,用于获取所述当前解码图像块的运动信息,其中,所述运动信息指向分数像素位置;若所述当前图像块的帧间预测模式为非目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:根据从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块;
[0444] 重构单元1603,用于基于所述当前解码图像块的预测块,对所述当前解码图像块进行重建。
[0445] 可选地,帧间预测单元1602还用于:若所述当前图像块的帧间预测模式是目标帧间预测模式,基于所述当前解码图像块的运动信息对所述当前解码图像块执行预测过程,其中,所述预测过程包括:确定用于所述当前解码图像块的目标插值滤波器;通过所述目标插值滤波器进行分像素插值,得到所述当前解码图像块的预测块。
[0446] 应理解,若所述当前图像块的帧间预测模式是目标帧间预测模式,所述帧间预测单元1602 确定用于所述当前解码图像块的目标插值滤波器,具体包括:确定在所述先解码的图像块在解码过程中使用的插值滤波器为所述用于所述当前解码图像块的目标插值滤波器;或,确定所述用于所述当前解码图像块的目标插值滤波器为从所述码流中解析出的目标插值滤波器的指示信息所指示的目标插值滤波器。
[0447] 在本申请实施例的一种可能的实现中,解码器1600获取当前解码图像块的运动信息可以包括但不限于以下三种实施方式:
[0448] 第一实施方式:
[0449] 在非目标帧间预测模式(比如非合并模式)下,所述熵解码单元1601具体用于从码流中解析出所述当解码图像块的运动信息的索引;
[0450] 所述帧间预测单元1602,还用于基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定所述当前解码图像块的运动信息。
[0451] 第二实施方式:
[0452] 在非目标帧间预测模式(比如非合并模式)下,所述熵解码单元1601具体用于:从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;
[0453] 所述帧间预测单元1602还用于:基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;以及,基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
[0454] 第三实施方式:在非目标帧间预测模式(比如非合并模式)下,所述熵解码单元1601具体用于从码流中解析出所述当解码图像块的运动信息的索引和运动矢量差值;
[0455] 所述帧间预测单元1602,还用于基于所述当解码图像块的运动信息的索引和所述当前解码图像块的候选运动信息列表确定当前解码图像块的运动矢量预测值;进而,基于所述运动矢量预测值和所述运动矢量差值,得到所述当前解码图像块的运动矢量。
[0456] 在本申请实施例的一种可能的实现中,若所述目标滤波器为上述图6A-6D所述的任一种插值滤波器的训练方法得到的第二插值滤波器,则:所述目标插值滤波器的滤波器参数为预设的滤波器参数;或者,所述目标插值滤波器的滤波器参数为上述图6A-6D所述的任一种插值滤波器的训练方法得到的滤波器参数。
[0457] 在本申请实施例的一种可能的实现中,所述熵解码单元1601还用于:从码流中解析出用于当前解码的图像单元的目标插值滤波器的滤波器参数;
[0458] 所述解码器1600还包括配置单元1604,用于通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
[0459] 在本申请实施例的一种可能的实现中,所述熵解码单元1601还用于:从码流中解析出滤波器参数差值,所述滤波器参数差值为用于当前解码的图像单元的目标插值滤波器的滤波器参数相对于用于在先解码的图像单元的目标插值滤波器的滤波器参数用于当前解码的图像单元的目标插值滤波器的滤波器参数;
[0460] 所述解码器还包括:配置单元1604,用于根据所述在先解码的图像单元的目标插值滤波器的滤波器参数和所述滤波器参数差值得到所述当前解码的图像单元的目标插值滤波器的滤波器参数;以及,通过所述当前解码的图像单元的目标插值滤波器的滤波器参数配置所述目标插值滤波器。
[0461] 可选地,所述图像单元包括图像帧、条带(slice)、视频序列子组、编码树单元(CTU)、编码单元(CU)或预测单元(PU)。
[0462] 图17为本申请实施例提供的一种用于实现图7或图8所述的视频图像编码方法的编码设备或用于实现图9-图11所述的视频图像解码方法的解码设备的示意性框图,该设备1700可以包括处理器1702以及存储器1720,所述存储器1704通过总线1712连接到处理器
1710,该存储器1720用于存储用于实现上述任一种视频图像编码方法的程序代码,该处理器1710 用于调用该存储器存储的程序代码执行本申请描述的各种视频图像编码/解码方法,具体可参见图7-图11所述的视频图像编码方法的方法实施例中相关描述,本申请实施例不再赘述。
[0463] 该设备1700可以采用包含多个计算设备的计算系统的形式,或采用例如移动电话、平板计算机、膝上型计算机、笔记本电脑、台式计算机等单个计算设备的形式。
[0464] 设备1700中的处理器1702可以为中央处理器。或者,处理器1702可以为现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。如图所示,虽然可以使用例如处理器1702的单个处理器实践所揭示的实施方式,但是使用一个以上处理器可以实现速度和效率方面的优势。
[0465] 在一实施方式中,设备1700中的存储器1704可以为只读存储器(Read Only Memory, ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其他合适类型的存储设备都可以用作存储器1704。存储器1704可以包括代码和由处理器1702使用总线1712 访问的数据1706。存储器1704可进一步包括操作系统1708和应用程序1710,应用程序
1710 包含至少一个准许处理器1702执行本文所描述的方法的程序。例如,应用程序1710可以包括应用1到N,应用1到N进一步包括执行本文所描述的方法的视频译码应用。设备1700 还可包含采用从存储器1714形式的附加存储器,该从存储器1714例如可以为与移动计算设备一起使用的存储卡。因为视频通信会话可能含有大量信息,这些信息可以整体或部分存储在从存储器1714中,并按需要加载到存储器1704用于处理。
[0466] 设备1700还可包含一或多个输出设备,例如显示器1718。在一个实例中,显示器1718 可以为将显示器和可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器
1718可以通过总线1712耦合于处理器1702。除了显示器1718还可以提供其它准许用户对装置1700编程或以其它方式使用装置1700的输出设备,或提供其它输出设备作为显示器1718的替代方案。当输出设备是显示器或包含显示器时,显示器可以以不同方式实现,包含通过液晶显示器(liquid crystal display,LCD)、阴极射线管(cathode-ray tube,CRT)显示器、等离子显示器或发光二极管(light emitting diode,LED)显示器,如有机LED(organic LED,OLED) 显示器。
[0467] 设备1700还可包含图像感测设备1720或与其连通,图像感测设备1720例如为相机或为现有的或今后将研发出的可以感测图像的任何其它图像感测设备1720,所述图像例如为运行设备1700的用户的图像。图像感测设备1720可以放置为直接面向运行设备1700的用户。在一实例中,可以配置图像感测设备1720的位置和光轴以使其视野包含紧邻显示器1718的区域且从该区域可见显示器1718。
[0468] 设备1700还可包含声音感测设备1722或与其连通,声音感测设备1722例如为麦克或为现有的或今后将研发出的可以感测装置1700附近的声音的任何其它声音感测设备。声音感测设备1722可以放置为直接面向运行装置1700的用户,并可以用于接收用户在运行装置1700 时发出的声音,例如语音或其它发声。
[0469] 虽然图17中将设备1700的处理器1702和存储器1704绘示为集成在单个单元中,但是还可以使用其它配置。处理器1702的运行可以分布在多个可直接耦合的机器中(每个机器具有一个或多个处理器),或分布在本地区域或其它网络中。存储器1704可以分布在多个机器中,例如基于网络的存储器或多个运行设备1700的机器中的存储器。虽然此处只绘示单个总线,但设备1700的总线1712可以由多个总线形成。进一步地,从存储器1714可以直接耦合至设备1700的其它组件或可以通过网络访问,并且可包括单个集成单元,例如一个存储卡,或多个单元,例如多个存储卡。因此,可以以多种配置实施设备置1700。
[0470] 在本文中,该处理器可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0471] 该存储器可以包括只读存储器(ROM)设备或者随机存取存储器(RAM)设备。任何其他适宜类型的存储设备也可以用作存储器。存储器可以包括由处理器使用总线访问的代码和数据。存储器可以进一步包括操作系统和应用程序,该应用程序包括允许处理器执行本申请描述的视频编码或解码方法(尤其是本申请描述的帧间预测方法或运动信息预测方法)的至少一个程序。例如,应用程序可以包括应用1至N,其进一步包括执行在本申请描述的视频图像编码或解码方法的视频编码或解码应用(简称视频译码应用)。
[0472] 该总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统。
[0473] 可选的,译码设备还可以包括一个或多个输出设备,诸如显示器。在一个示例中,显示器可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器可以经由总线连接到处理器。
[0474] 本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体 (例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/ 或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0475] 作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM 或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线 (DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
[0476] 可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
[0477] 本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
[0478] 以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈