图像编解码方法及装置与流程

文档序号:11548968阅读:183来源:国知局
图像编解码方法及装置与流程

本发明实施例涉及图像处理技术,尤其涉及一种图像编解码方法及装置。



背景技术:

视频会议、视频监控和网络电视等视频多媒体应用在生活工作中的广泛应用,使得视频图像质量、视频图像传输以及视频图像存储的需求越来越高,这使得图像编码技术应运而生。该图像编码技术可以通过对视频图像数据进行编码,减少视频图像数据的冗余信息,方便视频图像传输和存储,保证视频图像的质量。

现有的图像编码方法可以采用帧间预测(intra-pictureprediction)编码方式,根据待编码单元的相邻已编码单元的运动矢量确定该待编码单元的运动矢量,并根据该待编码单元的运动矢量确定该待编码单元的预测像素值,继而对该待编码单元的原始像素值和该预测像素值的残差值进行编码获得该待编码单元的码流。

由于该相邻已编码单元与该待编码单元的运动相关性,也对该待编码单元的运动矢量造成影响,因而该现有的图像编码方法中所确定的该待编码单元的运动矢量不够准确,从而使得图像编码的准确度较低。



技术实现要素:

本发明实施例提供一种图像编解码方法及装置,以提供图像编解码的准确度。

本发明实施例提供一种图像编码方法,包括:

按照第一预设规则从待编码单元的相邻已编码单元中确定出n个已编码单元;其中,n个已编码单元与待编码单元的运动预测模式相同;n为正整数;

根据第n已编码单元的运动矢量采用第一预设算法生成第n运动矢量组;n取遍不大于n的所有正整数;

按照第二预设规则在得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组;

根据所述最优运动矢量组采用第二预设算法确定所述待编码单元中每个像素单元的预测像素值;

根据所述每个像素单元的原始像素值与所述每个像素单元的预测像素值的差值确定所述每个像素单元的预测残差值;

对所述每个像素单元的预测残差值和所述最优运动矢量组的索引标识进行编码获得所述待编码单元对应的码流;所述最优运动矢量组的索引标识用于指示解码装置确定所述每个像素单元的预测像素值。

可选的,根据第n已编码单元的运动矢量按照第一预设算法生成第n运动矢量组,可包括:

根据第n已编码单元的运动矢量、第n已编码单元的像素坐标和m个控制点的像素坐标,采用第一预设算法确定出待编码单元的m个控制点的运动矢量预测值;

根据m个控制点的运动矢量预测值,生成第n运动矢量组;m为根据待编码单元的运动预测模式确定的正整数。

可选的,m个控制点包括所述待编码单元的左上顶点和右上顶点;

上述根据第n已编码单元的运动矢量、第n已编码单元的像素坐标和m个控制点的像素坐标,采用第一预设算法确定出待编码单元的m个控制点的运动矢量预测值,包括:

根据第n已编码单元的左上顶点的运动矢量(vx2,vy2)、第n已编码单元的右上顶点的运动矢量(vx3,vy3)、第n已编码单元的左下顶点的运动矢量(vx4,vy4)、第n已编码单元的左上顶点的像素坐标(x2,y2)、第n已编码单元的右上顶点的像素坐标(x3,y3)、第n已编码单元的左下顶点的像素坐标(x4,y4)和待编码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出待编码单元的左上顶点的运动矢量预测值(vx0,vy0);

公式(1);

根据第n已编码单元的左上顶点的运动矢量(vx2,vy2)、第n已编码单元的右上顶点的运动矢量(vx3,vy3)、第n已编码单元的左上顶点的像素坐标(x2,y2)、第n已编码单元的右上顶点的像素坐标(x3,y3)、待编码单元的左上顶点的运动矢量预测值(vx0,vy0)、待编码单元的左上顶点的像素坐标(x0,y0)及待编码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出待编码单元的右上顶点的运动矢量预测值(vx1,vy1);

公式(2)。

可选的,按照第二预设规则在得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组,可包括:

按照预设排序规则对n个运动矢量组进行排序,生成候选运动矢量队列;

若n大于或等于预设值,确定候选运动矢量队列中前预设个数的运动矢量组;

确定前预设个数的运动矢量组中各运动矢量组与待编码单元的匹配误差;

确定匹配误差最小的一个运动矢量组为最优运动矢量组。

可选的,预设排序规则包括:n个已编码单元从大到小的顺序。

可选的,按照第二预设规则在得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组,可以包括:

按照预设排序规则对n个运动矢量组进行排序;

若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于预设值,q为正整数;

将q个运动矢量组排列至n个运动矢量组之后,生成候选运动矢量队列;

确定候选运动矢量队列中前预设个数的运动矢量组;

确定前预设个数的运动矢量组中各运动矢量组与待编码单元的匹配误差;

确定匹配误差最小的一个运动矢量组为最优运动矢量组。

可选的,生成q个运动矢量组可包括:

从相邻已编码单元中确定待编码单元中第m控制点对应的已编码单元;第m控制点对应的已编码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将第m控制点对应的已编码单元的运动矢量,确定为第m控制点的运动矢量预测值;

根据m个控制点的运动矢量预测值,生成q个运动矢量组。

可替代地,生成q个运动矢量组可包括:

从相邻已编码单元中确定待编码单元中第m控制点对应的已编码单元;第m控制点对应的已编码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将第m控制点对应的已编码单元的运动矢量,确定为第m控制点的第一运动矢量预测值;

根据m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;

将相邻已编码单元中第j个已编码单元的运动矢量,确定为第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为相邻已编码单元的个数;j为正整数;

根据m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;

将k个第一运动矢量组排列至l个第二运动矢量组之后,生成q个运动矢量组。

可选的,将q个运动矢量组添加至排序后的n个运动矢量组之后,生成候选运动矢量队列,可包括:

确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;

根据q个运动矢量组对应的特征值,按照从小到大的顺序,对q个运动矢量组进行排序;

将排序后的q个运动矢量组添加至排序后的n个运动矢量组之后,生成候选运动矢量队列。

可选的,确定第q个运动矢量组对应的特征值,包括:

确定第q个运动矢量组中m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;

比较差值的绝对值与预设分量阈值的大小;预设分量阈值为待编码单元在同一预测方向上的范围;

若差值的绝对值小于或等于预设分量阈值,则确定第q个运动矢量组对应的特征值。

可选的,确定第q个运动矢量组对应的特征值可包括:

从该相邻已编码单元中确定另一控制点对应的已编码单元;该另一控制点对应的已编码单元与该另一控制点间的距离小于或等于预设距离;该另一控制点为待编码单元中m个控制点外的任一控制点;

将另一控制点对应的已编码单元的运动矢量,确定为另一控制点的运动矢量预测值;

根据另一控制点的运动矢量预测值和第q个运动矢量组中的m个控制点的运动矢量预测值,采用第三预设算法确定第q个运动矢量组对应的特征值。

可选的,待编码单元的运动预测模式包括:平移运动预测模式或仿射运动预测模式。

本发明实施例还提供一种图像解码方法,包括:

根据第一预设规则从待解码单元的相邻已解码单元中确定出n个已解码单元;其中,述n个已解码单元与待解码单元的运动预测模式相同;n为正整数;

根据第n已解码单元的运动矢量采用第一预设算法确定生成第n运动矢量组;n取遍不大于n的所有正整数;

对待解码单元对应的码流进行解码,获得每个像素单元的预测残差值和最优运动矢量组的索引标识;

根据最优运动矢量组的索引标识确定n个运动矢量组中的最优运动矢量组;

根据最优运动矢量组采用第二预设算法确定待解码单元中每个像素单元的预测像素值;

根据每个像素单元的预测像素值和每个像素单元的预测残差值的和确定每个像素单元的重建像素值。

可选的,根据第n已解码单元的运动矢量按照第一预设算法生成第n运动矢量组,可包括:

根据第n已解码单元的运动矢量、第n已解码单元的像素坐标和m个控制点的像素坐标,采用第一预设算法确定出待解码单元的m个控制点的运动矢量预测值;

根据m个控制点的运动矢量预测值,生成第n运动矢量组;m为根据待解码单元的运动预测模式确定的正整数。

可选的,m个控制点包括:待解码单元的左上顶点和右上顶点;

根据第n已解码单元的运动矢量、该第n已解码单元的像素坐标和m个控制点的像素坐标,采用第一预设算法确定出待解码单元的m个控制点的运动矢量预测值,包括:

根据第n已解码单元的左上顶点的运动矢量(vx2,vy2)、第n已解码单元的右上顶点的运动矢量(vx3,vy3)、第n已解码单元的左下顶点的运动矢量(vx4,vy4)、第n已解码单元的左上顶点的像素坐标(x2,y2)、第n已解码单元的右上顶点的像素坐标(x3,y3)、第n已解码单元的左下顶点的像素坐标(x4,y4)和待解码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出待解码单元的左上顶点的运动矢量预测值(vx0,vy0);

公式(1);

根据第n已解码单元的左上顶点的运动矢量(vx2,vy2)、第n已解码单元的右上顶点的运动矢量(vx3,vy3)、第n已解码单元的左上顶点的像素坐标(x2,y2)、第n已解码单元的右上顶点的像素坐标(x3,y3)、待解码单元的左上顶点的运动矢量预测值(vx0,vy0)、待解码单元的左上顶点的像素坐标(x0,y0)及待解码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出待解码单元的右上顶点的运动矢量预测值(vx1,vy1);

公式(2)。

可选的,根据最优运动矢量组的索引标识确定n个运动矢量组中的最优运动矢量组,可包括:

按照预设排序规则对n个运动矢量组进行排序,生成候选运动矢量队列;

若n大于或等于预设值,确定候选运动矢量队列中前预设个数的运动矢量组;

根据最优运动矢量组的索引标识确定前预设个数的运动矢量组中的最优运动矢量组。

可选的,预设排序规则包括:n个已解码单元的从大到小的顺序。

可选的,根据最优运动矢量组的索引标识确定n个运动矢量组中的最优运动矢量组,可包括:

按照预设排序规则对n个运动矢量组进行排序;

若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于所述预设值,q为正整数;

将q个运动矢量组排列至n个运动矢量组之后,生成候选运动矢量队列;

确定候选运动矢量队列中前预设个数的运动矢量组;

根据最优运动矢量组的索引标识确定前预设个数的运动矢量组中的最优运动矢量组。

可选的,生成q个运动矢量组包括:

从相邻已解码单元中确定待解码单元中第m控制点对应的已解码单元;第m控制点对应的已解码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将第m控制点对应的已解码单元的运动矢量,确定为第m控制点的运动矢量预测值;

根据m个控制点的运动矢量预测值,生成q个运动矢量组。

可替代的,生成q个运动矢量组包括:

从相邻已解码单元中确定待解码单元中第m控制点对应的已解码单元;第m控制点对应的已解码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将第m控制点对应的已解码单元的运动矢量,确定为第m控制点的第一运动矢量预测值;

根据m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;

将相邻已解码单元中第j个已解码单元的运动矢量,确定为第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为相邻已解码单元的个数;j为正整数;

根据m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;

将k个第一运动矢量组排列至l个第二运动矢量组之后,生成q个运动矢量组。

可选的,将q个运动矢量组添加至排序后的n个运动矢量组之后,生成候选运动矢量队列,包括:

确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;

根据q个运动矢量组对应的特征值,按照从小到大的顺序,对q个运动矢量组进行排序;

将排序后的q个运动矢量组添加至排序后的n个运动矢量组之后,生成候选运动矢量队列。

可选的,确定第q个运动矢量组对应的特征值,包括:

确定第q个运动矢量组中m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;

比较差值的绝对值与预设分量阈值的大小;预设分量阈值为待解码单元在同一预测方向上的范围;

若差值的绝对值小于或等于预设分量阈值,则确定第q个运动矢量组对应的特征值。

可选的,确定第q个运动矢量组对应的特征值包括:

从相邻已解码单元中确定另一控制点对应的已解码单元;另一控制点对应的已解码单元与另一控制点间的距离小于或等于预设距离;另一控制点为待解码单元中m个控制点外的任一控制点;

将另一控制点对应的已解码单元的运动矢量,确定为另一控制点的运动矢量预测值;

根据另一控制点的运动矢量预测值和第q个运动矢量组中的m个控制点的运动矢量预测值,采用第三预设算法确定第q个运动矢量组对应的特征值。

可选的,待解码单元的运动预测模式包括平移运动预测模式或仿射运动预测模式。

本发明实施例还提供一种图像编码装置,包括:

确定模块,用于按照第一预设规则从待编码单元的相邻已编码单元中确定出n个已编码单元;其中,n个已编码单元与待编码单元的运动预测模式相同;n为正整数;

计算模块,用于根据确定模块确定的第n已编码单元的运动矢量采用第一预设算法生成第n运动矢量组;n取遍不大于n的所有正整数;

确定模块,还用于按照第二预设规则在计算模块得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组;

计算模块,还用于根据确定模块确定的最优运动矢量组采用第二预设算法确定待编码单元中每个像素单元的预测像素值,根据每个像素单元的原始像素值与每个像素单元的预测像素值的差值确定每个像素单元的预测残差值;

编码模块,用于对每个像素单元的预测残差值和最优运动矢量组的索引标识进行编码获得待编码单元对应的码流;最优运动矢量组的索引标识用于指示解码装置确定每个像素单元的预测像素值。

可选的,计算模块,具体用于根据确定模块确定的第n已编码单元的运动矢量、第n已编码单元的像素坐标和m个控制点的像素坐标,采用第一预设算法确定出待编码单元的m个控制点的运动矢量预测值;根据该m个控制点的运动矢量预测值,生成该第n运动矢量组;m为根据该待编码单元的运动预测模式确定的正整数。

可选的,m个控制点包括:待编码单元的左上顶点和右上顶点;

计算模块,具有用于根据确定模块确定的第n已编码单元的左上顶点的运动矢量(vx2,vy2)、第n已编码单元的右上顶点的运动矢量(vx3,vy3)、第n已编码单元的左下顶点的运动矢量(vx4,vy4)、第n已编码单元的左上顶点的像素坐标(x2,y2)、第n已编码单元的右上顶点的像素坐标(x3,y3)、第n已编码单元的左下顶点的像素坐标(x4,y4)和待编码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出待编码单元的左上顶点的运动矢量预测值(vx0,vy0);

公式(1);

计算模块,还用于根据确定模块确定的第n已编码单元的左上顶点的运动矢量(vx2,vy2)、第n已编码单元的右上顶点的运动矢量(vx3,vy3)、第n已编码单元的左上顶点的像素坐标(x2,y2)、第n已编码单元的右上顶点的像素坐标(x3,y3)、待编码单元的左上顶点的运动矢量预测值(vx0,vy0)、待编码单元的左上顶点的像素坐标(x0,y0)及待编码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出待编码单元的右上顶点的运动矢量预测值(vx1,vy1);

公式(2)。

可选的,确定模块,具体用于按照预设排序规则对n个运动矢量组进行排序,生成候选运动矢量队列,若n大于或等于预设值,确定候选运动矢量队列中前预设个数的运动矢量组,确定前预设个数的运动矢量组中各运动矢量组与待编码单元的匹配误差,确定匹配误差最小的一个运动矢量组为最优运动矢量组。

可选的,预设排序规则包括:n个已编码单元从大到小的顺序。

可选的,确定模块,还用于按照预设排序规则对n个运动矢量组进行排序;若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于预设值,q为正整数;将q个运动矢量组排列至n个运动矢量组之后,生成候选运动矢量队列;确定候选运动矢量队列中前预设个数的运动矢量组;确定前预设个数的运动矢量组中各运动矢量组与待编码单元的匹配误差;确定匹配误差最小的一个运动矢量组为最优运动矢量组。

可选的,确定模块,还用于从相邻已编码单元中确定待编码单元中第m控制点对应的已编码单元;第m控制点对应的已编码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将第m控制点对应的已编码单元的运动矢量,确定为第m控制点的运动矢量预测值;根据m个控制点的运动矢量预测值,生成q个运动矢量组。

可选的,确定模块,还用于从相邻已编码单元中确定待编码单元中第m控制点对应的已编码单元;第m控制点对应的已编码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将第m控制点对应的已编码单元的运动矢量,确定为第m控制点的第一运动矢量预测值;根据m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;将相邻已编码单元中第j个已编码单元的运动矢量,确定为第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为相邻已编码单元的个数,j为正整数;根据m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;将k个第一运动矢量组排列至l个第二运动矢量组之后,生成q个运动矢量组。

可选的,确定模块,还用于确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;根据q个运动矢量组对应的特征值,按照从小到大的顺序,对q个运动矢量组进行排序;将排序后的q个运动矢量组添加至排序后的n个运动矢量组之后,生成候选运动矢量队列。

可选的,确定模块,还用于确定第q个运动矢量组中m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;比较差值的绝对值与预设分量阈值的大小;预设分量阈值为待编码单元在所述同一预测方向上的范围;若差值的绝对值小于或等于预设分量阈值,则确定第q个运动矢量组对应的特征值。

可选的,确定模块,还用于从相邻已编码单元中确定另一控制点对应的已编码单元;另一控制点对应的已编码单元与另一控制点间的距离小于或等于预设距离;另一控制点为待编码单元中m个控制点外的任一控制点;将另一控制点对应的已编码单元的运动矢量,确定为另一控制点的运动矢量预测值;根据另一控制点的运动矢量预测值和第q个运动矢量组中的m个控制点的运动矢量预测值,采用第三预设算法确定第q个运动矢量组对应的特征值。

可选的,待编码单元的运动预测模式包括平移运动预测模式或仿射运动预测模式。

本发明实施例还提供一种图像解码装置,包括:

确定模块,用于根据第一预设规则从待解码单元的相邻已解码单元中确定出n个已解码单元;其中,n个已解码单元与待解码单元的运动预测模式相同;n为正整数;

计算模块,用于根据确定模块确定的第n已解码单元的运动矢量采用第一预设算法确定生成第n运动矢量组;n取遍不大于n的所有正整数;

解码模块,用于对待解码单元对应的码流进行解码,获得每个像素单元的预测残差值和最优运动矢量组的索引标识;

确定模块,还用于根据解码模块确定的最优运动矢量组的索引标识确定n个运动矢量组中的最优运动矢量组;

计算模块,还用于根据确定模块确定的最优运动矢量组采用第二预设算法确定待解码单元中每个像素单元的预测像素值,根据每个像素单元的预测像素值和每个像素单元的预测残差值的和确定每个像素单元的重建像素值。

可选的,计算模块,具有用于根据确定模块确定的第n已解码单元的运动矢量、第n已解码单元的像素坐标和m个控制点的像素坐标,采用第一预设算法确定出待解码单元的m个控制点的运动矢量预测值;根据m个控制点的运动矢量预测值,生成第n运动矢量组;m为根据待解码单元的运动预测模式确定的正整数。

可选的,m个控制点包括待解码单元的左上顶点和右上顶点;

计算模块,具体用于根据确定模块确定的第n已解码单元的左上顶点的运动矢量(vx2,vy2)、第n已解码单元的右上顶点的运动矢量(vx3,vy3)、第n已解码单元的左下顶点的运动矢量(vx4,vy4)、第n已解码单元的左上顶点的像素坐标(x2,y2)、第n已解码单元的右上顶点的像素坐标(x3,y3)、第n已解码单元的左下顶点的像素坐标(x4,y4)和待解码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出待解码单元的左上顶点的运动矢量预测值(vx0,vy0);

公式(1);

计算模块,具体还用于根据确定模块确定的第n已解码单元的左上顶点的运动矢量(vx2,vy2)、第n已解码单元的右上顶点的运动矢量(vx3,vy3)、第n已解码单元的左上顶点的像素坐标(x2,y2)、第n已解码单元的右上顶点的像素坐标(x3,y3)、待解码单元的左上顶点的运动矢量预测值(vx0,vy0)、待解码单元的左上顶点的像素坐标(x0,y0)及待解码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出待解码单元的右上顶点的运动矢量预测值(vx1,vy1);

公式(2)。

可选的,确定模块,还用于按照预设排序规则对n个运动矢量组进行排序,生成候选运动矢量队列;若n大于或等于预设值,确定候选运动矢量队列中前预设个数的运动矢量组;根据最优运动矢量组的索引标识确定前预设个数的运动矢量组中的该最优运动矢量组。

可选的,预设排序规则包括:n个已解码单元的从大到小的顺序。

可选的,确定模块,还用于按照预设排序规则对n个运动矢量组进行排序;若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于预设值,q为正整数;将q个运动矢量组排列至n个运动矢量组之后,生成候选运动矢量队列;确定候选运动矢量队列中前预设个数的运动矢量组;根据最优运动矢量组的索引标识确定前预设个数的运动矢量组中的最优运动矢量组。

可选的,确定模块,还用于从相邻已解码单元中确定待解码单元中第m控制点对应的已解码单元;第m控制点对应的已解码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将第m控制点对应的已解码单元的运动矢量,确定为第m控制点的运动矢量预测值;根据m个控制点的运动矢量预测值,生成q个运动矢量组。

可选的,确定模块,还用于从相邻已解码单元中确定待解码单元中第m控制点对应的已解码单元;第m控制点对应的已解码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将第m控制点对应的已解码单元的运动矢量,确定为第m控制点的第一运动矢量预测值;根据m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;将相邻已解码单元中第j个已解码单元的运动矢量,确定为第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为相邻已解码单元的个数;j为正整数;根据m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;将k个第一运动矢量组排列至l个第二运动矢量组之后,生成q个运动矢量组。

可选的,确定模块,还用于确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;根据q个运动矢量组对应的特征值,按照从小到大的顺序,对q个运动矢量组进行排序;将排序后的q个运动矢量组添加至排序后的n个运动矢量组之后,生成候选运动矢量队列。

可选的,确定模块,还用于确定第q个运动矢量组中m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;比较差值的绝对值与预设分量阈值的大小;预设分量阈值为待解码单元在同一预测方向上的范围;若差值的绝对值小于或等于预设分量阈值,则确定第q个运动矢量组对应的特征值。

可选的,确定模块,还用于从相邻已解码单元中确定另一控制点对应的已解码单元;另一控制点对应的已解码单元与另一控制点间的距离小于或等于预设距离;另一控制点为待解码单元中m个控制点外的任一控制点;将另一控制点对应的已解码单元的运动矢量,确定为另一控制点的运动矢量预测值;根据另一控制点的运动矢量预测值和第q个运动矢量组中的m个控制点的运动矢量预测值,采用第三预设算法确定第q个运动矢量组对应的特征值。

可选的,待解码单元的运动预测模式包括平移运动预测模式或仿射运动预测模式。

本发明实施例还提供一种图像编码装置,包括:处理器、存储器、通信接口和总线;其中,处理器与存储器、通信接口通过总线连接;

存储器用于存储指令;

处理器用于执行指令,当处理器执行存储器存储的指令时,使得处理器执行上述任一图像编码方法。

本发明实施例还提供一种图像解码装置,包括:处理器、存储器、通信接口和总线;其中,处理器与存储器、通信接口通过总线连接;

存储器用于存储指令;

处理器用于执行指令,当处理器执行存储器存储的指令时,使得处理器执行上述任一的图像解码方法。

本发明实施例图像编解码方法及装置,可根据第一预设规则从待编码单元的相邻已编码单元中确定出n个已编码单元,该n个已编码单元与该待编码单元的运动预测模式相同,n为正整数,根据第n已编码单元的运动矢量采用第一预设算法生成第n运动矢量组,n取遍不大于n的所有正整数;按照第二预设规则在得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组;根据该最优运动矢量组采用第二预设算法确定该待编码单元中每个像素单元的预测像素值,根据该每个像素单元的原始像素值与该每个像素单元的预测像素值的差值确定该每个像素单元的预测残差值,对该每个像素单元的预测残差值和该最优运动矢量组的索引标识进行编码获得该待编码单元对应的码流,该最优运动矢量组的索引标识用于指示解码装置确定该每个像素单元的预测像素值。由于该n个已编码单元与该待编码单元的运动预测模式相同,则该n个已编码单元与该待编码单元的运动相关性较高,而该最优运动矢量组是从根据该n个已编码单元的运动矢量确定的n个运动矢量组中确定的,那么根据该最优运动矢量组确定该待编码单元中每个像素单元的预测像素值则更准确,编码准确度更高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的图像编码方法的流程图;

图2为本发明实施例一的图像编码方法中待编码单元与相邻已编码单元的结构示意图;

图3为本发明实施例二提供的一种图编码方法的流程图;

图4为本发明实施例三提供的一种图像解码方法的流程图;

图5为本发明实施例四提供的一种图像编码装置的结构示意图;

图6为本发明实施例五提供的一种图像解码装置的结构示意图;

图7为本发明实施例六提供的图像编码装置的结构示意图;

图8为本发明实施例七提供的图像解码装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的图像编码方法及装置、图像解码方法及装置,可应用于卫星及陆上电视广播系统、视频会议、安防监控、医疗示教、课堂录播、庭审系统等场景中,通过采用帧间预测模式对视频图像的待处理单元进行运动预测,从而根据该运动预测结果对该视频图像进行编解码。其中,该图像编码方法及装置,可通过运动预测获得该视频图像中待编码单元中各像素单元的预测像素值,并对该各像素单元的预测像素值与该各像素单元的原始像素值的差值进行编码获得该待编码单元对应的码流,以通过对该待编码单元对应的码流进行存储或传输实现该待编码单元对应的图像的存储或传输。对应的,该图像解码方法及装置,可通过运动预测获得该视频图像中待解码单元中各像素单元的预测像素值,通过对该待解码单元对应的码流进行解码,获得该待解码单元的各像素单元的预测像素值与该各像素单元的原始像素值的差值,继而根据该差值与该预测像素值获得该各像素单元的重建像素值,从而可根据该各像素单元的重建像素值获得该待解码单元对应的图像。该待解码单元对应的码流例如可以为该图像解码装置接收到的图像编码装置传输的,也可以为该图像解码装置从存储设备中获取到的,该存储设备中的码流可以为该图像解码装置存储在该存储设备。

本发明实施例一提供一种图像编码方法。该图像编码方法可由图像编码装置执行,该图像编码装置例如可以通过软件和/或硬件的形式集成在具有图像处理功能的电子设备中,该电子设备例如可以为智能终端、个人计算机、消费电子产品的或视频服务器等。图1为本发明实施例一提供的图像编码方法的流程图。如图1所示,该方法可包括:

s101、按照第一预设规则从待编码单元的相邻已编码单元中确定出n个已编码单元;其中,n个已编码单元与该待编码单元的运动预测模式相同。

具体地,该待编码单元可以为高效视频编码(highefficiencyvideocoding,简称hevc)标准及后续编码标准中的编码单元(codingunit,简称cu)。在该hevc标准中,最大的编码单元可以为编码树单元(codingtreeunit,简称ctu),每个ctu逐级划分可获得更小的cu。该cu的大小可包括四个级别,如64×64、32×32、16×16、8×8四个级别。其中,64×64级别的cu包括:64×64个像素点;32×32级别的cu包括:32×32个像素点;16×16级别的cu包括:16×16个像素点;8×8级别的cu包括:8×8个像素点。该待编码单元可以为64×64、32×32、16×16、8×8四个级别中任一级别对应的编码单元。

视频图像中一个帧图像内的不同编码单元之间相互独立,该不同编码单元的可能相同,也可能不同。也就是说,在每个帧图像中,该图像编码装置可以是以每个编码单元为单位进行编码,那么对该不同编码单元进行编码使用的运动预测模式可能相同,也可能不同。该图像编码装置可采用编码单元的运动预测模式对该编码单元中的各像素单元进行运动预测,以确定该各像素单元的预测像素值,继而实现编码。该运动预测模式可用以确定编码单元中控制点的运动矢量,继而确定编码单元中各像素单元的像素预测值。该像素单元例如可以包括:像素点或像素分块,其中,像素分块可包括多个像素点。

该待编码单元的相邻已编码单元可以为与该待编码单元的各边界相邻的位置的已编码单元。

如上所述的s101中按照第一预设规则从待编码单元的相邻已编码单元中确定出n个已编码单元,可以是包括:采用预设的遍历顺序,对该待编码单元的相邻已编码单元进行遍历,从而确定该相邻已编码单元中,确定运动预测模式与该待编码单元相同的n个已编码单元。其中,该对该相邻已编码单元进行遍历,可以是判断该相邻已编码单元的运动预测模式与该待编码单元的运动预测模式是否相同。对于已编码单元来说,运动预测模式是确定的,则该相邻已编码单元的运动预测模式可以为该相邻已编码单元进行编码时所采用的运动预测模式。该待编码单元的运动预测模式可以预测的运动预测模式。

如上所述s101中按照第一预设规则从待编码单元的相邻已编码单元中确定出n个已编码单元之后,该方法还可包括:

确定该运动预测模式对应的指示信息。

若该运动预测模式包括仿射运动预测模式,可以确定该仿射运动预测模式对应的指示信息,如语法元素仿射-合并-标签(affine-merge-flag),并将该affine-merge-flag配置为1。

若该运动预测模式包括仿射运动预测模式,但该相邻已编码单元中没有与该待编码单元的运动预测模式相同的已编码单元,则可该affine-merge-flag配置为0。

举例来说,若该待编码单元的运动预测模式可以为仿射运动预测模式,则图像编码装置例如可以是采用预设的遍历顺序,对该待编码单元的相邻已编码单元进行遍历,确定该相邻已编码单元中,确定运动预测模式为仿射运动预测模式的n个已编码单元。该仿射运动预测模式也可称为仿射变换运动预测模式。该预设的遍历顺序可以为该待编码单元的所有相邻已编码单元的遍历顺序。该n个已编码单元中每个已编码单元例如可以为一个4×4的单元。

图2为本发明实施例一的图像编码方法中待编码单元与相邻已编码单元的结构示意图。如图2所示,该待编码单元的相邻已编码单元例如可包括:已编码单元a、已编码单元b、已编码单元c、已编码单元d及已编码单元e。若该待编码单元的运动预测模式为仿射运动预测模式,则该待编码单元的控制点可以为多个,如2个。该2个控制点例如可以为该待编码单元中左上顶点和该待编码单元中右上顶点。该待编码单元中左上顶点可表示为像素单元0,该待编码单元中右上顶点可表示为像素单元1。

该图像编码装置可以是在第一预测方向上,依次对已编码单元a、已编码单元b进行遍历,找到该第一预测方向上的第一个运动预测模式为仿射运动预测模式的已编码单元,如已编码单元b;在第二预测方向上,依次对已编码单元c、已编码单元d及已编码单元e进行遍历,找到第一个运动预测模式为仿射运动预测模式的已编码单元,如已编码单元d。

可替换的,该图像编码装置可以是依次根据已编码单元a、已编码单元b、已编码单元c、已编码单元d及已编码单元e进行遍历,找到第一个运动预测模式为仿射运动预测模式的已编码单元,如已编码单元b。

s102、根据第n已编码单元的运动矢量采用第一预设算法生成第n运动矢量组,n取遍不大于n的所有正整数。

可选的,s102中根据第n已编码单元的运动矢量采用第一预设算法生成第n运动矢量组可以包括:

根据该第n已编码单元的运动矢量、该第n已编码单元的像素坐标,以及该待编码单元的m个控制点的像素坐标,采用该第一预设算法确定出该m个控制点的运动矢量预测值;m为根据该待编码单元的运动预测模式确定的正整数;

根据该m个控制点的运动矢量预测值,生成该第n运动矢量组。

具体地,该m个控制点可包括位于该待编码单元的顶点位置的像素单元。若该待编码单元的运动预测模式为仿射运动预测模式,则该m可以为多个,该m个控制点可以包括该待编码单元中的m个顶点。

举例来说,若该待编码单元的运动预测模式为仿射运动预测模式,m可以为2,该m个控制点例如可以包括该待编码单元中左上顶点和该待编码单元中右上顶点。该待编码单元中左上顶点可以为图2中的像素单元0,该待编码单元中右上顶点可以为图2中的像素单元1。若该s101中确定的n个已编码单元中第n已编码单元例如可以为图2中的已编码单元b。以下,以已编码单元b为例进行说明,该图2中该已编码单元b中的至少两个像素单元可以为3个,可分别为该已编码单元b中左上顶点、该已编码单元b中右上顶点、该已编码单元b中左下顶点。其中,该已编码单元b中左上顶点可以为像素单元2、该已编码单元b中右上顶点可表示为像素单元3,该已编码单元b中左下顶点可表示为像素单元4。

如上所述根据该第n已编码单元的运动矢量、该第n已编码单元的像素坐标和该m个控制点的像素坐标,采用该第一预设算法确定出该待编码单元的m个控制点的运动矢量预测值,可以包括;

根据该第n已编码单元的左上顶点的运动矢量(vx2,vy2)、该第n已编码单元的右上顶点的运动矢量(vx3,vy3)、该第n已编码单元的左下顶点的运动矢量(vx4,vy4)、该第n已编码单元的左上顶点的像素坐标(x2,y2)、该第n已编码单元的右上顶点的像素坐标(x3,y3)、该第n已编码单元的左下顶点的像素坐标(x4,y4)和该待编码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出该待编码单元的左上顶点的运动矢量预测值(vx0,vy0)。

公式(1)

根据该第n已编码单元的左上顶点的运动矢量(vx2,vy2)、该第n已编码单元的右上顶点的运动矢量(vx3,vy3)、该第n已编码单元的左上顶点的像素坐标(x2,y2)、该第n已编码单元的右上顶点的像素坐标(x3,y3)、该待编码单元的左上顶点的运动矢量预测值(vx0,vy0)、该待编码单元的左上顶点的像素坐标(x0,y0)及该待编码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出该待编码单元的右上顶点的运动矢量预测值(vx1,vy1)。

公式(2)

s103、按照第二预设规则在得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组。

可选的,如上s103中按照第二预设规则在得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组,可包括:

按照预设排序规则对该n个运动矢量组进行排序,生成候选运动矢量队列;

若n大于或等于预设值,确定该候选运动矢量队列中前预设个数的运动矢量组;

确定该前预设个数的运动矢量组中各运动矢量组与该待编码单元的匹配误差;

确定该匹配误差最小的一个运动矢量组为该最优运动矢量组。

具体地,该预设排序规则可包括:该n个已编码单元的从大到小的顺序。

该n个已编码单元中每个已编码单元的大小例如可以为该每个已编码单元的水平宽度与垂直高度的乘积。该n个已编码单元中每个已编码单元的大小例如可以是根据如下公式(3)确定。

si=wi×hi公式(3)

其中,si为该每个已编码单元的大小,wi为该每个已编码单元的水平宽带,hi为该每个已编码单元的垂直高度,i为该每个已编码单元的标识。

举例来说,若该n为2。该n个已编码单元例如可以为图2所示的已编码单元b和已编码单元d。

已编码单元b的大小可以为sb,sb为wb与hb的乘积;wb为该已编码单元b的水平宽带,hb为该已编码单元b的垂直高度。已编码单元d的大小可以为sd,sd为wd与hd的乘积;wd为该已编码单元d的水平宽带,hd为该已编码单元d的垂直高度。若该已编码单元b大于该已编码单元d,则该遍历顺序例如可表示为b>d。

该候选运动矢量队列中,根据该已编码单元b生成的运动矢量组对应的索引标识例如可以为1,根据该已编码单元d生成的运动矢量组对应的索引标识例如可以为2。

举例来说,若n为10,也就是说,该候选运动矢量队列包括10个运动矢量组,该候选运动矢量队列中前预设个数的运动矢量组例如可以为该10个运动矢量组中的前5个运动矢量组。

可选的,从该候选运动矢量队列中前预设个数的运动矢量组中选择该最优匹配运动矢量组,可以是:确定该前预设个数的运动矢量组中每个运动矢量组与该待编码单元的匹配误差;将与该待编码单元的匹配误差最小的一个运动矢量组确定为该最优匹配运动矢量组。

其中,确定该前预设个数的运动矢量组中每个运动矢量组与该待编码单元的匹配误差,可以是:根据该每个运动矢量组确定该每个运动矢量组对应的该待编码单元中每个像素单元的预测像素值;

根据该每个运动矢量组对应的该每个像素单元的预测像素值,与,该每个像素单元的原始像素值,的平方误差和(sumofsquareddifferences,简称ssd)或者绝对误差和(sumofabsolutedifferences,简称sad),确定该每个运动矢量组对应的率失真代价(ratedistortioncost,简称rdcost);

根据该每个运动矢量组对应的率失真代价确定该每个运动矢量组与该待编码单元的匹配误差。

具体地,上述步骤中根据该每个运动矢量组确定该每个运动矢量组对应的该待编码单元中每个像素单元的预测像素值,可以包括:根据该每个运动矢量组确定该每个像素单元的运动矢量预测值,继而根据该每个像素单元的运动矢量预测值,确定该每个运动矢量组对应的率失真代价。

举例来说,以sad为例,图像编码装置例如可以是根据该每个运动矢量组对应的该每个像素单元的预测像素值,与,该每个像素单元的原始像素值,的sad、与该待编码单元对应的码率,采用如下公式(4)确定该每个运动矢量组对应的率失真代价。

j=sad+λr公式(4)

其中,j为该每个运动矢量组对应的率失真代价;sad为该每个运动矢量组对应的该每个像素单元的预测像素值,与,该每个像素单元的原始像素值,的sad;r为该待编码单元对应的码率;λ为拉格朗日乘子,λ为预设常数。

s104、根据该最优运动矢量组采用第二预设算法确定该待编码单元中每个像素单元的预测像素值。

可选的,该s104中根据该最优运动矢量组采用第二预设算法确定该待编码单元中每个像素单元的预测像素值可以包括:

根据该最优运动矢量组中,m个控制点的运动矢量预测值,以及,该待编码单元中每个像素单元的像素坐标采用该第二预设算法确定该每个像素单元的运动矢量预测值;

在预设参考帧中根据该每个像素单元的运动矢量预测值确定该每个像素单元的预测像素值。

举例来说,若该待编码单元的运动预测模式为仿射运动预测模式,如图2所示,该待编码单元中控制点例如可以为2个,分别为该待编码单元中左上顶点和该待编码单元中右上顶点。

该图像编码装置例如可以是根据该最优运动矢量组中,2个控制点的运动矢量预测值,以及,该待编码单元中每个像素单元的像素坐标,采用如下公式(5)确定该每个像素单元的运动矢量预测值。

公式(5)

其中,(vx,vy)为该每个像素单元的运动矢量预测值,vx为该每个像素单元的水平运动矢量预测值,vy为该每个像素单元的垂直运动矢量预测值。(x,y)为该每个像素单元的像素坐标,x为该每个像素单元的水平像素坐标,y为该每个像素单元的垂直像素坐标。w为该待编码单元的水平宽度。

s105、根据该每个像素单元的原始像素值与该每个像素单元的预测像素值的差值确定该每个像素单元的预测残差值。

s106、对该每个像素单元的预测残差值和该最优运动矢量组的索引标识进行编码获得该待编码单元对应的码流;该最优运动矢量组的索引标识用于指示解码装置确定该每个像素单元的预测像素值。

具体地,该s106中可以是对该每个像素单元的预测残差值和该最优运动矢量组的索引标识依次进行变换(transform)、量化(quantization)后再进行编码,获得该待编码单元对应的码流。

其中,该变换可以为卡洛南-洛伊变换(karhunen-loèvetransform,简称klt)、离散傅立叶变换和离散余弦变换(discretecosinetransform,简称dct)等变换中任一。该编码可以为熵(entropy)编码。

可选的,该s106中可以是对该每个像素单元的预测残差值、该最优运动矢量组的索引标识及该预设参考帧的索引标识进行编码获得该待编码单元对应的码流。

可选的,该s106中可以是对该每个像素单元的预测残差值、该最优运动矢量组的索引标识、该预设参考帧的索引标识、及该待编码单元的运动预测模式对应的指示信息进行编码获得该待编码单元对应的码流。

由于该n个已编码单元为该待编码单元的相邻已编码单元中运动预测模式相同的已编码单元,则该n个已编码单元与该待编码单元的运动相关性较高。由于,该n个运动矢量组是根据该n个已编码单元的运动矢量确定的,那么根据该n个运动矢量组中的最优运动矢量组确定的该待编码单元中每个像素单元的运动矢量预测值则更准确,从而使得编码精度更准确。

并且,该候选运动该最优运动矢量组可以是从候选运动矢量队列中前预设个数的运动矢量组中确定的,而该候选运动矢量队列是根据排序后的n个运动矢量组所生成的,那么该最优运动矢量组在该候选运动矢量队列中的索引标识较小,使得对该最优运动矢量组的索引标识进行编码的比特数较少,从而提高编码效率。

本发明实施例一提供的图像编码方法,可按照第一预设规则从待编码单元的相邻已编码单元中确定n个已编码单元,n个已编码单元与待编码单元的运动预测模式相同,根据第n已编码单元的运动矢量采用第一预设算法生成第n运动矢量组,n取遍不大于n的所有正整数,按照第二预设规则在得到的n个运动矢量组中确定一个运动矢量组为最优运动矢量组,确定该最优运动矢量组采用第二预设算法确定该待编码单元中每个像素单元的预测像素值,根据该每个像素单元的原始像素值与该每个像素单元的预测像素值的差值确定该每个像素单元的预测残差值,对该每个像素单元的预测残差值和该最优匹配运动矢量组的索引标识进行编码获得该待编码单元对应的码流。由于该n个已编码单元与该待编码单元的运动预测模式相同,则该n个已编码单元与该待编码单元的运动相关性较高,而该最优运动矢量组从根据该n个已编码单元的运动矢量确定的n个运动矢量组中确定的,那么根据该最优运动矢量组确定该待编码单元中每个像素单元的预测像素值则更准确,从而使得图像编码的准确度更高。

本发明实施例二还提供一种图像编码方法。图3为本发明实施例二提供的一种图编码方法的流程图。如图3所示,该方法在上述实施例中s103中所述按照第二预设规则在得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组,可包括:

s301、预设的排序规则对该n个运动矢量组进行排序。

该预设排序规则例如可以为该n个已编码单元的大小顺序。

s302、若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于该预设值,q为正整数。

若n小于预设值,为保证候选运动矢量组中运动矢量组的个数,从而使得选择的最优运动矢量组的准确度,还需生成q个运动矢量组。

可选的,该s302中生成q个运动矢量组可包括:

从该相邻已编码单元中确定该待编码单元中第m控制点对应的已编码单元;第m控制点对应的已编码单元与第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将该第m控制点对应的已编码单元的运动矢量,确定为该第m控制点的运动矢量预测值;

根据该m个控制点的运动矢量预测值,生成该q个运动矢量组。

举例来说,如上图2所示,若该相邻已编码单元包括:已编码单元a、已编码单元b、已编码单元c、已编码单元d及已编码单元e。若该待编码单元中控制点的个数为2。该相邻已编码单元中,该待编码单元的左上顶点对应的已编码单元例如可以包括已编码单元c;该相邻已编码单元中,该待编码单元的右上顶点对应的已编码单元例如可以包括:已编码单元d、已编码单元e。

若该待编码单元的左上顶点对应的已编码单元例如可以包括已编码单元c,则该左上顶点的一个运动矢量预测值可以为v0c。v0c可以为根据已编码单元c的运动矢量确定的该左上顶点的运动矢量预测值。

若该待编码单元的右上顶点对应的已编码单元例如可以包括已编码单元d和已编码单元e,则该右上顶点的一个运动矢量预测值可以为v1d,该右上顶点的另一个运动矢量预测值可以为v1e。v1d可以为根据已编码单元d的运动矢量确定的该右上顶点的运动矢量预测值;v1e可以为根据已编码单元e的运动矢量确定的该右上顶点的运动矢量预测值。

该q个运动矢量组可包括:(v0c,v1d)和(v0c,v1e)两个运动矢量组。q例如可以为2。

可替代地,该s302中生成q个运动矢量组可包括:

从该相邻已编码单元中确定该待编码单元中第m控制点对应的已编码单元;该第m控制点对应的已编码单元与该第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将该第m控制点对应的已编码单元的运动矢量,确定为该第m控制点的第一运动矢量预测值;

根据该m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;

将该相邻已编码单元中第j个已编码单元的运动矢量,确定为该第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为该相邻已编码单元的个数;j为正整数;

根据该m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;

将该k个第一运动矢量组排列至该l个第二运动矢量组之后,生成该q个运动矢量组。

具体地,该q个运动矢量组可以是分多次生成的,如先生成k个第一运动矢量组,再生成l个第二运动矢量组。

s303、将该q个运动矢量组排列至该n个运动矢量组之后,生成候选运动矢量队列。

s304、确定该候选运动矢量队列中前预设个数的运动矢量组。

该s304中确定该候选运动矢量队列中前预设个数的运动矢量组的实现过程与上述实施例一中类似,在此不再赘述。

s305、确定该前预设个数的运动矢量组中各运动矢量组与该待编码单元的匹配误差。

该s305中各运动矢量组与该待编码单元的匹配误差的具体实现过程与上述实施例一中类似,在此不再赘述。

s306、确定该匹配误差最小的一个运动矢量组为该最优运动矢量组。

可选的,如上述s303中将该q个运动矢量组添加至该排序后的该n个运动矢量组之后,生成候选运动矢量队列,可以包括:

确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;

根据该q个运动矢量组对应的特征值,按照从小到大的顺序,对该q个运动矢量组进行排序;

将该排序后的该q个运动矢量组添加至该排序后的该n个运动矢量组之后,生成该候选运动矢量队列。

可选的,如上所述确定第q个运动矢量组对应的特征值,可以包括:

确定该第q个运动矢量组中该m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;

比较该差值的绝对值与预设分量阈值的大小;该预设分量阈值为该待编码单元在该同一预测方向上的范围;

若该差值的绝对值小于或等于该预设分量,则确定该第q个运动矢量组对应的特征值。

具体地,该预设分量阈值可以是根据该待编码单元在水平预测方向上的水平宽度确定的;该预设分量阈值还可以是根据该待编码单元在垂直预测方向上的垂直高度确定的。

举例来说,若该待编码单元的m个控制点包括:如图2所示的该待编码单元的左上顶点的像素单元和右上顶点。该q个运动矢量组可包括:(v0c,v1d)和(v0c,v1e)两个运动矢量组,其中,v0c为该待编码单元中左上顶点的运动矢量预测值,v1d和v1e均为该待编码单元中右上顶点的运动矢量预测值。

该实施例中例如可以是根据如下公式(6),比较该m个控制点中相邻控制点的运动矢量预测值在同一预测方向上的分量的差值,与,预设分量阈值的大小。

公式(6)

其中,vx0i为左上顶点的运动矢量预测值在水平预测方向上的分量;vy0i为左上顶点的运动矢量预测值在垂直预测方向上的分量;vx1j为右上顶点的运动矢量预测值在水平预测方向上的分量;vy1j为右上顶点的运动矢量预测值在垂直预测方向上的分量。其中,i可以为c,j可以为d和e中任一。w为该待编码单元的水平宽度,h为该待编码单元的垂直高度。

若i为c,j为d和e,vx0i与vx1j的差值的绝对值均小于或等于vy0i与vy1j的差值的绝对值小于或等于则对该运动矢量组(v0c,v1d)和(v0c,v1e)进行排序。

可选的,如上所述的确定第q个运动矢量组对应的特征值可以包括:

从该相邻已编码单元中确定另一控制点对应的已编码单元;该另一控制点对应的已编码单元与该另一控制点间的距离小于或等于预设距离;该另一控制点为该待编码单元中该m个控制点外的任一控制点;

将该另一控制点对应的已编码单元的运动矢量确定为该另一控制点的运动矢量预测值;

根据该另一控制点的运动矢量预测值,和,该第q个运动矢量组中的该m个控制点的运动矢量预测值,采用第三预设算法确定该第q个运动矢量组对应的特征值。

举例来说,若该待编码单元中该m个控制点可以包括该待编码单元的左上顶点和右上顶点,该另一个控制点可以为该待编码单元的左下顶点,如图2中的该待编码单元中的像素单元5。

该另一控制点对应的已编码单元可以包括:已编码单元a和已编码单元b,因而可将该已编码单元a的运动矢量确定为该另一控制点的运动矢量预测值为v5a,将该已编码单元b的运动矢量确定为该另一控制点的运动矢量预测值为v5b

该实施例例如可以是根据该另一控制点的运动矢量预测值,和,第q个运动矢量组中的该m个控制点的运动矢量预测值,采用如下公式(7)确定该第q个运动矢量组对应的特征值。

d(v)=abs((vx1j-vx0i)×h-(vy5k-vx0i)×w)+abs((vy1j-vy0i)×h+(vx5k-vx0i)×w)公式(7)

其中,d(v)为该第q个运动矢量组对应的特征值。abs为绝对值函数;vx5k为该另一控制点,如左下顶点的运动矢量预测值在水平预测方向上的分量;vy5k为该另一控制点,如左下顶点的运动矢量预测值在垂直预测方向上的分量。其中,k可以为a和b中任一。

可选的,该待编码单元的运动预测模式可包括:平移运动预测模式或仿射运动预测模式。

若该待编码单元的运动预测模式包括平移运动预测模式,该控制点的个数,即m可以为1;若该待编码单元的运动预测模式包括仿射运动预测模式,该控制点的个数,即m可以为多个。

本发明实施例二提供多种确定候选运动矢量队列的实现过程,可更好地保证根据该候选运动矢量队列中选择的最优运动矢量组确定该待编码单元中每个像素单元的预测像素值则更准确,从而使得编码精度更准确,还可使得对该最优运动矢量组的索引标识进行编码的比特数较少,从而提高编码效率。

本发明实施例三提供一种图像解码方法,该图像解码方法为上述图像编码方法对应的解码方法。该图像解码方法可由图像解码装置执行,该图像解码装置例如可以通过软件和/或硬件的形式集成在具有图像处理功能的电子设备中,该电子设备例如可以为智能终端、个人计算机、消费电子产品的或视频服务器等。图4为本发明实施例三提供的一种图像解码方法的流程图。如图4所示,该方法可包括:

s401、根据第一预设规则从待解码单元的相邻已解码单元中确定出n个已解码单元;其中,n个已解码单元与所述待解码单元的运动预测模式相同。

该s401的具体实现过程与上述实施例中s101类似,在此不再赘述。

如上所述s401中根据该第一预设规则从待解码单元的相邻已解码单元中确定出n个已解码单元之前,该方法还可包括:

确定该待编码单元的运动预测模式。

具体地,如上确定该待编码单元的运动预测模式可以包括:对该待解码单元对应的语法元素进行解析,获得该待编码单元的运动预测模式。若该解析后的语法元素affine-merge-flag为1,则该待编码单元的运动预测模式为仿射运动预测模式;若该解析后的语法元素affine-merge-flag为0,则该待编码单元的运动预测模式为平移运动预测模式。

s402、根据第n个已解码单元的运动矢量采用第一预设算法生成第n运动矢量组;n取遍不大于n的所有正整数。

该s402的具体实现过程与上述实施例中s102类似,在此不再赘述。

s403、对该待解码单元对应的码流进行解码,获得该每个像素单元的预测残差值和最优运动矢量组的索引标识。

具体地,该s403中可以是对该待编码单元对应的码流进行解码,并对解码后的信息依次进行反量化(quantization)、反变换(transform),继而获得该每个像素单元的预测残差值,和,该最优匹配运动矢量组的索引标识。其中,该反变换可以为上述实施例中s106中变换对应的逆变换,该反量化可以为上述实施例中s106中量化对应的反量化,该解码可以为上述s106中编码对应的解码,如熵编码对应的解码。

s404、根据该最优运动矢量组的索引标识确定n个运行矢量组中的该最优运动矢量组。

该最优运动矢量组的索引标识可以为该最优运动矢量组在该n个运动矢量组中的索引号。

s405、根据该最优运动矢量组采用第二预设算法确定该待解码单元中每个像素单元的预测像素值。

该s405中确定该待解码单元中每个像素单元的预测像素值的过程可以与上述实施例中104中类似,在此不再赘述。

s406、根据该每个像素单元的预测像素值和该每个像素单元的预测残差值之和确定该每个像素单元的重建像素值。

可选的,如上所述s402中根据第n已解码单元的运动矢量采用第一预设算法生成第n运动矢量组可包括:

根据该第n已解码单元的运动矢量、该第n已解码单元的像素坐标和该m个控制点的像素坐标,采用该第一预设算法确定出该待解码单元的m个控制点的运动矢量预测值;

根据该m个控制点的运动矢量预测值,生成该第n运动矢量组;m为根据该待解码单元的运动预测模式确定的正整数。

可选的,该m个控制点包括:该待解码单元的左上顶点和右上顶点。

如上所述的根据该第n已解码单元的运动矢量、该第n已解码单元的像素坐标和该m个控制点的像素坐标,采用该第一预设算法确定出该待解码单元的m个控制点的运动矢量预测值,可以包括:

根据该第n已解码单元的左上顶点的运动矢量(vx2,vy2)、该第n已解码单元的右上顶点的运动矢量(vx3,vy3)、该第n已解码单元的左下顶点的运动矢量(vx4,vy4)、该第n已解码单元的左上顶点的像素坐标(x2,y2)、该第n已解码单元的右上顶点的像素坐标(x3,y3)、该第n已解码单元的左下顶点的像素坐标(x4,y4)和该待解码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出该待解码单元的左上顶点的运动矢量预测值(vx0,vy0);

公式(1);

根据该第n已解码单元的左上顶点的运动矢量(vx2,vy2)、该第n已解码单元的右上顶点的运动矢量(vx3,vy3)、该第n已解码单元的左上顶点的像素坐标(x2,y2)、该第n已解码单元的右上顶点的像素坐标(x3,y3)、该待解码单元的左上顶点的运动矢量预测值(vx0,vy0)、该待解码单元的左上顶点的像素坐标(x0,y0)及该待解码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出该待解码单元的右上顶点的运动矢量预测值(vx1,vy1);

公式(2)。

可选的,如上所述s404中根据该最优运动矢量组的索引标识确定n个运动矢量组中的该最优运动矢量组,可以包括:

按照预设排序规则对该n个运动矢量组进行排序,生成候选运动矢量队列;

若n大于或等于预设值,确定该候选运动矢量队列中前预设个数的运动矢量组;

根据该最优运动矢量组的索引标识确定该前预设个数的运动矢量组中的该最优运动矢量组。

可选的,该预设排序规则包括:n个已解码单元的从大到小的顺序。

可替代地,如上所述的s404中根据该最优运动矢量组的索引标识确定n个运动矢量组中的该最优运动矢量组,可以包括:

按照预设排序规则对该n个运动矢量组进行排序;

若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于该预设值,q为正整数;

将该q个运动矢量组排列至该n个运动矢量组之后,生成候选运动矢量队列;

确定该候选运动矢量队列中前预设个数的运动矢量组;

根据该最优运动矢量组的索引标识确定该前预设个数的运动矢量组中的该最优运动矢量组。

可选的,如上所述的生成q个运动矢量组可以包括:

从该相邻已解码单元中确定该待解码单元中第m控制点对应的已解码单元;该第m控制点对应的已解码单元与该第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将该第m控制点对应的已解码单元的运动矢量,确定为该第m控制点的运动矢量预测值;

根据该m个控制点的运动矢量预测值,生成该q个运动矢量组。

可选的,如上所述的生成q个运动矢量组可以包括:

从该相邻已解码单元中确定该待解码单元中第m控制点对应的已解码单元;该第m控制点对应的已解码单元与该第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;

将该第m控制点对应的已解码单元的运动矢量,确定为该第m控制点的第一运动矢量预测值;

根据该m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;

将该相邻已解码单元中第j个已解码单元的运动矢量,确定为该第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为该相邻已解码单元的个数;j为正整数;

根据该m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;

将该k个第一运动矢量组排列至该l个第二运动矢量组之后,生成该q个运动矢量组。

可选的,将该q个运动矢量组添加至该排序后的该n个运动矢量组之后,生成候选运动矢量队列,可以包括:

确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;

根据该q个运动矢量组对应的特征值,按照从小到大的顺序,对该q个运动矢量组进行排序;

将该排序后的该q个运动矢量组添加至该排序后的该n个运动矢量组之后,生成该候选运动矢量队列。

可选的,确定第q个运动矢量组对应的特征值,包括:

确定该第q个运动矢量组中该m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;

比较该差值的绝对值与预设分量阈值的大小;该预设分量阈值为该待解码单元在该同一预测方向上的范围;

若该差值的绝对值小于或等于该预设分量阈值,则确定该第q个运动矢量组对应的特征值。

可选的,上述确定第q个运动矢量组对应的特征值可以包括:

从该相邻已解码单元中确定另一控制点对应的已解码单元;该另一控制点对应的已解码单元与该另一控制点间的距离小于或等于预设距离;该另一控制点为该待解码单元中该m个控制点外的任一控制点;

将该另一控制点对应的已解码单元的运动矢量,确定为该另一控制点的运动矢量预测值;

根据该另一控制点的运动矢量预测值和该第q个运动矢量组中的该m个控制点的运动矢量预测值,采用第三预设算法确定该第q个运动矢量组对应的特征值。

可选的,该待解码单元的运动预测模式包括平移运动预测模式或仿射运动预测模式。若该待解码单元的运动预测模式包括平移运动预测模式,该控制点的个数为1;若该待解码单元的运动预测模式包括仿射运动预测模式,该控制点的个数为多个。

本发明实施例三提供的图像解码方法为上述实施例一至二中所述的图像编码方法对应的解码方法,其有益效果与上述实施例类似,在此不再赘述。

本发明实施例四提供一种图像编码装置。图5为本发明实施例四提供的一种图像编码装置的结构示意图。如图5所示,该图像编码装置500包括:确定模块501、计算模块502和编码模块503。

其中,确定模块501,用于按照第一预设规则从待编码单元的相邻已编码单元中确定出n个已编码单元;其中,该n个已编码单元与该待编码单元的运动预测模式相同;n为正整数。

计算模块502,用于根据确定模块501确定的第n已编码单元的运动矢量采用第一预设算法生成第n运动矢量组;n取遍不大于n的所有正整数。

确定模块501,还用于按照第二预设规则在计算模块502得到的n个运动矢量组中确定出一个运动矢量组为最优运动矢量组。

计算模块502,还用于根据该确定模块确定的该最优运动矢量组采用第二预设算法确定该待编码单元中每个像素单元的预测像素值,根据该每个像素单元的原始像素值与该每个像素单元的预测像素值的差值确定该每个像素单元的预测残差值。

编码模块503,用于对该每个像素单元的预测残差值和该最优运动矢量组的索引标识进行编码获得该待编码单元对应的码流;该最优运动矢量组的索引标识用于指示解码装置确定该每个像素单元的预测像素值。

可选的,计算模块502,具体用于根据确定模块501确定的第n已编码单元的运动矢量、该第n已编码单元的像素坐标和该待解码单元的m个控制点的像素坐标,采用该第一预设算法确定出该m个控制点的运动矢量预测值;根据该m个控制点的运动矢量预测值,生成该第n运动矢量组;m为根据该待编码单元的运动预测模式确定的正整数。

可选的,m个控制点包括:该待编码单元的左上顶点和右上顶点;

计算模块502,具有用于根据确定模块501确定的该第n已编码单元的左上顶点的运动矢量(vx2,vy2)、该第n已编码单元的右上顶点的运动矢量(vx3,vy3)、该第n已编码单元的左下顶点的运动矢量(vx4,vy4)、该第n已编码单元的左上顶点的像素坐标(x2,y2)、该第n已编码单元的右上顶点的像素坐标(x3,y3)、该第n已编码单元的左下顶点的像素坐标(x4,y4)和该待编码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出该待编码单元的左上顶点的运动矢量预测值(vx0,vy0);

公式(1)。

计算模块502,还用于根据确定模块501确定的该第n已编码单元的左上顶点的运动矢量(vx2,vy2)、该第n已编码单元的右上顶点的运动矢量(vx3,vy3)、该第n已编码单元的左上顶点的像素坐标(x2,y2)、该第n已编码单元的右上顶点的像素坐标(x3,y3)、该待编码单元的左上顶点的运动矢量预测值(vx0,vy0)、该待编码单元的左上顶点的像素坐标(x0,y0)及该待编码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出该待编码单元的右上顶点的运动矢量预测值(vx1,vy1);

公式(2)。

可选的,确定模块501,具体用于按照预设排序规则对该n个运动矢量组进行排序,生成候选运动矢量队列,若n大于或等于预设值,确定该候选运动矢量队列中前预设个数的运动矢量组,确定该前预设个数的运动矢量组中各运动矢量组与该待编码单元的匹配误差,确定该匹配误差最小的一个运动矢量组为该最优运动矢量组。

可选的,该预设排序规则包括:该n个已编码单元从大到小的顺序。

可选的,确定模块501,还用于按照预设排序规则对该n个运动矢量组进行排序;若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于该预设值,q为正整数;将该q个运动矢量组排列至该n个运动矢量组之后,生成候选运动矢量队列;确定该候选运动矢量队列中前预设个数的运动矢量组;确定该前预设个数的运动矢量组中各运动矢量组与该待编码单元的匹配误差;确定该匹配误差最小的一个运动矢量组为该最优运动矢量组。

可选的,确定模块501,还用于从该相邻已编码单元中确定该待编码单元中第m控制点对应的已编码单元;该第m控制点对应的已编码单元与该第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将该第m控制点对应的已编码单元的运动矢量,确定为该第m控制点的运动矢量预测值;根据该m个控制点的运动矢量预测值,生成该q个运动矢量组。

可选的,确定模块501,还用于从该相邻已编码单元中确定该编码单元中第m控制点对应的已编码单元;该第m控制点对应的已编码单元与该第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将该第m控制点对应的已编码单元的运动矢量,确定为该第m控制点的第一运动矢量预测值;根据该m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;将该相邻已编码单元中第j个已编码单元的运动矢量,确定为该第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为该相邻已编码单元的个数,j为正整数;根据该m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;将该k个第一运动矢量组排列至该l个第二运动矢量组之后,生成该q个运动矢量组。

可选的,确定模块501,还用于确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;根据该进行排序;将该排序后的该q个运动矢量组添加至该排序后的该n个运动矢量组之后,生成该候选运动矢量队列。

可选的,确定模块501,还用于确定该第q个运动矢量组中该m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;比较该差值的绝对值与预设分量阈值的大小;该预设分量阈值为该待编码单元在该同一预测方向上的范围;若该差值的绝对值小于或等于该预设分量阈值,则确定该第q个运动矢量组对应的特征值。

可选的,确定模块501,还用于从该相邻已编码单元中确定另一控制点对应的已编码单元;该另一控制点对应的已编码单元与该另一控制点间的距离小于或等于预设距离;该另一控制点为该待编码单元中该m个控制点外的任一控制点;将该另一控制点对应的已编码单元的运动矢量,确定为该另一控制点的运动矢量预测值;根据该另一控制点的运动矢量预测值和该第q个运动矢量组中的该m个控制点的运动矢量预测值,采用第三预设算法确定该第q个运动矢量组对应的特征值。

可选的,待编码单元的运动预测模式包括平移运动预测模式或仿射运动预测模式。

本发明实施例四提供的图像编码装置,可用于执行上述实施例一或中任一所述的图像编码方法,具体实现过程及有益效果与上述实施例类似,在此不再赘述。

本发明实施例五还提供一种图像解码装置。图6为本发明实施例五提供的一种图像解码装置的结构示意图。如图6所示,图像解码装置600可包括:确定模块601、计算模块602和解码模块603。

确定模块601,用于根据第一预设规则从待解码单元的相邻已解码单元中确定出n个已解码单元;其中,该n个已解码单元与该待解码单元的运动预测模式相同;n为正整数;

计算模块602,用于根据确定模块602确定的第n已解码单元的运动矢量采用第一预设算法确定生成第n运动矢量组;n取遍不大于n的所有正整数;

解码模块603,用于对该待解码单元对应的码流进行解码,获得该每个像素单元的预测残差值和最优运动矢量组的索引标识

确定模块601,还用于根据解码模块603确定的该最优运动矢量组的索引标识确定n个运动矢量组中的该最优运动矢量组;

计算模块602,还用于根据确定模块601确定的该最优运动矢量组采用第二预设算法确定该待解码单元中每个像素单元的预测像素值,根据该每个像素单元的预测像素值和该每个像素单元的预测残差值的和确定该每个像素单元的重建像素值。

可选的,计算模块602,具有用于根据确定模块601确定的该第n已解码单元的运动矢量、该第n已解码单元的像素坐标和该待解码单元的m个控制点的像素坐标,采用该第一预设算法确定出该m个控制点的运动矢量预测值;根据该m个控制点的运动矢量预测值,生成该第n运动矢量组;m为根据该待解码单元的运动预测模式确定的正整数。

可选的,该m个控制点包括:该待解码单元的左上顶点和右上顶点;

计算模块602,具体用于根据确定模块601确定的该第n已解码单元的左上顶点的运动矢量(vx2,vy2)、该第n已解码单元的右上顶点的运动矢量(vx3,vy3)、该第n已解码单元的左下顶点的运动矢量(vx4,vy4)、该第n已解码单元的左上顶点的像素坐标(x2,y2)、该第n已解码单元的右上顶点的像素坐标(x3,y3)、该第n已解码单元的左下顶点的像素坐标(x4,y4)和所述待解码单元的左上顶点的像素坐标(x0,y0),采用如下公式(1)确定出该待解码单元的左上顶点的运动矢量预测值(vx0,vy0);

公式(1);

计算模块602,具体还用于根据确定模块601确定的该第n已解码单元的左上顶点的运动矢量(vx2,vy2)、该第n已解码单元的右上顶点的运动矢量(vx3,vy3)、该第n已解码单元的左上顶点的像素坐标(x2,y2)、该第n已解码单元的右上顶点的像素坐标(x3,y3)、该待解码单元的左上顶点的运动矢量预测值(vx0,vy0)、该待解码单元的左上顶点的像素坐标(x0,y0)及该待解码单元的左上顶点的像素坐标(x1,y1),采用如下公式(2)确定出该待解码单元的右上顶点的运动矢量预测值(vx1,vy1);

公式(2)。

可选的,确定模块601,还用于按照预设排序规则对n个运动矢量组进行排序,生成候选运动矢量队列;若n大于或等于预设值,确定该候选运动矢量队列中前预设个数的运动矢量组;根据该最优运动矢量组的索引标识确定该前预设个数的运动矢量组中的该最优运动矢量组。

可选的,该预设排序规则包括:该n个已解码单元的从大到小的顺序。

可选的,确定模块601,还用于按照预设排序规则对该n个运动矢量组进行排序;若n小于预设值,生成q个运动矢量组,使得n与q之和大于或等于该预设值,q为正整数;将该q个运动矢量组排列至该n个运动矢量组之后,生成候选运动矢量队列;确定该候选运动矢量队列中前预设个数的运动矢量组;根据该最优运动矢量组的索引标识确定该前预设个数的运动矢量组中的该最优运动矢量组。

可选的,确定模块601,还用于从该相邻已解码单元中确定该待解码单元中第m控制点对应的已解码单元;该第m控制点对应的已解码单元与该第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将该第m控制点对应的已解码单元的运动矢量,确定为该第m控制点的运动矢量预测值;根据该m个控制点的运动矢量预测值,生成该q个运动矢量组。

可选的,该确定模块601,还用于从所述相该邻已解码单元中确定该待解码单元中第m控制点对应的已解码单元;该第m控制点对应的已解码单元与该第m控制点间的距离小于或等于预设距离;m取遍不大于m的所有正整数;将该第m控制点对应的已解码单元的运动矢量,确定为该第m控制点的第一运动矢量预测值;根据该m个控制点的第一运动矢量预测值,生成k个第一运动矢量组;将该相邻已解码单元中第j个已解码单元的运动矢量,确定为该第m个控制点的第二运动矢量预测值;j为1,…,j中任一,j为该相邻已解码单元的个数;j为正整数;根据该m个控制点的第二运动矢量预测值,生成l个第二运动矢量组;将该k个第一运动矢量组排列至该l个第二运动矢量组之后,生成该q个运动矢量组。

可选的,确定模块601,还用于确定第q个运动矢量组对应的特征值;q取遍不大于q的所有正整数;根据该q个运动矢量组对应的特征值,按照从小到大的顺序,对该q个运动矢量组进行排序;将该排序后的该q个运动矢量组添加至该排序后的该n个运动矢量组之后,生成该候选运动矢量队列。

可选的,确定模块601,还用于确定该第q个运动矢量组中该m个控制点中相邻控制点的运动矢量预测值,在同一预测方向上的分量的差值;比较该差值的绝对值与预设分量阈值的大小;该预设分量阈值为该待解码单元在该同一预测方向上的范围;若该差值的绝对值小于或等于该预设分量阈值,则确定该第q个运动矢量组对应的特征值。

可选的,确定模块601,还用于从该相邻已解码单元中确定另一控制点对应的已解码单元;该另一控制点对应的已解码单元与该另一控制点间的距离小于或等于预设距离;该另一控制点为该待解码单元中该m个控制点外的任一控制点;将该另一控制点对应的已解码单元的运动矢量,确定为该另一控制点的运动矢量预测值;根据该另一控制点的运动矢量预测值和该第q个运动矢量组中的该m个控制点的运动矢量预测值,采用第三预设算法确定该第q个运动矢量组对应的特征值。

可选的,该待解码单元的运动预测模式包括平移运动预测模式或仿射运动预测模式。

本发明实施例五提供的图像解码装置,可执行上述实施例三提供的图像解码方法,具体实现过程及有益效果与上述实施例类似,在此不再赘述。

本发明实施例六提供图像编码装置。图7为本发明实施例六提供的图像编码装置的结构示意图。如图7所示,图像编码装置700包括:处理器701、存储器702、通信接口703和总线704;其中,处理器701与存储器702、通信接口703通过总线704连接

存储器702用于存储指令。

处理器701用于执行指令,当处理器701执行存储器702存储的指令时,使得处理器701执行上述实施例一或二中任一所述的图像编码方法。

本发明实施例六提供的图像编码装置,可执行上述实施例一或二提供的图像编码方法,具体实现过程及有益效果与上述实施例类似,在此不再赘述。

本发明实施例七提供图像解码装置。图8为本发明实施例七提供的图像解码装置的结构示意图。如图8所示,图像解码装置800可包括:处理器801、存储器802、通信接口803和总线804;其中,处理器801与存储器802、通信接口803通过总线804连接。

存储器802用于存储指令;

处理器801用于执行指令,当处理器801执行存储器802存储的指令时,使得处理器801执行上述实施例三所述的图像解码方法。

本发明实施例七提供的图像解码装置,可执行上述实施例三提供的图像解码方法,具体实现过程及有益效果与上述实施例类似,在此不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1