首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 一种基于帧间预测的编解码方法及装置

一种基于间预测的编解码方法及装置

阅读:764发布:2020-05-16

专利汇可以提供一种基于间预测的编解码方法及装置专利检索,专利查询,专利分析的服务。并且本 说明书 实施例 公开了一种基于 帧 间预测的编解码方法及装置,该方法包括:确定待处理编码单元的时域 运动矢量 预测值,所述时域运动矢量预测值为所述待处理编码单元相邻子 块 和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值;基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;基于所述待处理编码单元内部子块的运动矢量,进行 运动补偿 ,确定所述待处理编码单元的预测块,通过结合运动矢量残差预测和基于子块的时域运动矢量预测导出更准确的编码单元子块的运动矢量,提升预测块的准确度,提高编码效率。,下面是一种基于间预测的编解码方法及装置专利的具体信息内容。

1.一种基于间预测的编码方法,其特征在于,所述方法包括:
确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值;
基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
2.如权利要求1所述的方法,其特征在于,所述基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块,进一步包括:
基于RDO决策,确定所述待处理编码单元的编码方法;
输出标记到所述待处理编码单元所在的码流,其中,所述标记用于标记所述待处理编码单元的编码方法。
3.如权利要求1所述的方法,其特征在于,所述基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值,具体包括:
确定所述待处理编码单元的参考帧;
获取所述待处理编码单元相邻子块的运动矢量,对所述运动矢量及所述时域运动矢量预测值进行缩放,使所述运动矢量及所述时域运动矢量预测值缩放至所述待处理编码单元的参考帧,获得所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值;
基于所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获取所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值;
基于所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值,获取所述待处理编码单元的运动矢量残差预测值。
4.如权利要求3所述的方法,其特征在于,所述基于所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获取所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值,具体包括:
所述待处理编码单元相邻子块缩放后的运动矢量减去所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获得所述待处理编码单元相邻子块的运动矢量残差预测值;
基于所述待处理编码单元相邻子块的运动矢量残差预测值,获得所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值。
5.如权利要求4所述的方法,其特征在于,所述基于所述待处理编码单元相邻子块的运动矢量残差预测值,获取所述待处理编码单元相邻子块的最终运动矢量残差预测值,具体包括:
若所述待处理编码单元相邻子块的运动矢量残差预测值的个数大于等于3,则将前三个运动矢量残差预测值的中值作为所述待处理编码单元相邻子块的最终运动矢量残差预测值;
若所述待处理编码单元相邻子块的运动矢量残差预测值的个数为0,则所述待处理编码单元相邻子块的最终运动矢量残差预测值为(0,0);
否则,将所述待处理编码单元相邻子块的运动矢量残差预测值的均值作为所述待处理编码单元相邻子块的最终运动矢量残差预测值。
6.如权利要求4所述的方法,其特征在于,所述基于所述待处理编码单元相邻子块的运动矢量残差预测值,获取所述待处理编码单元内部子块的最终运动矢量残差预测值,具体包括:
基于所述待处理编码单元相邻子块的运动矢量残差预测值,对所述待处理编码单元相邻子块中时域运动矢量残差预测值不可得的子块进行填充,完成所述待处理编码单元相邻子块的时域运动矢量残差预测值的填充;
基于所述待处理编码单元的时域运动矢量预测值中待处理编码单元内部子块的时域运动矢量预测值,对所述待处理编码单元内部子块外部左侧和/或上方和/或下方和/或右侧进行填充操作和滤波操作;
采用双线性插值方式获取所述待处理编码单元内部子块的最终运动矢量残差预测值。
7.如权利要求6所述的方法,其特征在于,所述对所述待处理编码单元内部子块外部左侧和/或上方和/或下方和/或右侧进行填充操作为:
Mv[i][y]=Mv[0][y],-2≤i<0
Mv[x][k]=Mv[x][0],-2≤k<0
Mv[j][y]=Mv[M-1][y],M≤j<M+2
Mv[x][l]=Mv[x][N-1],N≤l<N+2
0≤x<M,0≤y<N
其中,Mv[x][y]为滤波前待处理编码单元内部子块的时域运动矢量预测值;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行子块;i和j是以子块为单位的列坐标,k和l是以子块为单位的行坐标;M、N为当前编码单元以子块为单位的宽、高。
8.如权利要求6所述的方法,其特征在于,所述滤波操作为:
Mvh=(3*Mv[x-2][y]+8*Mv[x-1][y]+10*Mv[x][y]+8*Mv[x+1][y]+3*Mv[x+2][y])/32Mvv=(3*Mv[x][y-2]+8*Mv[x][y-1]+10*Mv[x][y]+8*Mv[x][y+1]+3*Mv[x][y+2])/32Mvf[x][y]=(Mvh+Mvv)/2
0≤x<M
0≤y<N
Mv[x][y]为滤波前待处理编码单元内部子块的时域运动矢量预测;Mvf[x][y]为滤波后子块的时域运动矢量预测;Mvh和Mvv分别是平滤波和垂直滤波的临时中间结果;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行子块;M、N为当前编码单元以子块为单位的宽、高。
9.如权利要求6所述的方法,其特征在于,所述双线性插值方式为:
Mvdh=((M-x)*Mvdl[y]+x*Mvdt[M])/M
Mvdv=((N-y)*Mvdt[x]+y*Mvdl[N])/N
Mvd[x][y]=(Mvdh+Mvdv)/2
0≤x<M
0≤y<N
Mvdl为滤波后左方子块运动矢量残差预测;Mvdt为滤波后上方子块运动矢量残差预测;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行的子块;M、N为当前编码单元以子块为单位的宽、高;Mvd[x][y]为当前编码单元内部每个子块的运动矢量残差预测。
10.如权利要求1所述的方法,其特征在于,所述基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量,具体包括:
将所述待处理编码单元相邻或内部子块的时域运动矢量预测值与所述待处理编码单元的运动矢量残差预测值进行求和,作为所述待处理编码单元内部子块的运动矢量。
11.如权利要求2所述的方法,其特征在于,所述标记为1-bit标记。
12.一种基于帧间预测的编码装置,其特征在于,所述装置包括:
时域运动矢量预测模块,确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
运动矢量残差预测模块,基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值;
运动矢量获取模块,基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
预测块获取模块,基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
13.一种基于帧间预测的解码方法,其特征在于,所述方法包括:
基于待预测编码单元的标记,获取待预测编码单元的编码方法,其中,所述标记用于标记所述待处理编码单元的编码方法;
确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
基于所述时域运动矢量预测值及所述待预测编码单元的编码方法,确定所述待处理编码单元的运动矢量残差预测值;
基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
14.一种基于帧间预测的解码装置,其特征在于,所述装置包括:
解码标记读取模块,基于待预测编码单元的标记,获取待预测编码单元的编码方法,其中,所述标记用于标记所述待处理编码单元的编码方法;
时域运动矢量预测模块,确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
运动矢量残差预测模块,基于所述时域运动矢量预测值及所述待预测编码单元的编码方法,确定所述待处理编码单元的运动矢量残差预测值;
运动矢量预测模块,基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
预测块获取模块,基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。

说明书全文

一种基于间预测的编解码方法及装置

技术领域

[0001] 本说明书涉及视频编码技术领域,尤其涉及一种基于帧间预测的编解码方法及装置。

背景技术

[0002] 帧间预测技术是编码器中的重要技术,其中,Skip/direct模式对于提升编码器性能具有重要作用。Skip/direct模式通过借用空域上已编码邻的运动信息和时域上已编码图像内的运动信息直接导出当前编码单元的运动信息,而不通过运动估计获取运动信息。skip/direct模式中,时域运动矢量预测是通过缩放co-located块的运动信息导出当前编码单元的运动信息,但对于视频内容运动相对比较剧烈的情况,co-located块的内容与当前编码单元的内容往往差别比较大,使得参考co-located块的运动信息不准确,从而导致时域运动矢量预测不准确。
[0003] 因此,需要一种新的方法,能够改善视频内容运动比较激烈的视频的编解码性能,提高运动矢量预测的准确度。发明内容
[0004] 本说明书实施例提供一种基于帧间预测的编解码方法及装置,用于解决以下技术问题:对于视频内容运动相对比较剧烈的情况,现有的帧间预测的准确性差。
[0005] 为解决上述技术问题,本说明书实施例是这样实现的:
[0006] 本说明书实施例提供的一种基于帧间预测的编码方法,包括:
[0007] 确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
[0008] 基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值;
[0009] 基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
[0010] 基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0011] 进一步地,所述基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块,进一步包括:
[0012] 基于RDO决策,确定所述待处理编码单元的编码方法;
[0013] 输出标记到所述待处理编码单元所在的码流,其中,所述标记用于标记所述待处理编码单元的编码方法。
[0014] 进一步地,所述基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值,具体包括:
[0015] 确定所述待处理编码单元的参考帧;
[0016] 获取所述待处理编码单元相邻子块的运动矢量,对所述运动矢量及所述时域运动矢量预测值进行缩放,使所述运动矢量及所述时域运动矢量预测值缩放至所述待处理编码单元的参考帧,获得所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值;
[0017] 基于所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获取所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值;
[0018] 基于所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值,获取所述待处理编码单元的运动矢量残差预测值。
[0019] 进一步地,所述基于所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获取所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值,具体包括:
[0020] 所述待处理编码单元相邻子块缩放后的运动矢量减去所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获得所述待处理编码单元相邻子块的运动矢量残差预测值;
[0021] 基于所述待处理编码单元相邻子块的运动矢量残差预测值,获得所述待处理编码单元相邻子块或内部子块的最终运动矢量残差预测值。
[0022] 进一步地,所述基于所述待处理编码单元相邻子块的运动矢量残差预测值,获取所述待处理编码单元相邻子块的最终运动矢量残差预测值,具体包括:
[0023] 若所述待处理编码单元相邻子块的运动矢量残差预测值的个数大于等于3,则将前三个运动矢量残差预测值的中值作为所述待处理编码单元相邻子块的最终运动矢量残差预测值;
[0024] 若所述待处理编码单元相邻子块的运动矢量残差预测值的个数为0,则所述待处理编码单元相邻子块的最终运动矢量残差预测值为(0,0);
[0025] 否则,将所述待处理编码单元相邻子块的运动矢量残差预测值的均值作为所述待处理编码单元相邻子块的最终运动矢量残差预测值。
[0026] 进一步地,所述基于所述待处理编码单元相邻子块运动矢量残差预测值,获取所述待处理编码单元内部子块的最终运动矢量残差预测值,具体包括:
[0027] 基于所述待处理编码单元相邻子块的运动矢量残差预测值,对所述待处理编码单元相邻子块中时域运动矢量残差预测值不可得的子块进行填充,完成所述待处理编码单元相邻子块的时域运动矢量残差预测值的填充;
[0028] 基于所述待处理编码单元的时域运动矢量预测值中待处理编码单元内部子块的时域运动矢量预测值,对所述待处理编码单元内部子块外部左侧和/或上方和/或下方和/或右侧进行填充操作和滤波操作;
[0029] 采用双线性插值方式获取所述待处理编码单元内部子块的最终运动矢量残差预测值。
[0030] 进一步地,所述对所述待处理编码单元内部子块外部左侧和/或上方和/或下方和/或右侧进行填充操作为:
[0031] Mv[i][y]=Mv[0][y],-2≤i<0
[0032] Mv[x][k]=Mv[x][0],-2≤k<0
[0033] Mv[j][y]=Mv[M-1][y],M≤j<M+2
[0034] Mv[x][l]=Mv[x][N-1],N≤l<N+2
[0035] 0≤x<M,0≤y<N
[0036] 其中,Mv[x][y]为滤波前待处理编码单元内部子块的时域运动矢量预测值;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行子块;i和j是以子块为单位的列坐标,k和l是以子块为单位的行坐标;M、N为当前编码单元以子块为单位的宽、高。
[0037] 进一步地,所述滤波操作为:
[0038] Mvh=(3*Mv[x-2][y]+8*Mv[x-1][y]+10*Mv[x][y]+8*Mv[x+1][y]+3*Mv[x+2][y])/32
[0039] Mvv=(3*Mv[x][y-2]+8*Mv[x][y-1]+10*Mv[x][y]+8*Mv[x][y+1]+3*Mv[x][y+2])/32
[0040] Mvf[x][y]=(Mvh+Mvv)/2
[0041] 0≤x<M
[0042] 0≤y<N
[0043] Mv[x][y]为滤波前待处理编码单元内部子块的时域运动矢量预测;Mvf[x][y]为滤波后子块的时域运动矢量预测;Mvh和Mvv分别是平滤波和垂直滤波的临时中间结果;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行子块;M、N为当前编码单元以子块为单位的宽、高。
[0044] 进一步地,所述双线性插值方式为:
[0045] Mvdh=((M-x)*Mvdl[y]+x*Mvdt[M])/M
[0046] Mvdv=((N-y)*Mvdt[x]+y*Mvdl[N])/N
[0047] Mvd[x][y]=(Mvdh+Mvdv)/2
[0048] 0≤x<M
[0049] 0≤y<N
[0050] Mvdl为滤波后左方子块运动矢量残差预测;Mvdt为滤波后上方子块运动矢量残差预测;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行的子块;M、N为当前编码单元以子块为单位的宽、高;Mvd[x][y]为当前编码单元内部每个子块的运动矢量残差预测。
[0051] 进一步地,所述基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量,具体包括:
[0052] 将所述待处理编码单元内部子块的时域运动矢量预测值与所述待处理编码单元的运动矢量残差预测值进行求和,作为所述待处理编码单元内部子块的运动矢量。
[0053] 进一步地,所述标记为1_bit标记。
[0054] 本说明书实施例提供的一种基于帧间预测的编码装置,所述装置包括:
[0055] 时域运动矢量预测模块,确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
[0056] 运动矢量残差预测模块,基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值;
[0057] 运动矢量获取模块,基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
[0058] 预测块获取模块,基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0059] 本说明书实施例提供的一种基于帧间预测的解码方法,所述方法包括:
[0060] 基于待预测编码单元的标记,获取待预测编码单元的编码方法,其中,所述标记用于标记所述待处理编码单元的编码方法;
[0061] 确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
[0062] 基于所述时域运动矢量预测值及所述待预测编码单元的编码方法,确定所述待处理编码单元的运动矢量残差预测值;
[0063] 基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
[0064] 基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0065] 本说明书实施例提供的一种基于帧间预测的解码装置,所述装置包括:
[0066] 解码标记读取模块,基于待预测编码单元的标记,获取待预测编码单元的编码方法,其中,所述标记用于标记所述待处理编码单元的编码方法;
[0067] 时域运动矢量预测模块,确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
[0068] 运动矢量残差预测模块,基于所述时域运动矢量预测值及所述待预测编码单元的编码方法,确定所述待处理编码单元的运动矢量残差预测值;
[0069] 运动矢量预测模块,基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
[0070] 预测块获取模块,基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0071] 本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0072] 本发明通过确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值;基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。本发明提供的方法,通过结合运动矢量残差预测和基于子块的时域运动矢量预测导出更准确的编码单元子块的运动矢量,提升预测块的准确度,在不增加编码复杂度的前提下,提高编码效率。附图说明
[0073] 为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0074] 图1为本说明书实施例提供的一种基于帧间预测的编码方法的框架图;
[0075] 图2为本申请实施例提供的一种基于帧间预测的编码方法的流程图
[0076] 图3为本申请实施例提供的一种待处理编码单元相邻子块的示意图;
[0077] 图4为本申请实施例提供的另一种基于帧间预测的编码方法的流程图;
[0078] 图5为本申请实施例提供的使用双线性插值方式获取运动矢量残差预测值的示意图;
[0079] 图6为本申请实施例提供的一种基于帧间预测的编码装置的示意图;
[0080] 图7为本申请实施例提供的一种基于帧间预测的解码装置的示意图。

具体实施方式

[0081] 为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0082] 帧间编码所利用的是视频的时间冗余。通常在视频信息中,每一帧所包含的物体对象与其前后帧之间存在运动关系,这种物体的运动关系即构成帧与帧直接的时间冗余。由于帧与帧之间物体的运动相关性大于一帧内部相邻像素之间的相关性,尤其对于时间相近的图像之间,时间冗余比空间冗余更加明显。帧间预测是基于块的运动估计和运动补偿来实现帧间编码的。现有的帧间预测方法中,Skip/direct模式中,时域运动矢量预测是通过缩放co-located块的运动信息导出当前编码单元的运动信息,但对于视频内容运动比较剧烈的情况,co-located块的内容与当前编码单元的内容往往差别比较大,这使得参考co-located块的运动信息是不准确的,从而使得时域运动矢量预测不准确。因此需要一种新的帧间预测方式,对于视频内容运动比较剧烈的情况,能够提高帧间预测的准确性,提升编码的准确性。
[0083] 图1为本说明书实施例提供的一种基于帧间预测的编码方法的框架图。该方法具体包括:
[0084] 步骤S101:确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值未所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值。
[0085] 在本申请中,时域运动矢量预测是(ATMVP,Alternative Temporal Motion Vector Prediction)是一种亚CU(编码单元)级别的运动矢量预测机制。它在时域运动矢量预测(TMVP)的基础上进行了改进,通过小于当前编码单元的块(编码单元的子块)获取多组运动信息。
[0086] 在本申请中,时域是指当前块所在的图像与对应块所在的图像在视频序列的时间轴上处于不同时间位置,该位置采用图像顺序标号来表示。时域参考块也称为对应块(colBlock,co-located Block),是指时域上已编码图像中与当前编码单元相同坐标位置的块。
[0087] 在本申请中,所适用的编码单元相邻子块和/或内部子块为宽和高均大于4的子块,包括宽和高不等的矩形块。
[0088] 在本申请中,待处理编码单元为当前编码单元,即当前需要进行编码的单元。
[0089] 步骤S103:基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值。
[0090] 在本申请实施例中,待处理编码单元的运动矢量残差预测值是基于待处理编码单元相邻子块的运动矢量预测值而获得的。
[0091] 步骤S105:基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量。
[0092] 在本申请实施例中,待处理编码单元内部子块的运动矢量是基于时域运动矢量预测值及运动矢量残差预测值获得的。
[0093] 步骤S107:基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0094] 目前主要的视频编码标准帧间预测部分都采用了基于块的运动补偿技术。其主要原理是为当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计。其中用于预测的图像称为参考图像,参考块到当前像素块的位移称为运动矢量,当前块与参考块的差值称为预测残差。由于视频图像序列的连续性,通常运动矢量在空间和时间上也存在一定的相关性,同理,利用空间或时间上相邻的运动矢量对当前块运动矢量进行预测,仅对预测残差进行编码,也能大幅节省运动矢量的编码比特数。
[0095] 采用本说明实施例提供的基于帧间预测的编码方法,能够提高帧间预测的准确性,提升编码的准确性,从而提高编码效率。
[0096] 在本说明书实施例中,上述基于帧间预测的编码方法,进一步采用下述步骤:
[0097] 基于RDO决策,确定所述待处理编码单元的编码方法;
[0098] 输出标记到所述待处理编码单元所在的码流,其中,所述标记用于标记所述待处理编码单元的编码方法。
[0099] 具体地,在本申请中,采用率失真优化(Rate-distortion optimization,RDO)策略,对比待处理编码单元预测块与采用其它帧间预测方法获得的待处理编码单元的预测块进行对比,将率失真代价最小的预测值作为待处理编码单元的预测块。需要特别说明的是,其它帧间预测方法是不同于本申请的帧间预测方法。
[0100] 经过率失真优化后,获得了待处理编码单元的预测块,同时,需要对待处理编码单元所在的码流进行标记。需要特别说明的是,所述标记用于标记所述待处理编码单元的编码方法。在具体实施过程中,可以采用1-bit标记。
[0101] 为进一步理解本申请实施例提供的基于帧间预测的编码方法,图2为本申请实施例提供的一种基于帧间预测的编码方法的流程图,具体包括:
[0102] 步骤S201:确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值未所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值。
[0103] 步骤S203:确定待处理编码单元的参考帧。
[0104] 在本申请实施例中,参考帧采用的是固定参考帧的方式。在本申请实施例中,采用参考图像列表0的第一帧和参考图像列表1的第一帧分别作为待处理编码单元的前、后向参考帧。参考图像列表0表示前向参考帧对应的索引列表,参考图像列表1表示后向参考帧对应的索引列表。
[0105] 步骤S205:获取所述待处理编码单元相邻子块的运动矢量,对所述运动矢量及所述时域运动矢量预测值进行缩放,使所述运动矢量及所述时域运动矢量预测值缩放至所述待处理编码单元的参考帧,获得所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值。
[0106] 在本申请实施例中,待处理编码单元相邻子块是分别位于待处理编码单元左侧和上方的部分或全部子块。图3为本申请实施例提供的一种待处理编码单元相邻子块的示意图。在图3中,分别选取左侧两个相邻子块及上方两个相邻子块作为待处理编码单元的相邻子块,左侧两个相邻子块及上方两个相邻子块的位置可以随机选择。在图3实施例中,左侧两个相邻子块为A和B,上方两个相邻子块为C和D。
[0107] 步骤S207:基于所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获取所述待处理编码单元相邻子块的运动矢量残差预测值。
[0108] 在本申请实施例中,待处理编码单元待处理编码单元相邻子块缩放后的运动矢量减去对应的待处理编码单元相邻子块缩放后的时域运动矢量预测值,获得待处理编码单元相邻子块在参考方向的运动矢量残差预测值。
[0109] 延续上述实施例,若待处理编码单元相邻子块为图3中所示A、B、C和D,采用本申请实施例提供的方法,顺序获取待处理编码单元相邻子块A、B、C和D的运动矢量残差预测值。
[0110] 步骤S209:基于所述待处理编码单元相邻子块的运动矢量残差预测值,获取所述待处理编码单元相邻子块的最终运动矢量残差预测值。
[0111] 在本申请实施例中,若所述待处理编码单元相邻子块的运动矢量残差预测值的个数大于等于3,则将前三个运动矢量残差预测值的中值作为所述待处理编码单元相邻子块的最终运动矢量残差预测值;
[0112] 若所述待处理编码单元相邻子块的运动矢量残差预测值的个数为0,则所述待处理编码单元相邻子块的最终运动矢量残差预测值为(0,0);
[0113] 否则,将所述待处理编码单元相邻子块的运动矢量残差预测值的均值作为所述待处理编码单元相邻子块的最终运动矢量残差预测值。
[0114] 延续上述实施例,若待处理编码单元相邻子块A、B、C和/或D的运动矢量残差预测值均可得,则将待处理编码单元相邻子块A、B、C的运动矢量残差预测值的中值作为待处理编码单元相邻子块的最终运动矢量残差预测值;若待处理编码单元相邻子块A、B、C和D的运动矢量残差预测值均不可得,则待处理编码单元相邻子块的最终运动矢量残差预测值为(0,0);若待处理编码单元相邻子块A、B、C和D的运动矢量残差预测值有1个或者2个可得,则将待处理编码单元相邻子块中可得的运动矢量残差预测值的均值作为待处理编码单元相邻子块的最终运动矢量残差预测值。
[0115] 步骤S211:基于所述时域运动矢量预测值及待处理编码单元相邻子块的最终运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量。
[0116] 采用本实施例提供的基于帧间预测的编码方法,基于待处理编码单元的几个相邻子块的运动矢量残差预测值,获取待处理编码单元相邻子块的最终运动矢量残差预测值,从而实现帧间编码,能够在不增加编码复杂度的前提下,提高编码的准确率。
[0117] 为进一步理解本申请实施例提供的基于帧间预测的编码方法,图4为本申请实施例提供的另一种基于帧间预测的编码方法的流程图,具体包括:
[0118] 步骤S401:确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值未所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值。
[0119] 步骤S403:确定待处理编码单元的参考帧。
[0120] 在本实施例中采用与步骤S203相同的方法,确定待处理编码单元的参考帧。
[0121] 步骤S405:获取所述待处理编码单元相邻子块的运动矢量,对所述运动矢量及所述时域运动矢量预测值进行缩放,使所述运动矢量及所述时域运动矢量预测值缩放至所述待处理编码单元的参考帧,获得所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值。
[0122] 在本申请实施例中,待处理编码单元相邻子块是分别位于待处理编码单元左侧和上方的全部子块。
[0123] 步骤S407:基于所述待处理编码单元相邻子块缩放后的运动矢量及所述待处理编码单元相邻子块缩放后的时域运动矢量预测值,获取所述待处理编码单元相邻子块的运动矢量残差预测值。
[0124] 在本申请实施例中,待处理编码单元相邻子块缩放后的运动矢量残差预测值的获取采用与步骤S207相同的步骤
[0125] 步骤S409:基于所述待处理编码单元相邻子块的运动矢量残差预测值,对所述待处理编码单元相邻子块中时域运动矢量残差预测值不可得的子块进行填充,完成所述待处理编码单元相邻子块的时域运动矢量残差预测值的填充。
[0126] 在本申请实施例中,对待处理编码单元相邻子块的时域运动矢量残差预测值的填充包括第一阶段填充和第二阶段填充。其中,第一阶段填充是指对待处理编码单元相邻子块所在的行寻找距离最近的时域运动矢量预测值可得的子块,将其时域运动矢量预测值作为该子块的时域运动矢量预测值,完成第一阶段填充。第二阶段填充是指,在第一阶段填充的基础上,对待处理编码单元相邻子块的其它时域运动矢量预测值不可得的子块,寻找该子块所在的列中距离自己的时域运动矢量预测值可得的子块和/或第一阶段填充被填充的子块,将其时域运动矢量预测值作为该子块的时域运动矢量预测值。
[0127] 步骤S411:基于所述待处理编码单元的时域运动矢量预测值中待处理编码单元内部子块的时域运动矢量预测值,对所述待处理编码单元内部子块外部左侧和/或上方和/或下方和/或右侧进行填充操作和滤波操作,采用双线性插值方式获取所述待处理编码单元内部子块的最终运动矢量残差预测值。
[0128] 在本申请实施例中,对所述待处理编码单元内部子块外部左侧和/或上方和/或下方和/或右侧进行填充操作,具体包括:
[0129] Mv[i][y]=Mv[0][y],-2≤i<0
[0130] Mv[x][k]=Mv[x][0],-2≤k<0
[0131] Mv[j][y]=Mv[M-1][y],M≤j<M+2
[0132] Mv[x][l]=Mv[x][N-1],N≤l<N+2
[0133] 0≤x<M,0≤y<N
[0134] 其中,Mv[x][y]为滤波前待处理编码单元内部子块的时域运动矢量预测值;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行子块;i和j是以子块为单位的列坐标,k和l是以子块为单位的行坐标;M、N为当前编码单元以子块为单位的宽、高。
[0135] 在本申请实施例中,滤波操作为:
[0136] Mvh=(3*Mv[x-2][y]+8*Mv[x-1][y]+10*Mv[x][y]+8*Mv[x+1][y]+3*Mv[x+2][y])/32
[0137] Mvv=(3*Mv[x][y-2]+8*Mv[x][y-1]+10*Mv[x][y]+8*Mv[x][y+1]+3*Mv[x][y+2])/32
[0138] Mvf[x][y]=(Mvh+Mvv)/2
[0139] 0≤x<M
[0140] 0≤y<N
[0141] Mv[x][y]为滤波前待处理编码单元内部子块的时域运动矢量预测;Mvf[x][y]为滤波后子块的时域运动矢量预测;Mvh和Mvv分别是水平滤波和垂直滤波的临时中间结果;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行子块;M、N为当前编码单元以子块为单位的宽、高。
[0142] 图5为本申请实施例提供的使用双线性插值方式获取运动矢量残差预测值的示意图。在本申请实施例中,双线性插值方式为:
[0143] Mvdh=((M-x)*Mvdl[y]+x*Mvdt[M])/M
[0144] Mvdv=((N-y)*Mvdt[x]+y*Mvdl[N])/N
[0145] Mvd[x][y]=(Mvdh+Mvdv)/2
[0146] 0≤x<M
[0147] 0≤y<N
[0148] Mvdl为滤波后左方子块运动矢量残差预测;Mvdt为滤波后上方子块运动矢量残差预测;x、y分别为子块在当前编码单元内部的以子块为单位的列坐标和行坐标,x=0表示当前编码单元内部的第一列的子块,y=0表示当前编码单元内部的第一行的子块;M、N为当前编码单元以子块为单位的宽、高;Mvd[x][y]为当前编码单元内部每个子块的运动矢量残差预测。
[0149] 步骤S413:基于所述时域运动矢量预测值及待处理编码单元内部子块的最终运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量。
[0150] 采用本实施例提供的基于帧间预测的编码方法,基于待处理编码单元的相邻子块的运动矢量残差预测值,获取待处理编码单元内部子块的运动矢量残差预测值,从而实现帧间编码,能够在不增加编码复杂度的前提下,提高编码的准确率。
[0151] 上述内容详细说明了一种基于帧间预测的编码方法,与之相应的,本说明书还提供了一种基于帧间预测的编码装置,如图6所示。图6为本申请实施例提供的一种基于帧间预测的编码装置的示意图,该编码装置包括:
[0152] 时域运动矢量预测模块601,确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
[0153] 运动矢量残差预测模块603,基于所述时域运动矢量预测值,确定所述待处理编码单元的运动矢量残差预测值;
[0154] 运动矢量获取模块605,基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
[0155] 预测块获取模块607,基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0156] 进一步地,所述编码装置还包括标记模块609,具体包括:
[0157] 基于RDO决策,确定所述待处理编码单元的编码方法;
[0158] 输出标记到所述待处理编码单元所在的码流,其中,所述标记用于标记所述待处理编码单元的编码方法。
[0159] 本说明书还提供了一种基于帧间预测的解码方法,该解码方法包括:
[0160] 基于待预测编码单元的标记,获取待预测编码单元的编码方法,其中,所述标记用于标记所述待处理编码单元的编码方法;
[0161] 确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
[0162] 基于所述时域运动矢量预测值及所述待预测编码单元的编码方法,确定所述待处理编码单元的运动矢量残差预测值;
[0163] 基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
[0164] 基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0165] 上述内容详细说明了一种基于帧间预测的解码方法,与之相应的,本说明书还提供了一种基于帧间预测的解码装置,如图7所示。图7为本申请实施例提供的一种基于帧间预测的解码装置的示意图,该解码装置包括:
[0166] 解码标记读取模块701,基于待预测编码单元的标记,获取待预测编码单元的编码方法,其中,所述标记用于标记所述待处理编码单元的编码方法;
[0167] 时域运动矢量预测模块703,确定待处理编码单元的时域运动矢量预测值,其中,所述时域运动矢量预测值为所述待处理编码单元相邻子块和/或内部子块中时域运动矢量预测可得的子块的时域运动矢量预测值;
[0168] 运动矢量残差预测模块705,基于所述时域运动矢量预测值及所述待预测编码单元的编码方法,确定所述待处理编码单元的运动矢量残差预测值;
[0169] 运动矢量预测模块707,基于所述时域运动矢量预测值及所述运动矢量残差预测值,确定所述待处理编码单元内部子块的运动矢量;
[0170] 预测块获取模块709,基于所述待处理编码单元内部子块的运动矢量,进行运动补偿,确定所述待处理编码单元的预测块。
[0171] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0172] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0173] 本说明书实施例提供的装置、电子设备、非易失性计算机存储介质与方法是对应的,因此,装置、电子设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、电子设备、非易失性计算机存储介质的有益技术效果。
[0174] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0175] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0176] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0177] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0178] 本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0179] 本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据优化设备的处理器以产生一个机器,使得通过计算机或其他可编程数据优化设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0180] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据优化设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0181] 这些计算机程序指令也可装载到计算机或其他可编程数据优化设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0182] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0183] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0184] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
[0185] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0186] 本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0187] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0188] 以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈