CN110677645A - 一种图像预测方法及装置 - Google Patents

一种图像预测方法及装置 Download PDF

Info

Publication number
CN110677645A
CN110677645A CN201811090471.0A CN201811090471A CN110677645A CN 110677645 A CN110677645 A CN 110677645A CN 201811090471 A CN201811090471 A CN 201811090471A CN 110677645 A CN110677645 A CN 110677645A
Authority
CN
China
Prior art keywords
block
image block
current image
motion information
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811090471.0A
Other languages
English (en)
Other versions
CN110677645B (zh
Inventor
陈焕浜
杨海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2019/082942 priority Critical patent/WO2020007093A1/zh
Publication of CN110677645A publication Critical patent/CN110677645A/zh
Application granted granted Critical
Publication of CN110677645B publication Critical patent/CN110677645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提供一种图像预测方法及装置,涉及视频编解码技术领域,能够提高编解码的性能,降低编解码的复杂度。该方法包括:根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息;根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;根据该子块的运动信息,得到该子块的预测块。其中,当前图像块的相邻图像块满足以下条件中的至少一项:当当前图像块的上边界与当前图像块所在的CTU的上边界重合时,该相邻图像块为位于当前图像块的左方或者左下方的图像块;当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,该相邻图像块为位于当前图像块的上方或者右上方的图像块。

Description

一种图像预测方法及装置
本申请要求于2018年07月02日提交中国专利局、申请号为201810709850.7、申请名称为“视频编码器、视频解码器及仿射变换的编解码方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及视频编解码技术领域,尤其涉及一种图像预测方法及装置。
背景技术
在视频数据的传输过程中,为了节省传输开销,数字视频装置可以实施视频压缩技术,具体的,在编码端可以采用视频压缩技术对视频数据进行编码,在解码端对视频数据进行解码。
目前,可以根据视频压缩技术的相关标准(例如MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264等等)中推广的编解码方法实现视频数据有效率地编码、解码和/或存储。对视频数据进行编解码的过程中,可以对视频帧进行帧内预测和帧间预测,从而减少视频数据中的冗余信息。常用的视频编码技术有基于块的视频编码,具体的,可以将一帧图像(即一个视频帧)可分割成若干个图像块,该图像块也可被称作编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)和/或编码节点,例如高效视频编码(high efficiencyvideo coding,HEVC)标准等各种视频编码标准提出了基于图像块的预测性编码模式,即基于已经编码的视频数据块来预测待编码当前图像块,对于帧内预测模式,编码端可以基于同一帧图像中的已编码的相邻块预测当前图像块,进而编码该当前图像块;或者,编码端可以基于视频序列中的其他视频帧(可以称为参考帧)中的已编码的参考块来预测当前图像块,进而编码该当前图像块。
然而,上述HEVC标准中已有的编解码方法仍然存在某些不足,在一些应用场景中,图像块的预测结果的准确性比较低。
发明内容
本申请提供一种图像预测方法及装置,能够提高编解码的性能,降低编解码的复杂度。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种图像预测方法,该方法可以包括:根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息;并且根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;以及根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
其中,上述当前图像块的相邻图像块满足以下条件中的至少一项:
当当前图像块的上边界与当前图像块所在的CTU的上边界重合时,当前图像块的相邻图像块为位于当前图像块的左方或者左下方的图像块,该相邻图像块不包括位于当前图像块的上方,左上方和右上方的图像块;
当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于当前图像块的上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左上方、左方和左下方的图像块。
本申请中,上述当前图像块的相邻图像块可以为与当前图像块的某个边相邻的图像块,或者与当前图像块的某个点相邻的图像块,并且上述当前图像块与当前图像块的相邻图像块均为CU,可以理解的是,上述当前图像块的子块即为CU的子块。
本申请提供的图像预测方法,在对当前图像块进行编解码的过程中,通过确定当前图像块的边界是否与当前图像块所在的CTU的边界是否重合,来选择当前图像块的部分相邻图像块用于确定当前图像块的控制点的运动信息,不再跨CTU获取其他相邻图像块的控制点的运动信息,如此,能够节省编解码消耗的资源。
在第一方面的第一种可选的实现方式中,运动信息包括运动矢量,上述根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息,包括:采用下述公式计算当前图像块的控制点的运动矢量:
Figure BDA0001804221070000021
其中,(vx4,vy4)为位于相邻图像块的左上顶点的控制点(x4,y4)的运动矢量,(vx5,vy5)为位于相邻图像块的右上顶点的控制点(x5,y5)的运动矢量,(vx,vy)为当前图像块的控制点(x,y)的运动矢量。
本申请中,上述根据当前图像块的相邻图像块的两个控制点的运动信息,采用上述第一相邻图像块的4参数运动模型可以确定出当前图像块的控制点的运动信息。
在第一方面的第二种可选的实现方式中,运动信息包括运动矢量,上述根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息,包括:采用下述公式计算当前图像块的子块的运动矢量:
其中,(vx0,vy0)为位于当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为子块的运动矢量。
在第一方面的第三种可选的实现方式中,上述根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块,包括:根据当前图像块的子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中的运动矢量指向的参考块,并将该参考块作为当前图像块的子块的预测块。
在第一方面的第四种可选的实现方式中,当前图像块的相邻图像块是当前图像块的空间相邻块。
第二方面,本申请提供一种图像预测方法,该方法可以包括:确定待预测的当前图像块的上边界是否与当前图像块所在的CTU的上边界重合,以及当前图像块的左边界是否与当前图像块所在的CTU的左边界重合;当当前图像块的左边界与当前图像块所在的CTU的左边界重合,并且当前图像块的上边界与当前图像块所在的CTU的上边界重合时,根据当前图像块的控制点的相邻子块的运动信息,确定当前图像块的控制点的运动信息,该相邻子块为CU的子块;以及根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;并且根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块。
本申请提供的图像预测方法,在当前图像块的上边界、左边分别与当前图像块所在的CTU的上边界、左边界重合的情况下,采用当前图像块的控制点的相邻子块的运动信息,确定当前图像块的控制点的运动信息的方法实现对当前图像块的预测,无需再跨CTU获取当前图像块的相邻图像块的控制点的运动信息,如此,能够节省编解码消耗的资源。
在第二方面的第一种可选的实现方式中,上述根据当前图像块的控制点的相邻子块的运动信息,确定当前图像块的控制点的运动信息,包括:将当前图像块的控制点的相邻子块的运动信息确定为当前图像块的控制点的运动信息;或者,按照预设顺序确定当前图像块的控制点的相邻子块是否可得;将相邻子块中第一个可得的相邻子块的运动信息,确定为当前图像块的控制点的运动信息。
在第二方面的第二种可选的实现方式中,运动信息包括运动矢量,上述根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息,包括:采用下述公式计算当前图像块的子块中目标像素点的运动矢量:
Figure BDA0001804221070000031
其中,(vx0,vy0)为位于当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为目标像素点(x,y)的运动矢量。
在第二方面的第三种可选的实现方式中,上述根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块,包括:根据当前图像块的子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中的运动矢量指向的参考块,并将参考块作为当前图像块的子块的预测块。
在第二方面的第四种可选的实现方式中,本申请提供的图像预测方法还包括:当当前图像块的左边界与当前图像块所在的CTU的左边界重合,或者当前图像块的上边界与当前图像块所在的CTU的上边界重合时,根据当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息;根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
其中,当前图像块的相邻图像块满足以下条件中的至少一项:
当当前图像块的上边界与当前图像块所在的CTU的上边界重合时,当前图像块的相邻图像块为位于当前图像块的左方或者左下方的图像块,该相邻图像块不包括位于当前图像块的上方,左上方和右上方的图像块;
当所述当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于当前图像块的上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左上方、左方和左下方的图像块。
第三方面,本申请提供一种运动信息的预测方法,该方法包括:获取待预测的当前图像块的目标控制点的运动信息;并且根据目标控制点的运动信息,采用仿射变换模型,确定当前图像块的子块中目标像素点的运动信息,并将目标像素点的运动信息作为子块的运动信息,该目标像素点是与目标控制点不同的像素点;进一步的,将当前图像块的子块的运动信息用于该子块的相邻图像块的运动信息的预测,以确定该子块的相邻图像块的运动信息,该子块的相邻图像块与当前图像块相邻。
本申请中,当前图像块的目标控制点可以包括当前图像块的左上顶点、右上顶点、左下顶点以及右下顶点的控制点中的至少两个。
上述子块的相邻图像块采用平动运动模型进行预测时,可以根据当前图像块的子块的运动信息确定该子块的相邻图像块的运动信息的预测,以确定该子块的相邻图像块的运动信息。
本申请提供的运动信息的预测方法,可以根据待预测的当前图像块的目标控制点的运动信息,采用仿射变换模型,确定该当前图像块的子块中目标像素点的运动信息,并将该目标像素点的运动信息作为该当前图像块的子块的运动信息,从而将该子块的运动信息用于该子块的相邻图像块的运动信息的预测,以确定该相邻图像块的运动信息,如此,可以提高编解码的性能,降低编解码的复杂度。
在第三方面的第一种可选的实现方式中,本申请提供的运动信息的预测方法还包括:根据当前图像块的子块的相邻图像块的运动信息,确定该子块的相邻图像块的预测块。
在第三方面的第二种可选的实现方式中,本申请提供的运动信息的预测方法还包括:根据当前图像块的子块的运动信息,对该子块进行去块效应滤波;或者,根据当前图像块的子块的运动信息,对该子块进行重叠块运动补偿。
在第三方面的第三种可选的实现方式中,本申请提供的运动信息的预测方法还包括:将上述目标控制点的运动信息用于当前图像块的相邻图像块的控制点的运动信息预测,以确定该相邻图像块的控制点的运动信息。
在第三方面的第四种可选的实现方式中,当前图像块的子块包含当前图像块的控制点。
在第三方面的第五种可选的实现方式中,本申请提供的运动信息的预测方法还包括:设置当前图像块的子块中每个像素点的运动信息为该子块的运动信息。
在第三方面的第六种可选的实现方式中,本申请提供的运动信息的预测方法还包括:保存当前图像块的子块中的像素点的运动信息。
在第三方面的第七种可选的实现方式中,本申请提供的运动信息的预测方法还包括:保存当前图像块的子块的运动信息和当前图像块的目标控制点的运动信息中至少一项。
本申请中,在完成当前图像块的预测之后,在后续预测其他图像块(该图像块为当前图像块的相邻图像块)时,可以根据上述保存的当前图像块的子块的运动信息,确定该相邻图像块的控制点的运动信息,或者根据上述保存的当前图像块的目标控制点的运动信息,确定该相邻图像块的控制点的运动信息,进而可以确定相邻图像块的子块的运动信息,以得到该相邻图像块的子块的预测块,从而得到该相邻图像块的预测块。
本申请中,当前图像块的子块的运动信息与当前图像块的控制点的运动信息分别存储在不同的存储位置,例如编解码设备的内存中的不同存储位置,或者编解码设备外部的存储设备的不同存储位置等等,本申请不作限定。
在第三方面的第八种可选的实现方式中,上述目标像素点可以为当前图像块的子块的中心像素点。
第四方面,本申请提供一种图像预测装置,包括第一确定模块、第二确定模块以及第三确定模块。其中,第一确定模块,用于根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息;第二确定模块,用于根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;第三确定模块,用于根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
其中,当前图像块的相邻图像块满足以下条件中的至少一项:
当当前图像块的上边界与当前图像块所在的编码树单元CTU的上边界重合时,当前图像块的相邻图像块为位于所述当前图像块的左方或者左下方的图像块,该相邻图像块不包括位于当前图像块的上方,左上方和右上方的图像块;
当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于当前图像块的上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左上方、左方和左下方的图像块。
在第四方面的第一种可选的实现方式中,运动信息包括运动矢量,上述第一确定模块,具体用于采用下述公式计算当前图像块的控制点的运动矢量:
Figure BDA0001804221070000051
其中,(vx4,vy4)为位于所述相邻图像块的左上顶点的控制点(x4,y4)的运动矢量,(vx5,vy5)为位于相邻图像块的右上顶点的控制点(x5,y5)的运动矢量,(vx,vy)为当前图像块的控制点(x,y)的运动矢量。
在第四方面的第二种可选的实现方式中,运动信息包括运动矢量,上述第二确定模块,具体用于采用下述公式计算当前图像块的子块的运动矢量:
Figure BDA0001804221070000052
其中,(vx0,vy0)为位于当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为子块的运动矢量。
在第四方面的第三种可选的实现方式中,上述第三确定模块,具体用于根据当前图像块的子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中的运动矢量指向的参考块,并将参考块作为当前图像块的子块的预测块。
在第四方面的第四种可选的实现方式中,上述当前图像块的相邻图像块是当前图像块的空间相邻块。
第五方面,本申请提供一种图像预测装置,包括第一确定模块、第二确定模块、第三确定模块以及第四确定模块。其中,第一确定模块,用于确定待预测的当前图像块的上边界是否与当前图像块所在的CTU的上边界重合,以及当前图像块的左边界是否与当前图像块所在的CTU的左边界重合;第二确定模块,用于当当前图像块的左边界与当前图像块所在的CTU的左边界重合,并且当前图像块的上边界与当前图像块所在的CTU的上边界重合时,根据当前图像块的控制点的相邻子块的运动信息,确定当前图像块的控制点的运动信息,该相邻子块为编码单元CU的子块;第三确定模块,用于根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;第四确定模块,用于根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
在第五方面的第一种可选的实现方式中,上述第二确定模块,具体用于将当前图像块的控制点的相邻子块的运动信息确定为当前图像块的控制点的运动信息;或者,该第二确定模块,具体用于按照预设顺序确定当前图像块的控制点的相邻子块是否可得;并且将相邻子块中第一个可得的相邻子块的运动信息,确定为当前图像块的控制点的运动信息。
在第五方面的第二种可选的实现方式中,运动信息包括运动矢量,上述第三确定模块,具体用于采用下述公式计算当前图像块的子块中目标像素点的运动矢量:
Figure BDA0001804221070000061
其中,(vx0,vy0)为位于当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为目标像素点(x,y)的运动矢量。
在第五方面的第三种可选的实现方式中,上述第四确定模块,具体用于根据当前图像块子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中的运动矢量指向的参考块,并将参考块作为当前图像块的子块的预测块。
在第五方面的第四种可选的实现方式中,上述第二确定模块,还用于当当前图像块的左边界与当前图像块所在的CTU的左边界重合,或者当前图像块的上边界与当前图像块所在的CTU的上边界重合时,根据当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息;上述第三确定模块,还用于根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;上述第四确定模块,还用于根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
其中,当前图像块的相邻图像块满足以下条件中的至少一项:
当当前图像块的上边界与当前图像块所在的CTU的上边界重合时,当前图像块的相邻图像块包括为当前图像块的左方或者左下方的图像块,该相邻图像块不包括位于当前图像块的上方,左上方和右上方的图像块;
当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于当前图像块的上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左上方、左方和左下方的图像块。
第六方面,本申请提供一种运动信息的预测装置,包括获取模块和确定模块。其中,获取模块,用于获取待预测的当前图像块的目标控制点的运动信息;确定模块,用于根据该目标控制点的运动信息,采用仿射变换模型,确定当前图像块的子块中目标像素点的运动信息,并将该目标像素点的运动信息作为该子块的运动信息,该目标像素点是与目标控制点不同的像素点;以及将该子块的运动信息用于该子块的相邻图像块的运动信息的预测,以确定该子块的相邻图像块的运动信息,该子块的相邻图像块与当前图像块相邻。
在第六方面的第一种可选的实现方式中,上述确定模块,还用于根据当前图像块的子块的相邻图像块的运动信息,确定该子块的相邻图像块的预测块。
在第六方面的第二种可选的实现方式中,本申请提供的运动信息的预测装置还包括处理模块;该处理模块,用于根据当前图像块的子块的运动信息,对该子块进行去块效应滤波;或者,根据当前图像块的子块的运动信息,对该子块进行重叠块运动补偿。
在第六方面的第三种可选的实现方式中,上述确定模块,还用于将当前图像块的目标控制点的运动信息用于当前图像块的相邻图像块的控制点的运动信息预测,以确定该相邻图像块的控制点的运动信息。
在第六方面的第四种可选的实现方式中,当前图像块的子块包含当前图像块的控制点。
在第六方面的第五种可选的实现方式中,上述确定模块,还用于设置子块中每个像素点的运动信息为子块的运动信息。
在第六方面的第六种可选的实现方式中,本申请提供的运动信息的预测装置还包括存储模块;该存储模块,用于保存当前图像块的子块中的像素点的运动信息。
在第六方面的第七种可选的实现方式中,本申请提供的运动信息的预测装置还包括存储模块;该存储模块,用于保存当前图像块的子块的运动信息和目标控制点的运动信息中至少一项。
在第六方面的第八种可选的实现方式中,上述目标像素点为当前图像块的子块的中心像素点。
第七方面,本申请提供一种图像预测装置,包括处理器和与所述处理器耦合连接的存储器;该存储器用于存储计算机指令,当图像预测装置运行时,该处理器执行存储器存储的计算机指令,以使得图像预测装置执行第一方面及其可选的实现方式中任意之一或者第二方面及其可选的实现方式中任意之一所述的图像预测方法。
第八方面,本申请提供一种计算机可读存储介质,包括计算机指令,当该计算机指令在图像预测装置上运行时,使得图像预测装置执行第一方面及其可选的实现方式中任意之一或者第二方面及其可选的实现方式中任意之一所述的图像预测方法。
第九方面,本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在图像预测装置上运行时,使得该图像预测装置执行第一方面及其可选的实现方式中任意之一或者第二方面及其可选的实现方式中任意之一所述的图像预测方法。
第十方面,本申请提供一种运动信息的预测装置,包括处理器和与该处理器耦合连接的存储器;该存储器用于存储计算机指令,当该运动信息的预测装置运行时,该处理器执行存储器存储的计算机指令,以使得该运动信息的预测装置执行第三方面及其可选的实现方式中任意之一所述的运动信息的预测方法。
第十一方面,本申请提供一种计算机可读存储介质,包括计算机指令,当该计算机指令在运动信息的预测装置上运行时,使得该运动信息的预测装置执行第三方面及其可选的实现方式中任意之一所述的运动信息的预测方法。
第十二方面,本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在运动信息的预测装置上运行时,使得该运动信息的预测装置执行第三方面及其可选的实现方式中任意之一所述的运动信息的预测方法。
本申请提供基于仿射变换的编解码方法、装置及相应的编码器和解码器,一定程度上提高帧间预测模式的结果或者效率。
第十三方面,提供一种基于仿射变换的编解码方法,所述方法包括:获得当前仿射编码块的控制点的运动信息;根据所述当前仿射编码块的控制点的运动信息,采用仿射变换模型,确定所述当前仿射编码块中运动补偿单元的运动信息;根据所述运动补偿单元的运动信息,对所述运动补偿单元进行运动补偿预测,从而得到所述仿射编码块的预测块。
结合第十三方面,在第十三方面第一种可能的实施方式中,所述获取当前仿射编码块的控制点的运动信息包括:根据所述当前仿射编码块的相邻仿射编码块块的控制点的运动信息,确定所述当前仿射编码块的控制点的运动信息。
结合第十三方面第一种实施方式,在第十三方面第二种可能的实施方式中,所述仿射编码块为空间相邻块。
结合第十三方面第一种实施方式或第十三方面第二种实施方式,在第十三方面第三种可能的实施方式中,在所述当前仿射编码块的上边界与所述当前仿射编码块所在的编码树单元(CTU)的上边界重合时,所述相邻仿射编码块位于所述当前仿射编码块的左边或者左下方,所述相邻仿射编码块不位于所述当前仿射编码块的上边,左上方或者右上方。
结合第十三方面第一种实施方式或第十三方面第二种实施方式,在第十三方面第四种可能的实施方式中,在所述当前仿射编码块的左边界与所述当前仿射编码块所在的编码树单元(CTU)的左边界重合时,所述相邻仿射编码块不位于所述当前仿射编码块的左上方、左边或者左下方,所述相邻仿射编码块位于所述当前仿射编码块的上边或者右上方。
结合第十三方面第一种实施方式或第十三方面第二种实施方式,在第十三方面第五种可能的实施方式中,其特征在于,在所述当前仿射编码块的左边界与所述当前仿射编码块所在的编码树单元(CTU)的左边界重合时,所述相邻仿射编码块不位于所述当前仿射编码块的左边或者左下方,所述相邻仿射编码块位于所述当前仿射编码块的左上方、上边或者右上方。
结合第十三方面或第十三方面的以上任一种实施方式,在第十三方面的第六种可能的实现方式中,在所述当前仿射编码块的左边界和上边界与所述当前仿射编码块所在的编码树单元(CTU)的左边界和上边界分别重合时,所述获取当前仿射编码块的控制点的运动信息包括:基于所述当前仿射编码块的控制点的相邻已编码块的运动信息获得所述当前仿射编码块的控制点的运动信息。
结合第十三方面或第十三方面的以上任一种实施方式,在第十三方面的第七种可能的实现方式中,所述方法还包括:根据所述当前仿射编码块的控制点所在的图像块的运动信息,执行以下操作中至少一种:去块效应滤波器、重叠块运动补偿、非仿射编码块的运动信息的预测、仿射编码块的基于控制点组合的运动信息的预测和时域运动信息的预测;其中,所述当前仿射编码块的控制点所在的图像块的运动信息和所述当前仿射编码块的控制点的运动信息不同。
结合第十三方面的第七种可能的实现方式,在第十三方面的第八种可能的实现方式中,所述当前仿射编码块的控制点所在的图像块的运动信息为所述当前仿射编码块的控制点所在的图像块所在的运动补偿单元的运动信息或者所述当前仿射编码块的控制点所在的图像块的中心像素点的运动信息。
第十四方面,提供一种基于仿射变换的编解码装置,该装置包括用于执行上述第十三方面或者第第十三方面中的任意一种实施方式中的方法的模块。
第十五方面,提供一种编解码器,该编解码器包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行第十三方面或者第十三方面中的任意一种实现方式中的方法的部分或全部步骤。
第十六方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第十三方面中的任意一种实现方式中的方法的部分或全部步骤的指令。
第十七方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第十三方面中的任意一种实现方式中的方法的部分或全部步骤的指令。
附图说明
图1为本发明实施例提供的当前图像块的相邻图像块的示意图;
图2为本发明实施例提供的当前图像块的控制点的示意图;
图3为本发明实施例提供的一种视频编码及解码系统的架构示意图;
图4为本发明实施例提供的一种视频编码过程中的帧间预测方法的流程图;
图5为本发明实施例提供的一种视频解码过程中的帧间预测方法的流程图;
图6A为本发明实施例提供的一种视频编码器的硬件示意图;
图6B为本发明实施例提供的一种视频解码器的硬件示意图;
图7为本发明实施例提供的运动信息的预测方法示意图;
图8为本发明实施例提供的当前图像块的相邻子块的示意图一;
图9为本发明实施例提供的当前图像块的相邻子块的示意图二;
图10为本发明实施例提供的当前图像块的相邻子块的示意图三;
图11为本发明实施例提供的图像预测方法示意图一;
图12为本发明实施例提供的图像预测方法示意图二;
图13为本发明实施例提供的运动信息的预测装置的结构示意图一;
图14为本发明实施例提供的运动信息的预测装置的结构示意图二;
图15为本发明实施例提供的运动信息的预测装置的结构示意图三;
图16为本发明实施例提供的一种图像预测装置的结构示意图;
图17为本发明实施例提供的另一种图像预测装置的结构示意图;
图18为本发明实施例提供的一种编码设备或解码设备的结构示意图;
图19为本发明实施例中一种视频编码及解码系统的示意性框图;
图20A为本发明实施例中一种视频编码器的示意性框图;
图20B为本发明实施例中一种视频解码器的示意性框图;
图21为本发明实施例中一种用于编码视频图像的帧间预测的示意图;
图22为本发明实施例中一种用于解码视频图像的运动信息候选位置的示意图;
图23为本发明实施例中一种基于运动模型的运动矢量预测方法的示意图;
图24为本发明实施例中一种基于控制点组合的运动矢量预测方法的示意图;
图25为本发明实施例中一种基于控制点组合的运动矢量预测方法的示意图;
图26为本发明实施例中一种编码设备或解码设备的示意性框图。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本发明实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一控制点和第二控制点等适用于区别不同的控制点,而不是用于描述控制点的特点顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
首先对本发明实施例提供的一种图像预测方法及装置中涉及的一些概念做解释说明。
图像块,可以是一帧图像中的一个矩形图像区域,包含A×B个采样点(即像素点),因此,也可以称为是包含A行B列采样点的一个A×B的采样点阵列。采样点可以包含亮度采样点和/或色度采样点。一个图像区域中的采样点可以是该图像区域中的部分或全部像素点。其中,A和B的取值可以相等,也可以不相等。A和B的取值通常为2的整数次幂,例如256、128、64、32、16、8、4等。
CTU:编码树单元(英文全称:coding tree unit),是视频编码或者视频解码过程中的基本单元,CTU对应视频数据中的一个视频帧(即一帧图像)中的一个方形图像块,即一幅图像可以包括一个或多个CTU,示例性的,CTU的尺寸可以为64*64,即64*64的CTU包含由64行、64列像素组成的矩形像素点阵,CTU的尺寸还可以为128*128或者256*256等等。
CU:编码单元,是CTU经过划分之后产生的叶节点,一个CU对应一个矩形的图像块,CU的宽度和高度也可以使用像素的数量来表示;例如,CU的宽度可以为256、128、64、32、8或4个像素等等,CU的高度也可以为256、128、64、32、8或4个像素等等;其中,CU的高度和宽度可以相等,也可以不相等。
在视频编码过程中,以视频数据的一个视频帧(也可以称为一帧图像)为例,视频编码设备以CU为编码单位,按照一定的编码规则完成一个CTU包括的所有CU的编码,进而完成一帧图像的多个CTU的编码,得到码流;在视频数据解码的过程中,解码设备按照与编码过程中对应的解码规则,完成一个CTU包括的多个CU的重建,进而完成一帧图像的多个CTU的重建,得到重建后的图像。
需要说明的是,本发明实施例中,图像块均指的是CU,将待编码或者待解码的图像块(即一个CU)进一步划分得到的更小的图像块定义为子块,也可以称为子运动补偿单元,应理解的是,这些说法不应对本发明实施例造成限定。
编码视频流,或者其一部分,诸如视频帧或者图像块可以使用视频流中的时间和空间相似性以改善编码性能,是编码端执行的动作。对于一幅待编码的图像,将该图像划分为编码块之后,通过视频流中已编码的图像块预测该图像中的所有图像块(预测的图像块可以称为预测块),得到预测块与原始图像块之间的差值(称为残差),然后对残差进行变换、量化、熵编码、环内滤波等处理,基于先前已编码块对所有图像块进行编码,从而完成该图像的编码。
解码视频流与编码视频流是相反的过程,是解码端执行的动作,对于一个图像块(本发明实施例中,在编码视频流过程和解码视频流过程中,当前处理的图像块称为当前图像块或者当前编码块),解码端对当前图像块的残差进行熵解码、反量化、反变换得到当前图像块的残差信息,并且解码端采用与编码端相似的方法,确定当前图像块的预测块,从而根据得到的当前图像块的残差信息和预测块,确定当前图像块的重建块,完成当前图像块的解码。
上述在编码视频流和解码视频流的过程中,均需要获取图像块的预测块,并且对于同一图像块,编码视频流时获取该图像块的预测块的方法与解码视频流时获取该图像块的预测块的方法相同。通常确定预测块的方法可以包括帧内预测和帧间预测。
帧内预测指的是在一个视频帧内,利用已重建的区域的像素值预测当前图像块的像素值。
帧间预测指的是在视频流中,在已重建的视频帧中寻找当前图像块的参考块,并且将参考块的像素值作为当前图像块的像素值的预测信息或者预测值,具体的,可以根据当前图像块的运动信息确定当前图像块的预测块。
需要说明的是,当前图像块的运动信息包括预测方向指示信息、一个或者多个指向参考块的运动矢量以及参考块所在的视频帧(此处,参考块所在的视频帧可以称为参考帧)的指示信息,其中,预测方向指示信息用于指示帧间预测的预测方向,通常预测方向包括前向预测、后向预测或双向预测;运动矢量用于指示参考块相对于当前图像块的位移;参考块所在的视频帧的指示信息用于指示参考块在视频流中的位置,即参考块位于哪个视频帧,参考块所在的视频帧的指示信息可以为参考帧的索引。
上述前向预测指的是从前向参考帧集合中选择一个参考帧来获取当前图像块的参考块;后向预测指的是从后向参考帧集合中选择一个参考帧来获取当前图像块的参考块;双向预测指的是从前向参考帧集合和后向参考帧集合中个选择一个参考帧来获取当前图像块的参考块,得到两个参考块,然后再根据这两个参考块对应的像素值确定当前图像块的像素值。
上述运动矢量是帧间预测过程中的一个重要参数,其表示先前已编码块相对于该当前编码块的空间位移。可以使用运动估算的方法,诸如运动搜索来获取运动矢量。初期的帧间预测技术,将表示运动矢量的位包括在编码的位流中,以允许解码器再现预测块,进而得到重建块。为了进一步的改善编码效率,后来又提出使用参考运动矢量差分地编码运动矢量,即取代编码运动矢量整体,而仅仅编码运动矢量和参考运动矢量之间的差值。在有些情况下,参考运动矢量可以是从在视频流中先前使用的运动矢量中选择出来的,选择先前使用的运动矢量编码当前的运动矢量可以进一步减少包括在编码的视频位流中的位数。
不限于现有标准中的几种帧间预测模式,例如在HEVC(即H.265)标准中,对于预测单元(prediction unit,PU),存在两个帧间预测模式,分别称为融合(merge)模式(也可以称为合并模式,其中,跳过模式被视为融合模式的特殊情况)和先进的运动向量预测(advanced motion vector prediction,AMVP)模式。
对于AMVP模式,先通过当前图像块的空域或者时域相邻的已编码图像块的运动信息,构建候选运动矢量列表(包括多个候选运动矢量),然后从候选运动矢量列表中确定最优的运动矢量作为当前图像块的运动矢量预测值(motion vector predictor,MVP)。编码端将选择的运动矢量预测值在候选运动矢量列表中的索引值和参考帧的索引值传递到解码端。进一步地,在MVP为中心的邻域内进行运动搜索获得当前图像块的实际运动矢量,编码端将MVP与实际运动矢量之间的差值(motion vector difference)传递到解码端。
可选的,上述从候选运动矢量列表中的多个候选运动矢量中确定最优的运动矢量时,可以采用率失真优化技术,确定最优的运动矢量。具体的,可以根据第一候选运动列表中的所有候选运动信息,采用下面的公式(1),计算每一个运动矢量对应的率失真代价,然后选择率失真代价最小的运动矢量(即最小的率失真代价对应的运动矢量)作为当前图像块的运动矢量预测值:
J=SAD+λR (1)
其中,J表示率失真代价,SAD表示采用候选运动矢量列表中的运动矢量确定的当前图像块的预测值与原始值之间的绝对误差和,λ表示拉格朗日乘子(λ可以为预设的常量),R表示视频流的码率。
对于Merge模式,先通过当前图像块的空域或者时域相邻的已编码图像块的运动信息,构建候选运动矢量列表,然后从候选运动矢量列表中确定最优的运动矢量作为当前图像块的运动矢量,再将最优的运动矢量在候选运动矢量列表中位置的索引值(记为mergeindex)传递到解码端。
可选的,如图1所示,当前图像块的空域候选运动矢量通过当前图像块的空间相邻的5个图像块(A0,B0,C0,D0和E0)的运动矢量确定,若相邻图像块不可得,则不加入候选运动信息列表。当前图像块的时域候选运动信息通过将参考帧中对应位置的图像块的运动矢量进行缩放得到,本发明实施例将在下文中详细介绍运动矢量的缩放方法。
需要说明的是,首先判断当前图像块的参考帧中位置为T0的图像块是否可得,若不可得,则选择位置为C0的图像块作为当前图像块在时域相邻的图像块。
本发明实施例中,即图像块(或者子块)可得指的是:该图像块(或子块)已编码或者已解码,并且其预测模式为帧间预测模式,否则该图像块(或子块)不可得。
当前图像块的控制点,指的是用于生成当前图像块的运动矢量的像素点,通常为位于当前图像块的顶点的像素点,如图2所示,当前图像块的控制点可以为当前图像块的左上顶点P1,右上顶点P2,左下顶点P3以及右下顶点P4。
本发明实施例中,同一个CU(即本发明实施例中的图像块)中的所有像素点的运动矢量可能不同,因此,将CU划分为多个子块,然后确定每个子块的运动信息,并对每个子块进行预测,从而实现对CU的预测。
具体的,可以采用非平动运动模型,根据当前图像块的控制点的运动信息确定当前图像块的所有子块的运动信息,常用的非平动运动模型包括4参数仿射变换模型、6参数仿射变换模型以及8参数仿射变换模型。其中,对于4参数仿射变换模型,可以采用当前图像块的两个控制点(例如左上角的控制点和右上角的控制点)的运动信息,确定所有子块的运动信息;对于6参数仿射变换模型,可以采用当前图像块的三个控制点(例如左上角的控制点、右上角的控制点以及左下角的控制点)的运动信息,确定所有子块的运动信息;对于8参数仿射变换模型,可以采用当前图像块的四个控制点(例如左上角的控制点、右上角的控制点、左下角的控制点以及右下角的控制点)的运动信息,确定所有子块的运动信息。
关于根据仿射变换模型确定当前图像块的所有子块的运动信息的详细描述将在下述实施例中进行详述。
可以理解的是,上述基于非平动运动模型的运动信息预测方法可以分别应用于融合模式和AMVP模式的帧间预测过程,并且编码端可以将控制点的运动信息传递至解码端,从而解码端采用相对应的非平动运动模型确定各个子块的运动信息。
可以理解的是,当一个CU中的所有像素点的运动信息相同时,可以以一个CU为单位,预测该CU的运动信息,将这种确定运动信息的过程可以称为基于平动运动模型确定运动信息。
基于此,本发明实施例提供了一种图像预测方法及装置。
以下对本发明实施例提供的技术方案所适用的系统架构进行说明。
图3为本发明实施例中所描述的一种实例的视频译码系统1的框图。如本文所使用,术语“视频译码器”一般是指视频编码器和视频解码器两者。在本申请中,术语“视频译码”或“译码”可一般地指代视频编码或视频解码。视频译码系统1的视频编码器100和视频解码器200用于根据本发明提出的多种新的帧间预测模式中的任一种所描述的各种方法实例来预测当前经译码图像块或其子块的运动信息,例如运动矢量,使得预测出的运动矢量最大程度上接近使用运动估算方法得到的运动矢量,从而编码时无需传送运动矢量差值,从而进一步的改善编解码性能。
如图3中所示,视频译码系统1包含源装置10和目的地装置20。源装置10产生经编码视频数据。因此,源装置10可被称为视频编码装置。目的地装置20可对由源装置10所产生的经编码的视频数据进行解码。因此,目的地装置20可被称为视频解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、带电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
目的地装置20可经由链路30从源装置10接收经编码视频数据。链路30可包括能够将经编码视频数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码视频数据直接发射到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。
在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字多功能光盘(digitalversatile disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码视频的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(network attachedstorage,NAS)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
本发明实施例提供的图像预测方法可应用于视频编解码以支持多种多媒体应用,例如空中电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储于数据存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码系统1可用于支持单向或双向视频传输以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。
图3中所说明的视频译码系统1仅为实例,并且本申请的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图3的实例中,源装置10包含视频源120、视频编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发射器。视频源120可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。
视频编码器100可对来自视频源120的视频数据进行编码。在一些实例中,源装置10经由输出接口140将经编码视频数据直接发射到目的地装置20。在其它实例中,经编码视频数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
在图3的实例中,目的地装置20包含输入接口240、视频解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码视频数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码视频数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
尽管图3中未图示,但在一些方面,视频编码器100和视频解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITUH.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
视频编码器100和视频解码器200各自可实施例如以下各项的多种电路中的任一者:一或多个微处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。视频编码器100和视频解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本发明实施例可大体上将视频编码器100称为将某些信息“发信号通知”或“发射”到例如视频解码器200的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
视频编码器100和视频解码器200可根据例如HEVC等视频压缩标准或其扩展来操作,并且可符合HEVC测试模型(HM)。或者,视频编码器100和视频解码器200也可根据其它业界标准来操作,所述标准例如是ITU-T H.264、H.265标准,或此类标准的扩展。然而,本发明实施例的技术不限于任何特定编解码标准。
在一个实例中,一并参阅图4,视频编码器100用于:将与待编码的当前图像块相关的语法元素编码入数字视频输出位流(简称为位流或码流)(S101),其中,与当前图像块相关的语法元素可以例如但不限于包含对当前图像块进行帧间预测的语法元素,这里将用于当前图像块帧间预测的语法元素简称为帧间预测数据,其中帧间预测数据可以包括用于指示(具体用于指示视频解码器200)是否将当前图像块划分为子块,并根据子块的运动信息进行帧间预测的标识(换言之,即用于指示视频解码器200是否对当前图像块采用本发明实施例提出的图像预测方法进行预测的标识)。由于视频编码器100和视频解码器200对视频数据进行处理的过程相同(或对应相同),因此,如果该标识用于指示视频解码器200将当前图像块划分为子块,并根据子块的运动信息进行解码处理,那么,视频编码器100在将当前图像块相关的语法元素编码入码流之后,一方面可以将该码流发送至视频解码器200;另一方面,可以预测当前图像块中一个或多个子块的运动信息(具体可以是每个子块或者所有子块的运动信息),并利用当前图像块中一个或多个子块的运动信息对当前图像块执行帧间预测(S102)。
应当理解的是,如果由基于本申请提出的图像预测方法预测出的运动信息产生的预测块与待编码的当前图像块(即原始块)之间的差值(即残差)为0,则视频编码器100中只需要将与待编码的当前图像块相关的语法元素编入位流(亦称为码流);反之,除了语法元素外,还需要将相应的残差编入位流。
在另一实例中,一并参阅图5,视频解码器200用于:解码码流,得到待解码的当前图像块相关的语法元素(S201),与当前图像块相关的语法元素可以例如但不限于包含对当前图像块进行帧间预测的语法元素,这里将用于当前图像块帧间预测的语法元素简称为帧间预测数据,其中帧间预测数据可以包括用于指示(具体用于指示视频解码器200)是否将当前图像块划分为子块,并根据子块的运动信息进行帧间预测的标识,若该标识指示将当前图像块划分为子块,并根据子块的运动信息进行帧间预测,则视频解码器200可以预测当前图像块中一个或多个子块的运动信息,并利用当前图像块中一个或多个子块的运动信息对当前图像块执行帧间预测(S202)。
需要说明的是,上述图4和图5所示的示例,是以视频编码器100向视频解码器200发送的语法元素(具体是指帧间预测数据)中包括用于指示是否将当前图像块划分为子块,并根据子块的运动信息进行编解码的标识为例进行说明的。在另一个实例中,视频编码器100和视频解码器200也可以预先约定(例如通过协议或标准预先约定)将当前图像块划分为子块,并根据子块的运动信息进行预测,该情况下,视频编码器100向视频解码器200发送的语法元素(具体是指帧间预测数据)中可以不包含上述标识。
图6A为本发明实施例中所描述的一种实例的视频编码器100的框图。视频编码器100用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的视频实体的实例,例如媒体感知网络元件(MANE)或拼接/编辑装置。在一些情况下,后处理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41和视频编码器100可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图3的存储装置40的实例。
在图6A的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图像缓冲器(decoded picture buffer,DPB)107、求和器112、变换器101、量化器102和熵编码器103。预测处理单元108(图6A中标记为帧预测器108)包括帧间预测器110和帧内预测器109。为了图像块重构,视频编码器100还包含反量化器104、反变换器105和求和器111。滤波器单元106既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(adaptiveloop filter,ALF)和样本自适应偏移(sample adaptive offset,SAO)滤波器。尽管在图6A中将滤波器单元106示出为环路内滤波器,但在其它实现方式下,可将滤波器单元106实施为环路后滤波器。在一种示例下,视频编码器100还可以包括视频数据存储器、分割单元(图中未示意)。
视频数据存储器可存储待由视频编码器100的组件编码的视频数据。可从视频源120获得存储在视频数据存储器中的视频数据。DPB107可为参考图像存储器,其存储用于由视频编码器100在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器和DPB 107可由多种存储器装置中的任一者形成,例如包含同步DRAM(synchronousDRAM,SDRAM)的动态随机存取存储器(dynamic RAM,DRAM)、磁阻式RAM(magnetic RAM,MRAM)、电阻式RAM(resistive RAM,RRAM),或其它类型的存储器装置。视频数据存储器和DPB107可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器可与视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图6A中所示,视频编码器100接收视频数据,并将所述视频数据存储在视频数据存储器中。分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器100通常说明编码待编码的视频条带内的图像块的组件。所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。
预测处理单元108可选择用于当前图像块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者或多个帧间译码模式中的一者。预测处理单元108可将所得经帧内、帧间译码的块提供给求和器112以产生残差块,且提供给求和器111以重构用作参考图像的经编码块。
预测处理单元108内的帧内预测器109可相对于与待编码当前块在相同帧或条带中的一或多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间预测器110可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编码以去除时间冗余。
帧间预测器110用于预测当前图像块中一个或多个子块的运动信息(例如运动矢量),并利用当前图像块中一个或多个子块的运动信息获取或产生当前图像块的预测块。帧间预测器110可在参考图像列表中的一者中定位所述运动向量指向的预测块。帧间预测器110还可产生与图像块和视频条带相关联的语法元素以供视频解码器200在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测器110利用每个子块的运动信息执行运动补偿过程,以生成每个子块的预测块,从而得到当前图像块的预测块;应当理解的是,这里的帧间预测器110执行运动估计和运动补偿过程。
在预测处理单元108经由帧间预测或者帧内预测产生当前图像块的预测块之后,视频编码器100通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和器112表示执行此减法运算的一个或多个组件。所述残差块中的残差视频数据可包含在一或多个TU中,并应用于变换器101。变换器101使用例如离散余弦变换(discrete cosinetransform,DCT)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换到变换域,例如频域。
变换器101可将所得变换系数发送到量化器102。量化器102量化所述变换系数以进一步减小位速率。在一些实例中,量化器102可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器103可执行扫描。
在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103可执行上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、上下文自适应二进制算术编码(context based adaptive binary arithmeticcoding,CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术。在由熵编码器103熵编码之后,可将经编码位流发射到视频解码器200,或经存档以供稍后发射或由视频解码器200检索。熵编码器103还可对待编码的当前图像块的语法元素进行熵编码。
反量化器104和反变化器105分别应用逆量化和逆变换以在像素域中重构所述残差块,例如以供稍后用作参考图像的参考块。求和器111将经重构的残差块添加到由帧间预测器110或帧内预测器109产生的预测块,以产生经重构图像块。其中,对一个图像块的参考块进行处理(例如插值等处理)可以得到该图像块的预测块。
滤波器单元106可以适用于经重构图像块以减小失真,诸如方块效应(blockartifacts)。然后,该经重构图像块作为参考块存储在经解码图像缓冲器107中,可由帧间预测器110用作参考块以对后续视频帧或图像中的块进行帧间预测。
应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处理,相应地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变换器105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元106处理;或者,视频编码器100中量化器102和反量化器104可以合并在一起。
图6B为本发明实施例中所描述的一种实例的视频解码器200的框图。在图6B的实例中,视频解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和器211、滤波器单元206以及经解码图像缓冲器207。预测处理单元208可以包括帧间预测器210和帧内预测器209。在一些实例中,视频解码器200可执行大体上与相对于来自图6A的视频编码器100描述的编码过程互逆的解码过程。
在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块和相关联的语法元素的经编码视频位流。视频解码器200可从网络实体42接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待由视频解码器200的组件解码的视频数据,例如经编码视频位流。存储在视频数据存储器中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器可作为用于存储来自经编码视频位流的经编码视频数据的经解码图像缓冲器(CPB)。因此,尽管在图6B中没有示意出视频数据存储器,但视频数据存储器和DPB207可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和DPB207可由多种存储器装置中的任一者形成,例如:包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器200的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。
网络实体42可例如为服务器、MANE、视频编辑器/剪接器,或用于实施上文所描述的技术中的一或多者的其它此装置。网络实体42可包括或可不包括视频编码器,例如视频编码器100。在网络实体42将经编码视频位流发送到视频解码器200之前,网络实体42可实施本申请中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器200的相同装置执行。在一些情况下,网络实体42可为图3的存储装置40的实例。
视频解码器200的熵解码器203对位流进行熵解码以产生经量化的系数和一些语法元素。熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带层级和/或图像块层级处的语法元素。本发明实施例中,在一种示例下,这里的语法元素可以包括与当前图像块相关的帧间预测数据,该帧间预测数据可以包括指示是否将当前图像块划分为子块,并根据子块的运动信息进行帧间预测。另外,在一些实例中,可以是视频编码器100发信号通知指示是否采用本申请提出的图像预测方法的特定语法元素。下文将详细的阐述基于当前图像块的子块的运动信息进行帧间预测的过程。
反量化器204将在位流中提供且由熵解码器203解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器205将逆变换应用于变换系数,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
在帧间预测器210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器200通过将来自反变换器205的残差块与由帧间预测器210产生的对应预测块求和以得到重建的块,即经解码图像块。求和器211表示执行此求和操作的组件。在需要时,还可使用环路滤波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元206可以表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)以及样本自适应偏移(SAO)滤波器。尽管在图6B中将滤波器单元206示出为环路内滤波器,但在其它实现方式中,可将滤波器单元206实施为环路后滤波器。在一种示例下,滤波器单元206适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在经解码图像缓冲器207中,经解码图像缓冲器207存储用于后续运动补偿的参考图像。经解码图像缓冲器207可为存储器的一部分,其还可以存储经解码视频,以供稍后在显示装置(例如图3的显示装置220)上呈现,或可与此类存储器分开。
应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频位流。例如,视频解码器200可以不经滤波器单元206处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器200的熵解码器203没有解码出经量化的系数,相应地不需要经反量化器204和反变换器205处理。
本发明实施例提供的运动信息的预测方法和图像预测方法主要应用于帧间预测的过程中,可以采用非平动运动模型对当前图像块进行预测,具体的,采用仿射变换模型推导出当前图像块的每一个子块的运动信息,然后根据每一个子块的运动信息确定每一个子块的预测块,从而得到当前图像块的预测块,并且可以将当前图像块的子块的运动信息用于其他图像块的预测,等等。以下详细阐述本发明实施例提供的运动信息的预测方法、图像预测方法。
如图7所示,本发明实施例提供的运动信息的预测方法可以包括S301-S303:
S301、获取待预测的当前图像块的目标控制点的运动信息。
其中,当前图像块为一个CU,当前图像块的目标控制点可以包括当前图像块的左上顶点、右上顶点、左下顶点以及右下顶点的控制点中的至少两个。示例性的,结合图2,当前图像块的目标控制点可以为控制点P1和控制点P2,或者目标控制点可以为控制点P1、控制点P2以及控制点P3,或者目标控制点为控制点P1、控制点P2、控制点P3以及控制点P4,等等,此处不再一一列举。
可选的,上述获取目标控制点的运动信息的方法可以包括下述S3011或S3012:
S3011、根据当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的目标控制点的运动信息。
需要说明的是,相邻图像块可以为:与当前图像块的某个边相邻的图像块,或者与当前图像块的某个点相邻的图像块,本发明实施例不作具体限定。
通常,当前图像块的相邻图像块可以包括已重建的相邻图像块和未重建的相邻图像块,以下实施例中,将该当前图像块的已重建的相邻图像块称为当前图像块的第一相邻图像块,将该当前图像块的未重建的相邻图像块称为当前图像块的第二相邻图像块。
本发明实施例中,上述S3011中的当前图像块的相邻图像块也为一个CU,并且该相邻图像块为与当前图像块相邻的已重建(即已编码或者已解码)的图像块,即为第一相邻图像块,该第一相邻图像块的控制点的运动信息已获得,并且已存储。
本发明实施例中,当前图像块的第一相邻图像块可能包括多个,因此,根据当前图像块的第一相邻图像块的控制点的运动信息,确定的当前图像块的目标控制点的运动信息也可能包括多种结果。
可以理解的是,运动信息包括运动矢量,上述确定当前图像块的控制点的运动信息即确定当前图像块的运动矢量。具体的,当前图像块的第一相邻图像块即为当前图像块的相邻子块(该相邻子块为CU的子块)所在的图像块,如图8所示,当前图像块的5个相邻子块分别为A1、B1、C1、D1、E1,可以按照一定的顺序(例如A1→B1→C1→D1→E1的顺序)遍历当前图像块的第一相邻图像块,获取该第一相邻图像块的控制点的运动信息,并且根据第一相邻图像块的运动模型(包括4参数、6参数以及8参数的运动模型),确定当前图像块的目标控制点的运动信息。
上述相邻子块A1、B1、C1、D1以及E1均为当前图像块的空间上的相邻子块。
示例性的,以当前图像块的一个相邻图像块(即当前图像块的相邻子块A1所在的图像块)为例,如图8所示,当前图像块的控制点分别记为M0、M1、M2、M3,其中,M0的坐标为(x0,y0),M1的坐标为(x1,y1),M2的坐标为(x2,y2),M3的坐标为(x4,y4),子块A1所在的相邻图像块记为图像块1,该图像块1的控制点分别记为N0、N1、N2、N3,其中,N0的坐标为(x4,y4),N0的运动矢量为(vx4,vy4),N1的坐标为(x5,y5),N1的运动矢量为(vx5,vy5),N2的坐标为(x6,y6),N2的运动矢量为(vx6,vy6),N3的坐标为(x7,y7),N3的运动矢量为(vx7,vy7)。
若当前图像块的目标控制点为M1和M2,则可以根据图像块1的控制点N1和N2的运动信息,采用4参数的运动模型,确定该目标控制点的运动信息,具体的,可以采用下述公式(1)计算控制点M1的运动矢量,采用公式(2)计算控制点M2的运动矢量:
Figure BDA0001804221070000191
根据上述公式(1)可得控制点M1的运动矢量为(vx0,vy0)。
Figure BDA0001804221070000192
根据上述公式(2)可得控制点M2的运动矢量为(vx1,vy1)。
综上,当前图像块的目标控制点的运动矢量为(vx0,vy0)和(vx1,vy1)。
若当前图像块的目标控制点为M1、M2和M3,则可以根据图像块1的控制点N1、N2和N3的运动信息,采用6参数的运动模型,确定该目标控制点的运动信息,具体的,可以采用下述公式(3)计算控制点M1的运动矢量,采用公式(4)计算控制点M2的运动矢量,采用公式(5)计算控制点M3的运动矢量:
Figure BDA0001804221070000201
根据上述公式(3)可得控制点M1的运动矢量为(vx0,vy0)。
根据上述公式(4)可得控制点M2的运动矢量为(vx1,vy1)。
Figure BDA0001804221070000203
根据上述公式(5)可得控制点M3的运动矢量为(vx2,vy2)。
综上,当前图像块的目标控制点的运动矢量为(vx0,vy0)、(vx1,vy1)和(vx2,vy2)。
可以理解的是,根据上述方法可以分别根据子块A1、B1、C1、D1、E1各自所在的5个相邻图像块的控制点的运动信息,确定5种当前图像块的目标控制点的运动信息。其中,若子块A1、B1、C1、D1、E1中某个子块不可得,则跳过该子块,继续根据下一个子块所在的第一相邻图像块的控制点的运动信息确定当前图像块的目标控制点的运动信息。
可选的,本发明实施例中,上述子块A1、B1、C1、D1、E1的位置,子块的遍历顺序以及第一相邻图像块的运动模型均不作限定,实际应用中,也可以采用其他位置的子块、其他遍历顺序以及其他运动模型。
S3012、根据当前图像块的目标控制点的相邻子块的运动信息,确定当前图像块的目标控制点的运动信息。
其中,上述目标控制点的相邻子块是CU的子块,即将一个CU划分成的更小的块,该相邻子块即为当前图像块的第一相邻图像块的子块,该当前图像块的第一相邻图像块可能包括一个或者一个以上,那么当前图像块的控制点的相邻子块也能包括一个或者一个以上,并且相邻子块也可能属于不同的第一相邻图像块。
本发明实施例中,可以根据与当前图像块相邻的已重建的子块的运动信息,确定当前图像块的目标控制点的运动信息,具体为根据目标控制点的相邻子块的运动信息,确定当前图像块的目标控制点的运动信息。
在一种实现方式中,将目标控制点的相邻子块的运动信息,确定为当前图像块的目标控制点的运动信息,以当前图像块的目标控制点为左上顶点的控制点和右上顶点的控制点为例,如图9所示,当前图像块的左上顶点的控制点记为M0,控制点M0的相邻子块分别为A2、B2、C2,右上顶点的控制点记为M1,控制点M1的相邻子块分别为D2、E2,该目标控制点的运动信息包括控制点M0的运动信息和控制点M1的运动信息。
上述相邻子块A2、B2、C2为控制点M0的空间上的相邻子块,相邻子块D2和E2控制点M1的空间上的相邻子块。
本发明实施例中,将控制点M0的运动矢量记为v0(具体为(vx0,vy0)),控制点M1的运动矢量记为v1(具体为(vx1,vy1)),将相邻子块A2、B2、C2的运动矢量作为控制点M0的候选运动矢量,将相邻子块D、E的运动矢量作为控制点M1的候选运动矢量,然后将控制点M0的候选运动矢量与控制点M1的候选运动矢量进行组合,可以得到当前图像块的目标控制点的候选运动矢量的二元组队列:
{v0A2,v1D2}、{v0A2,v1E2}、{v0B2,v1D2}、{v0B2,v1E2}、{v0C2,v1D2}、{v0C2,v1E2}
上述候选运动矢量的各个二元组队列的索引依次为0,1,2,3,4,5。
可以理解,根据上述控制点的运动信息组合的方式,得到多组目标控制点的运动信息。对于当前图像块的目标控制点包括3个控制点或4个控制点的情况,可以采用类似的控制点组合的方式确定目标控制点的运动信息。
在另一种实现方式中,按照预设顺序确定当前图像块的目标控制点的相邻子块是否可得,并且将相邻子块中第一个可得的相邻子块的运动信息,确定为当前图像块的目标控制点的运动信息。具体的,首先确定当前图像块的所有控制点的运动信息,然后再将控制点进行组合,得到当前图像块的目标控制点的运动信息的所有组合。示例性的,如图10所示,当前图像块的控制点M0的相邻子块为C3、F3、G3,这三个子块用于确定控制点M0的运动信息,控制点M1的相邻子块为D3、E3,这两个子块用于确定控制点M1的运动信息,控制点M2的相邻子块为A3、B3,这两个子块用于确定控制点M2的运动信息,控制点M3的相邻子块为T1,用于确定控制点M3的运动信息,其中,A3、B3、C3、D3、E3、F3和G3均为空间上的相邻子块,T1为时域上的相邻子块。
对于控制点M0,可以按照F3→C3→G3的顺序依次获取各个子块的运动信息,将检测到的第一个可得的子块的运动信息作为控制点M0的运动信息。具体的,确定控制点M0的运动信息的过程如下:
(1)若子块F3可得,则将子块F3的运动信息作为控制点M0的运动信息,无需再判断子块C3和子块G3是否可得;
(2)若子块F3不可得,则按照上述顺序确定子块C3是否可得;
(3)若子块C3可得,则将子块C3的运动信息作为控制点M0的运动信息,无需再判断子块G3是否可得;
(4)若子块C3不可得,则继续确定子块G3是否可得;
(5)若子块G3可得,则将子块G3的运动信息作为控制点M0的运动信息;
(6)若子块G3不可得,则确定控制点M0的运动信息不存在。
对于控制点M1,可以按照D3→E3的顺序依次获取各个子块的运动信息,将检测到的第一个可得的子块的运动信息作为控制点M1的运动信息。
对于控制点M2,可以按照A3→B3的顺序依次获取各个子块的运动信息,将检测到的第一个可得的子块的运动信息作为控制点M2的运动信息。
上述确定控制点M1和控制点M2的运动信息的过程与确定控制点M0的运动信息的过程类似,具体可以参见上述确定控制点M1的运动信息的描述,此处不再赘述。
对于控制点M3,若子块T1可得,将子块T1的运动信息作为控制点M3的运动信息。
上述获得当前图像块的所有控制点的运动信息之后,将当前图像块的控制点进行组合,得到目标控制点的运动信息的多种组合。
若目标控制点包括两个控制点,则将上述控制点M0、M1、M2、M3中的两个控制点进行组合,得到的控制点的二元组包括:{M0,M1}、{M0,M2}、{M0,M3}、{M2,M3}、{M2,M2}、{M3,M4}。
若目标控制点包括三个控制点,则将上述控制点M0、M1、M2、M3中的三个控制点进行组合,得到的控制点的三元组包括:{M0,M1,M2}、{M0,M1,M3}、{M1,M2,M3}、{M0,M2,M3}。
若目标控制点包括四个控制点,则将上述控制点M0、M1、M2、M3进行组合,得到的控制点的四元组为:{M0,M1,M2,M3}。
综上所述,通过S3011和S3012的两种方法,可以构建目标控制点的候选运动矢量列表(包括S3011中的二元组、S3012中的二元组、三元组、四元组),以用于确定当前图像块的子块的运动信息。
S302、根据目标控制点的运动信息,采用仿射变换模型,确定当前图像块的子块中目标像素点的运动信息,并将该目标像素点的运动信息作为该子块的运动信息。
其中,需要强调的是,上述目标像素点与当前图像块的控制点不同的像素点。
本发明实施例中,可以根据当前图像块的目标控制点的运动信息,确定当前图像块中的每一个子块的运动信息,从而根据每一个子块的运动信息得到该每一个子块的预测块,从而得到当前图像块的预测块。
下面以当前图像块中的一个子块(称为第一子块)为例说明确定该子块的运动信息的过程,其中,该第一子块可以为包含当前图像块的控制点的子块,该第一子块也可以为不包含当前图像块的控制点的子块。
上述S301中获取的当前图像块的目标控制点的运动信息可能为两个控制点,或三个控制点,或4个控制点的运动信息,当目标控制点包括两个控制点,可以根据4参数的仿射变换模型确定上述目标像素点的运动信息;当目标控制点包括三个控制点,可以根据6参数的仿射变换模型确定上述目标像素点的运动信息;当目标控制点包括四个控制点,可以根据8参数的仿射变换模型确定上述目标像素点的运动信息。
4参数的仿射变换模型为:
Figure BDA0001804221070000221
其中,vx和vy组成的(vx,vy)为第一子块中目标像素点的运动矢量,(x,y)为目标像素点的坐标(具体为相对于当前图像块的左上顶点像素的坐标),a1、a2、a3、a4为该仿射变换模型的参数,该参数与目标控制点的运动信息有关,若上述目标控制点包括的两个控制点分别为上述控制点M0和M1,根据控制点M1和控制点M2的运动信息,得到第一子块中目标像素点的运动信息为:
Figure BDA0001804221070000222
其中,(vx0,vy0)为控制点M1的运动矢量,(vx1,vy1)为控制点M2的运动矢量,w为当前图像块的宽。
6参数的仿射变换模型为:
Figure BDA0001804221070000231
同理a1、a2、a3、a4为该仿射变换模型的参数,该参数与目标控制点的运动信息有关,若上述目标控制点包括的三个控制点分别为上述控制点M0、M1以及M3,根据控制点M1、控制点M2以及控制点M3的运动信息,得到第一子块中目标像素点的运动信息为:
Figure BDA0001804221070000232
其中,(vx0,vy0)为控制点M1的运动矢量,(vx1,vy1)为控制点M2的运动矢量,(vx2,vy2)为控制点M3的运动矢量。
可选的,本发明实施例中,上述目标像素点可以为第一子块的中心像素点,该中心像素点的坐标可以根据下述公式(10)确定:
Figure BDA0001804221070000233
其中,i=0,1,2…,j=0,1,2…。
上述目标像素点也可以为第一子块中的任意一个像素点,或者根据某种规则确定的像素点,本发明实施例不作具体限定。
本发明实施例中,根据上述仿射变换模型得到当前图像块的子块中目标像素点的运动信息之后,由于基于非平动运动模型的预测方法中,认为同一个子块内的像素点的运动信息相同,因此可以将该目标像素点的运动信息作为该子块的运动信息。
由于运动信息可以表征当前图像块的子块可以由已重建的图像块的子块经过偏移得到,因此,可以根据当前图像块中每一个子块的运动信息快速地确定每一个子块的预测信息(即预测块)。具体的,根据当前图像块的子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中的运动矢量指向的参考块,并将该参考块作为当前图像块的子块的预测块。
在对当前图像块进行编码的过程中,由于上述S3011或S3012中确定的当前图像块的目标控制点的运动信息的候选运动信息(即候选运动矢量)可能包括多种,相应的,可以确定出当前图像块的多种预测结果。示例性的,以上述S3011中确定的目标控制点的运动信息为例,目标控制点包括两个控制点时,该目标控制点的候选运动矢量二元组包括上述的{v0A2,v1D2}、{v0A2,v1E2}、{v0B2,v1D2}、{v0B2,v1E2}、{v0C2,v1D2}、{v0C2,v1E2}这6组运动矢量。相应地,可以确定出当前图像块的6种预测结果。
结合下述表1,可以选择上述6种预测结果中的一种作为当前图像块最终的预测块(即最优的预测块),用于当前图像块的编码,具体的,可以计算当前图像块的原始块中每个像素点的值与预测块中每个像素点的值之间的差值的平均值,选择平均值最小的预测块作为当前图像块最终的预测块。
表1
目标控制点的运动信息 当前图像块的预测块 残差的平均值
{v<sub>0A2</sub>,v<sub>1D2</sub>} 预测结果1 残差的平均值1
{v<sub>0A2</sub>,v<sub>1E2</sub>} 预测结果2 残差的平均值2
{v<sub>0B2</sub>,v<sub>1D2</sub>} 预测结果3 残差的平均值3
{v<sub>0B2</sub>,v<sub>1E2</sub>} 预测结果4 残差的平均值4
{v<sub>0C2</sub>,v<sub>1D2</sub>} 预测结果5 残差的平均值5
{v<sub>0C2</sub>,v<sub>1E2</sub>} 预测结果6 残差的平均值6
进一步的,当前图像块的预测模式为AMVP模式时,将上述当前图像块最终的预测结果对应的目标控制点的运动矢量的值作为该目标控制点的运动矢量的预测值,将该运动矢量在候选运动矢量二元组中的索引编入码流,传递至解码端,并且编码端将该目标控制点的运动矢量与目标控制点的实际运动矢量之间的差值传递至解码端。当前图像块的预测模式为Merge模式时,将上述当前图像块最终的预测结果对应的目标控制点的运动矢量的值作为该目标控制点的运动矢量的预测值,将该运动矢量在候选运动矢量二元组中的索引编入码流,传递至解码端。
可选的,本发明实施例中,还可以根据当前图像块的子块的运动信息,对当前图像块的子块进行去块效应滤波,或者,根据当前图像块的子块的运动信息,对当前图像块的子块进行重叠块运动补偿。
S303、将当前图像块的子块的运动信息用于该子块的相邻图像块的运动信息的预测,以确定该子块的相邻图像块的运动信息。
其中,上述子块的相邻图像块与当前图像块相邻,并且该相邻图像块为采用平动运动模型进行预测得到的,当前图像块的子块的相邻图像块为一个CU,该子块的相邻图像块是未重建的图像块,结合上述实施例对于相邻图像块的描述可知,该当前图像块的子块的相邻图像块,也就是当前图像块的第二相邻图像块。
本发明实施例中,在一种应用场景中,在后续预测当前图像块的第二相邻图像块的过程中,若采用平动运动模型确定该第二相邻图像块的运动信息(即认为第二相邻图像块中的像素点的运动信息均相同,即不将该第二相邻图像块再划分为子块预测每个子块的运动信息,而是直接预测该第二相邻图像块的运动信息),则可以根据当前图像块的子块的运动信息预测该第二相邻图像块的运动信息,从而根据第二相邻图像块的运动信息确定该第二相邻图像块的预测块。。
在另一种应用场景中,在后续预测当前图像块的第二相邻图像块的过程中,若采用非平动运动模型,按照上述S3012中的方法确定该第二相邻图像块的子块的运动信息,进而确定该第二相邻图像块的预测块时,可以根据当前图像块的子块的运动信息确定该第二相邻图像块的控制点的运动信息,然后根据第二相邻图像块的控制点的运动信息,得到第二相邻图像块的各个子块的运动信息,从而得到各个子块的预测块,进而得到第二相邻图像块的预测块。
对于根据当前图像块的子块的运动信息,确定第二相邻图像块的控制点的运动信息的过程可以结合图9,并参见上述S3012中的相关描述,此处不再赘述。
可选的,本发明实施例中,还可以将上述当前图像块的目标控制点的运动信息用于当前图像块的第二相邻图像块的控制点的运动信息预测,以确定该第二相邻图像块的控制点的运动信息,具体的,可以基于上述S3011中的第一相邻图像块的运动模型(即上述公式(1)-(2),或公式(3)-(4))确定该第二相邻图像块的控制点的运动信息。
可选的,本发明实施例提供的运动信息的预测方法还可以包括:设置上述当前图像块的子块中的每个像素点的运动信息为该子块的运动信息,即将上述目标像素点的运动信息作为当前图像块的子块中每个像素点的运动信息。
可选的,本发明实施例提供的运动信息的预测方法还可以包括:上述确定出当前图像块的子块中的像素点的运动信息之后,保存该第一子块中的像素点的运动信息。
至此,可知,对于当前图像块而言,当前图像块包括两种运动信息,一种为当前图像块中控制点的运动信息,一种为当前图像块的每个子块的运动信息。
可选的,本发明实施例提供的运动信息的预测方法还可以包括:保存当前图像块的子块的运动信息和目标控制点的运动信息中的至少一项。
需要说明的是,本发明实施例中,当前图像块的子块的运动信息与当前图像块的控制点的运动信息分别存储在不同的存储位置,例如编解码设备的内存中的不同存储位置,或者编解码设备外部的存储设备的不同存储位置等等,本发明实施例不作限定。
可选的,在保存目标控制点的运动信息的同时,可以保存目标控制点的位置坐标。
本发明实施例提供的运动信息的预测方法,可以根据待预测的当前图像块的目标控制点的运动信息,采用仿射变换模型,确定该当前图像块的子块中目标像素点的运动信息,并将该目标像素点的运动信息作为该当前图像块的子块的运动信息,从而将该子块的运动信息用于该子块的相邻图像块的运动信息的预测,以确定该相邻图像块的运动信息,如此,可以提高编解码的性能,降低编解码的复杂度。
如图11所示,本发明实施例提供的图像预测方法可以包括S401-S403:
S401、根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息。
其中,上述当前图像块的相邻图像块为一个CU,并且当前图像块的相邻图像块满足以下A1-A3条件中的至少一项:
A1、当当前图像块的上边界与当前图像块所在的CTU的上边界重合时,当前图像块的相邻图像块为位于该当前图像块的左方或者左下方的图像块,该相邻图像块不包括位于当前图像块的上方,左上方和右上方的图像块。
本发明实施例中,在编解码过程中,可以确定当前图像块的上边界是否与当前图像块所在的CTU的上边界重合,若当前图像块的上边界与当前图像块所在的CTU的上边界重合,并且仅与当前图像块所在的CTU的上边界重合,则在选择上述相邻图像块时,可以不选择当前图像块的上方,左上方和右上方的图像块,或者,在选择上述相邻图像块时,可以不选择当前图像块的上方,左上方或右上方的图像块。
示例性的,结合图8,若当前图像块的上边界与当前图像块所在的CTU的上边界重合,在选择当前图像块的相邻图像块时,不选择B1所在的图像块、C1所在的图像块以及E1所在的图像块,可以选择A1所在的图像块和D1所在的图像块。
本发明实施例中,由于当前图像块的上边界与当前图像块所在的CTU的上边界重合,因此B1所在的图像块、C1所在的图像块以及E1所在的图像块分别是其他CTU中的图像块,在编解码的过程中对图像进行预测时,不再选择这些相邻图像块,如此无需再跨CTU获取相邻图像块的控制点的运动信息,能够节省编解码所消耗的资源。
A2、当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于当前图像块的上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左上方、左方和左下方的图像块。
本发明实施例中,可以确定当前图像块的左边界是否与当前图像块所在的CTU的左边界重合,若当前图像块的左边界与当前图像块所在的CTU的左边界重合,并且仅与当前图像块所在的CTU的左边界重合,则在选择上述相邻图像块时,可以不选择当前图像块的左上方、左方和左下方的图像块,或者,在选择上述相邻图像块时,可以不选择当前图像块的左上方、左方或左下方的图像块。
示例性的,结合图8,若当前图像块的左边界与当前图像块所在的CTU的左边界重合,在选择当前图像块的相邻图像块时,不选择A1所在的图像块、D1所在的图像块以及E1所在的图像块,可以选择B1所在的图像块和C1所在的图像块。
同理,由于当前图像块的左边界与当前图像块所在的CTU的左边界重合,因此A1所在的图像块、D1所在的图像块以及E1所在的图像块分别是其他CTU中的图像块,在编解码的过程中对图像进行预测时,不再选择这些相邻图像块,如此无需再跨CTU获取相邻图像块的控制点的运动信息,能够节省编解码所消耗的资源。
A3、当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于该当前图像块的左上方、上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左方或者左下方的图像块。
示例性的,结合图8,若当前图像块的左边界与当前图像块所在的CTU的左边界重合,在选择当前图像块的相邻图像块时,不选择A1所在的图像块和D1所在的图像块,可以选择B1所在的图像块、C1所在的图像块以及E1所在的图像块。
需要说明的是,上述当前图像块的相邻图像块是当前图像块的空间相邻块。
本发明实施例中,上述S401中确定当前图像块的控制点的运动信息的方法即就是上述S3011中描述的确定当前图像块的目标控制点的运动信息的方法。结合图2,在S401中,当前图像块的控制点即为上述S301中的当前图像块的目标控制点,当前图像块的控制点的运动信息即为上述S301中的目标控制点的运动信息;在S401中,当前图像块的相邻图像块的控制点即为上述当前图像块的第一相邻图像块的控制点的运动信息,当前图像块的相邻图像块的控制点的运动信息即为上述第一图像块的目标控制点的运动信息。
S402、根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息。
对于S402中确定当前图像块的子块的运动信息的描述可以参见上述S302的相关描述,此处不再赘述。
S403、根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
本发明实施例中,根据当前图像块的子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中的运动矢量指向的参考块,并将该参考块作为当前图像块的子块的预测块。
本发明实施例提供的图像预测方法,在对当前图像块进行编解码的过程中,通过确定当前图像块的边界是否与当前图像块所在的CTU的边界是否重合,来选择当前图像块的部分相邻图像块用于确定当前图像块的控制点的运动信息,不再跨CTU获取其他相邻图像块的控制点的运动信息,如此,能够节省编解码消耗的资源。
如图12所示,本发明实施例提供的图像预测方法可以包括S501-S504:
S501、确定当前图像块的上边界是否与当前图像块所在的CTU的上边界重合,以及当前图像块的左边界是否与当前图像块所在的CTU的左边界重合。
S502、当当前图像块的上边界与当前图像块所在的CTU的上边界重合,并且当前图像块的左边界与当前图像块所在的CTU的左边界重合时,根据当前图像块的控制点的相邻子块的运动信息,确定当前图像块的控制点的运动信息。
本发明实施例中,在当前图像块的上边界、左边分别与当前图像块所在的CTU的上边界、左边界重合的情况下,不再基于上述S401(或者S3011)中的方法确定当前图像块的控制点的运动信息,而是采用当前图像块的控制点的相邻子块的运动信息(即上述实施例中的S3012方法),确定当前图像块的控制点的运动信息。
S503、根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息。
S504、根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
本发明实施例提供的图像预测方法,在当前图像块的上边界、左边分别与当前图像块所在的CTU的上边界、左边界重合的情况下,采用当前图像块的控制点的相邻子块的运动信息,确定当前图像块的控制点的运动信息的方法实现对当前图像块的预测,无需再跨CTU获取当前图像块的相邻图像块的控制点的运动信息,如此,能够节省编解码消耗的资源。
上述主要从方法的角度对本发明实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本发明实施例可以根据上述方法示例对运动信息的预测装置和图像预测装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图13为本发明实施例中的运动信息的预测装置1100的一种示意性框图。该运动信息的预测装置1100可以包括:获取模块1101和确定模块1102。其中:获取模块1101,用于获取待预测的当前图像块的目标控制点的运动信息;确定模块1103,用于根据目标控制点的运动信息,采用仿射变换模型,确定当前图像块的子块中目标像素点的运动信息,并将目标像素点的运动信息作为当前图像块的子块的运动信息,该目标像素点是与目标控制点不同的像素点,该目标像素点可以为该子块的中心像素点;以及将该子块的运动信息用于该子块的相邻图像块的运动信息的预测,以确定该子块的相邻图像块的运动信息,该子块的相邻图像块与当前图像块相邻。例如,结合图7,获取模块1101具体可以用于执行S301,确定模块1102可以用于执行S302和S303。
可选的,上述确定模块1102,还用于根据上述子块的相邻图像块的运动信息,确定该子块的相邻图像块的预测块。
可选的,结合图13,如图14所示,本发明实施例提供的运动信息的预测装置还可以包括处理模块1103,该处理模块1103用于根据当前图像块的子块的运动信息,对该子块进行去块效应滤波;或者,根据该子块的运动信息,对该子块进行重叠块运动补偿。
可选的,上述确定模块1102还可以用于将目标控制点的运动信息用于当前图像块的相邻图像块的控制点的运动信息预测,以确定该相邻图像块的控制点的运动信息。
可选的,上述确定模块1102,还用于设置当前图像块的子块中每个像素点的运动信息为该子块的运动信息。
结合图14,如图15所示,本发明实施例提供的运动信息的预测装置还可以包括存储模块1104;该存储模块1104,用于保存当前图像块的子块中的像素点的运动信息。
可选的,上述存储模块1104,还可以用于保存当前图像块的子块的运动信息和当前图像块的目标控制点的运动信息中至少一项。
图16为本发明实施例中的图像预测装置1200的一种示意性框图。该图像预测装置1200可以包括第一确定模块1201、第二确定模块1202以及第三确定模块1203。该第一确定模块1201,可以用于根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息;该第二确定模块1202,可以用于并且根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;该第三确定模块1203,可以用于根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。例如,结合图11,第一确定模块1201具体可以用于执行S401,第二确定模块1202具体可以用于执行S402,第三确定模块1203具体可以用于执行S403。
其中,当前图像块的相邻图像块满足以下条件中的至少一项:
当当前图像块的上边界与当前图像块所在的CTU的上边界重合时,当前图像块的相邻图像块为位于当前图像块的左方或者左下方的图像块,该相邻图像块不包括位于当前图像块的上方,左上方和右上方的图像块;
当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于当前图像块的上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左上方、左方和左下方的图像块。
上述当前图像块的相邻图像块是当前图像块的空间相邻块。
上述第一确定模块1201具体用于根据待预测的当前图像块的相邻图像块的控制点的运动信息,采用下述公式计算当前图像块的控制点的运动信息:
Figure BDA0001804221070000281
其中,(vx4,vy4)为位于相邻图像块的左上顶点的控制点(x4,y4)的运动矢量,(vx5,vy5)为位于相邻图像块的右上顶点的控制点(x5,y5)的运动矢量,(vx,vy)为当前图像块的控制点(x,y)的运动矢量。
上述第二确定模块1202具体用于根据当前图像块的控制点的运动信息,采用下述公式计算当前图像块的子块中目标像素点的运动信息:
Figure BDA0001804221070000291
其中,(vx0,vy0)为位于当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为目标像素点(x,y)的运动矢量;并且将目标像素点的运动矢量作为该子块的运动矢量。
上述第三确定模块1203具体用于根据当前图像块的子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中运动矢量指向的参考块,并将该参考块作为当前图像块的子块的预测块。
图17为本发明实施例中的图像预测装置1300的一种示意性框图,该图像预测装置可以包括第一确定模块1301、第二确定模块1302、第三确定模块1303以及第四确定模块1304。该第一确定模块1301用于确定待预测的当前图像块的上边界是否与当前图像块所在的CTU的上边界重合,以及当前图像块的左边界是否与当前图像块所在的CTU的左边界重合;该第二确定模块1302用于当当前图像块的左边界与当前图像块所在的CTU的左边界重合,并且当前图像块的上边界与当前图像块所在的CTU的上边界重合时,根据当前图像块的控制点的相邻子块的运动信息,确定当前图像块的控制点的运动信息,该相邻子块为CU的子块;第三确定模块1303用于根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;第四确定模块1304用于根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。例如,第一确定模块1301具体可以用于执行S501,第二确定模块1302具体可以用于执行S502,第三确定模块1303具体可以用于执行S503,第四确定模块1304具体可以用于执行S504。
上述第二确定模块1302具体用于将当前图像块的控制点的相邻子块的运动信息确定为当前图像块的控制点的运动信息;或者,按照预设顺序确定当前图像块的控制点的相邻子块是否可得;并且将相邻子块中第一个可得的相邻子块的运动信息,确定为当前图像块的控制点的运动信息。
上述第三确定模块1303具体用于根据当前图像块的控制点的运动信息,采用下述公式计算当前图像块的子块中目标像素点的运动信息:
其中,(vx0,vy0)为位于当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为目标像素点(x,y)的运动矢量。
上述第四确定模块1304具体用于根据当前图像块的子块的运动信息中的运动矢量和当前图像块的子块的位置信息,在当前图像块的参考帧中,确定当前图像块的子块的运动信息中的运动矢量指向的参考块,并将该参考块作为当前图像块的子块的预测块。
可选的,上述第二确定模块1302,还可以用于当当前图像块的左边界与当前图像块所在的CTU的左边界重合,或者当前图像块的上边界与当前图像块所在的CTU的上边界重合时,根据当前图像块的相邻图像块的控制点的运动信息,确定当前图像块的控制点的运动信息;上述第三确定模块1303,还可以用于根据当前图像块的控制点的运动信息,采用仿射变换模型,确定当前图像块的子块的运动信息;上述第四确定模块1304还可以用于根据当前图像块的子块的运动信息,得到当前图像块的子块的预测块。
其中,当前图像块的相邻图像块满足以下条件中的至少一项:
当当前图像块的上边界与当前图像块所在的CTU的上边界重合时,当前图像块的相邻图像块为位于当前图像块的左方或者左下方的图像块,该相邻图像块不包括位于当前图像块的上方,左上方和右上方的图像块;
当当前图像块的左边界与当前图像块所在的CTU的左边界重合时,当前图像块的相邻图像块为位于当前图像块的上方或者右上方的图像块,该相邻图像块不包括位于当前图像块的左上方、左方和左下方的图像块。
可以理解的,本发明实施例的图像预测装置和运动信息的预测装置中的各个模块为实现本发明实施例的图像预测方法和运动信息的预测方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本发明实施例的图像预测方法和运动信息的预测方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见本文中对图像预测方法和运动信息的预测方法的介绍,为简洁起见,本文将不再赘述。
图18为用于本发明实施例的编码设备或解码设备(简称为译码设备1400)的一种实现方式的示意性框图。其中,译码设备1400可以包括处理器1410、存储器1430和总线系统1450。其中,处理器1410和存储器1430通过总线系统1450相连,该存储器1430用于存储指令,该处理器1410用于执行该存储器1430存储的指令,以执行本发明实施例描述的各种视频编解码方法,尤其是上述运动信息的预测方法和图像预测方法。为避免重复,这里不再详细描述。
在本发明实施例中,该处理器1410可以是中央处理单元(central processingunit,CPU),该处理器1410还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1430可以包括ROM设备或者RAM设备。任何其他适宜类型的存储设备也可以用作存储器1430。存储器1430可以包括由处理器1410使用总线1450访问的代码和数据1431。存储器1430可以进一步包括操作系统1433和应用程序1435,该应用程序1435包括允许处理器1410执行本发明实施例描述的视频编解码方法的至少一个程序。例如,应用程序1435可以包括应用1至N,其进一步包括执行在本发明实施例描述的视频编解码方法的视频编码或解码应用(简称视频译码应用)。
该总线系统1450除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1450。
可选的,译码设备1400还可以包括一个或多个输出设备,诸如显示器1470。在一个示例中,显示器1470可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1470可以经由总线1450连接到处理器1410。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、DVD和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,视频编码器100及视频解码器200中的各种说明性逻辑框、单元、模块可以理解为对应的电路器件或逻辑元件。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
下面结合本发明实施例中的附图对本发明实施例进行描述。
图19为本发明实施例中所描述的一种实例的视频译码系统1的框图。如本文所使用,术语“视频译码器”一般是指视频编码器和视频解码器两者。在本申请中,术语“视频译码”或“译码”可一般地指代视频编码或视频解码。视频译码系统1的视频编码器300和视频解码器400用于根据本申请提出的多种新的帧间预测模式中的任一种所描述的各种方法实例来预测当前经译码图像块或其子块的运动信息,例如运动矢量,使得预测出的运动矢量最大程度上接近使用运动估算方法得到的运动矢量,从而编码时无需传送运动矢量差值,从而进一步的改善编解码性能。
如图19中所示,视频译码系统1包含源装置30和目的地装置40。源装置30产生经编码视频数据。因此,源装置30可被称为视频编码装置。目的地装置40可对由源装置30所产生的经编码的视频数据进行解码。因此,目的地装置40可被称为视频解码装置。源装置10、目的地装置40或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于RAM、ROM、EEPROM、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
源装置30和目的地装置40可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
目的地装置40可经由链路50从源装置30接收经编码视频数据。链路50可包括能够将经编码视频数据从源装置30移动到目的地装置40的一或多个媒体或装置。在一个实例中,链路50可包括使得源装置30能够实时将经编码视频数据直接发射到目的地装置40的一或多个通信媒体。在此实例中,源装置30可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到目的地装置40。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置30到目的地装置40的通信的其它设备。
在另一实例中,可将经编码数据从输出接口340输出到存储装置60。类似地,可通过输入接口440从存储装置60存取经编码数据。存储装置60可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置60可对应于文件服务器或可保持由源装置30产生的经编码视频的另一中间存储装置。目的地装置40可经由流式传输或下载从存储装置60存取所存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的地装置40的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接式存储(NAS)装置或本地磁盘驱动器。目的地装置40可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置60的传输可为流式传输、下载传输或两者的组合。
本申请的运动矢量预测技术可应用于视频编解码以支持多种多媒体应用,例如空中电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储于数据存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码系统1可用于支持单向或双向视频传输以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。
图19中所说明的视频译码系统1仅为实例,并且本申请的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图19的实例中,源装置30包含视频源320、视频编码器300和输出接口340。在一些实例中,输出接口340可包含调节器/解调器(调制解调器)和/或发射器。视频源320可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。
视频编码器300可对来自视频源320的视频数据进行编码。在一些实例中,源装置30经由输出接口340将经编码视频数据直接发射到目的地装置40。在其它实例中,经编码视频数据还可存储到存储装置60上,供目的地装置40以后存取来用于解码和/或播放。
在图19的实例中,目的地装置40包含输入接口440、视频解码器400和显示装置420。在一些实例中,输入接口440包含接收器和/或调制解调器。输入接口440可经由链路50和/或从存储装置60接收经编码视频数据。显示装置420可与目的地装置40集成或可在目的地装置40外部。一般来说,显示装置420显示经解码视频数据。显示装置420可包括多种显示装置,例如,液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
尽管图19中未图示,但在一些方面,视频编码器300和视频解码器400可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
视频编码器100和视频解码器200各自可实施为例如以下各项的多种电路中的任一者:一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。视频编码器100和视频解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本申请可大体上将视频编码器300称为将某些信息“发信号通知”或“发射”到例如视频解码器400的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
视频编码器300和视频解码器400可根据例如高效视频编码(HEVC)等视频压缩标准或其扩展来操作,并且可符合HEVC测试模型(HM)。或者,视频编码器300和视频解码器400也可根据其它业界标准来操作,所述标准例如是ITU-T H.264、H.265标准,或此类标准的扩展。然而,本申请的技术不限于任何特定编解码标准。
在一个实例中,视频编码器300用于:将与当前待编码的图像块相关的语法元素编码入数字视频输出位流(简称为位流或码流),这里将用于当前图像块帧间预测的语法元素简称为帧间预测数据,其中帧间预测数据可以包括用于指示是否对当前图像块采用上述候选帧间预测模式集合进行帧间预测的第一标识(换言之,即用于指示是否对当前图像块采用本申请提出的新的帧间预测模式进行帧间预测的第一标识);或者,帧间预测数据可以包括:用于指示是否对当前待编码图像块采用候选帧间预测模式集合进行帧间预测的第一标识和用于指示当前待图像块的帧间预测模式的第二标识;为了确定用于对当前图像块进行编码的帧间预测模式,视频编码器300还用于确定或选择上述候选帧间预测模式集合中用于对当前图像块进行帧间预测的帧间预测模式(例如选择多种新的帧间预测模式中编码当前图像块的码率失真代价折中或最小的帧间预测模式);以及基于确定的帧间预测模式,编码所述当前图像块,这里的编码过程可以包括基于确定的帧间预测模式,预测所述当前图像块中一个或多个子块的运动信息(具体可以是每个子块或者所有子块的运动信息),并利用所述当前图像块中一个或多个子块的运动信息对所述当前图像块执行帧间预测;
应当理解的是,如果由基于本申请提出的新的帧间预测模式预测出的运动信息产生的预测块与当前待编码图像块(即原始块)之间的差值(即残差)为0,则视频编码器300中只需要将与当前待编码的图像块相关的语法元素编入位流(亦称为码流);反之,除了语法元素外,还需要将相应的残差编入位流。
在另一实例中,视频解码器400用于:从位流中解码出与当前待解码的图像块相关的语法元素,这里将用于当前图像块帧间预测的语法元素简称为帧间预测数据,所述帧间预测数据包括用于指示是否对当前经解码图像块采用候选帧间预测模式集合进行帧间预测的第一标识(即用于指示是否对当前待解码图像块采用本申请提出的新的帧间预测模式进行帧间预测的第一标识),当所述帧间预测数据指示采用候选帧间预测模式集合(即新的帧间预测模式)来对当前图像块进行预测时,确定所述候选帧间预测模式集合中用于对当前图像块进行帧间预测的帧间预测模式,并基于确定的帧间预测模式解码所述当前图像块,这里的解码过程可以包括基于确定的帧间预测模式,预测所述当前图像块中一个或多个子块的运动信息,并利用所述当前图像块中一个或多个子块的运动信息对所述当前图像块执行帧间预测。
可选的,如果所述帧间预测数据还包括用于指示所述当前图像块采用何种帧间预测模式的第二标识,视频解码器400用于确定所述第二标识指示的帧间预测模式为用于对所述当前图像块进行帧间预测的帧间预测模式;或者,如果所述帧间预测数据未包括用于指示所述当前图像块采用何种帧间预测模式的第二标识,视频解码器400用于确定用于非方向性的运动场的第一帧间预测模式为用于对所述当前图像块进行帧间预测的帧间预测模式。
图20A为本发明实施例中所描述的一种实例的视频编码器300的框图。视频编码器300用于将视频输出到后处理实体61。后处理实体61表示可处理来自视频编码器300的经编码视频数据的视频实体的实例,例如媒体感知网络元件(MANE)或拼接/编辑装置。在一些情况下,后处理实体61可为网络实体的实例。在一些视频编码系统中,后处理实体61和视频编码器300可为单独装置的若干部分,而在其它情况下,相对于后处理实体61所描述的功能性可由包括视频编码器300的相同装置执行。在某一实例中,后处理实体61是图19的存储装置60的实例。
视频编码器100可根据本申请提出的包括模式0,1,2…或10的候选帧间预测模式集合中的任一种新的帧间预测模式执行视频图像块的编码,例如执行视频图像块的帧间预测。
在图20A的实例中,视频编码器300包括预测处理单元308、滤波器单元306、经解码图像缓冲器(DPB)307、求和器312、变换器301、量化器302和熵编码器303。预测处理单元308包括帧间预测器310和帧内预测器309。为了图像块重构,视频编码器300还包含反量化器304、反变换器305和求和器311。滤波器单元306既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管在图20A中将滤波器单元106示出为环路内滤波器,但在其它实现方式下,可将滤波器单元306实施为环路后滤波器。在一种示例下,视频编码器300还可以包括视频数据存储器、分割单元(图中未示意)。
视频数据存储器可存储待由视频编码器300的组件编码的视频数据。可从视频源320获得存储在视频数据存储器中的视频数据。DPB 307可为参考图像存储器,其存储用于由视频编码器300在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器和DPB 307可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。视频数据存储器和DPB 307可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器可与视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图20A中所示,视频编码器300接收视频数据,并将所述视频数据存储在视频数据存储器中。分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器300通常说明编码待编码的视频条带内的图像块的组件。所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。预测处理单元308可选择用于当前图像块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者或多个帧间译码模式中的一者,其中所述多个帧间译码模式包括但不限于本申请提出的模式0,1,2,3…10中的一个或多个。预测处理单元308可将所得经帧内、帧间译码的块提供给求和器312以产生残差块,且提供给求和器311以重构用作参考图像的经编码块。
预测处理单元308内的帧内预测器309可相对于与待编码当前块在相同帧或条带中的一或多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元308内的帧间预测器310可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编码以去除时间冗余。
具体的,帧间预测器310可用于确定用于编码当前图像块的帧间预测模式。举例来说,帧间预测器310可使用速率-失真分析来计算候选帧间预测模式集合中的各种帧间预测模式的速率-失真值,并从中选择具有最佳速率-失真特性的帧间预测模式。速率失真分析通常确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(也就是说,位数目)。例如,帧间预测器310可确定候选帧间预测模式集合中编码所述当前图像块的码率失真代价最小的帧间预测模式为用于对当前图像块进行帧间预测的帧间预测模式。下文将详细介绍帧间预测性编码过程,尤其是在本申请各种用于非方向性或方向性的运动场的帧间预测模式下,预测当前图像块中一个或多个子块(具体可以是每个子块或所有子块)的运动信息的过程。
帧间预测器310用于基于确定的帧间预测模式,预测当前图像块中一个或多个子块的运动信息(例如运动矢量),并利用当前图像块中一个或多个子块的运动信息(例如运动矢量)获取或产生当前图像块的预测块。帧间预测器310可在参考图像列表中的一者中定位所述运动向量指向的预测块。帧间预测器310还可产生与图像块和视频条带相关联的语法元素以供视频解码器400在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测器310利用每个子块的运动信息执行运动补偿过程,以生成每个子块的预测块,从而得到当前图像块的预测块;应当理解的是,这里的帧间预测器310执行运动估计和运动补偿过程。
具体的,在为当前图像块选择帧间预测模式之后,帧间预测器310可将指示当前图像块的所选帧间预测模式的信息提供到熵编码器303,以便于熵编码器303编码指示所选帧间预测模式的信息。在本申请中,视频编码器300可在所发射的位流中包含与当前图像块相关的帧间预测数据,其可包括第一标识blockbasedenableflag,以表示是否对当前图像块采用本申请提出的新的帧间预测模式进行帧间预测;可选的,还可以包括第二标识blockbasedindex,以指示当前图像块使用的是哪一种新的帧间预测模式。本申请中,在不同的模式0,1,2…10下,利用多个参考块的运动矢量来预测当前图像块或其子块的运动矢量的过程,将在下文详细描述。
帧内预测器309可对当前图像块执行帧内预测。明确地说,帧内预测器309可确定用来编码当前块的帧内预测模式。举例来说,帧内预测器309可使用速率-失真分析来计算各种待测试的帧内预测模式的速率-失真值,并从待测试模式当中选择具有最佳速率-失真特性的帧内预测模式。在任何情况下,在为图像块选择帧内预测模式之后,帧内预测器309可将指示当前图像块的所选帧内预测模式的信息提供到熵编码器303,以便熵编码器303编码指示所选帧内预测模式的信息。
在预测处理单元308经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编码器300通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和器312表示执行此减法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个TU中,并应用于变换器301。变换器301使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换器301可将残差视频数据从像素值域转换到变换域,例如频域。
变换器301可将所得变换系数发送到量化器302。量化器302量化所述变换系数以进一步减小位速率。在一些实例中,量化器302可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器303可执行扫描。
在量化之后,熵编码器303对经量化变换系数进行熵编码。举例来说,熵编码器303可执行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术。在由熵编码器303熵编码之后,可将经编码位流发射到视频解码器400,或经存档以供稍后发射或由视频解码器400检索。熵编码器303还可对待编码的当前图像块的语法元素进行熵编码。
反量化器304和反变化器305分别应用逆量化和逆变换以在像素域中重构所述残差块,例如以供稍后用作参考图像的参考块。求和器311将经重构的残差块添加到由帧间预测器310或帧内预测器309产生的预测块,以产生经重构图像块。滤波器单元306可以适用于经重构图像块以减小失真,诸如方块效应(block artifacts)。然后,该经重构图像块作为参考块存储在经解码图像缓冲器307中,可由帧间预测器310用作参考块以对后续视频帧或图像中的块进行帧间预测。
应当理解的是,视频编码器300的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器300可以直接地量化残差信号而不需要经变换器301处理,相应地也不需要经反变换器305处理;或者,对于某些图像块或者图像帧,视频编码器300没有产生残差数据,相应地不需要经变换器301、量化器302、反量化器304和反变换器305处理;或者,视频编码器300可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元306处理;或者,视频编码器300中量化器302和反量化器304可以合并在一起。
图20B为本发明实施例中所描述的一种实例的视频解码器400的框图。在图20B的实例中,视频解码器400包括熵解码器403、预测处理单元408、反量化器404、反变换器405、求和器411、滤波器单元406以及经解码图像缓冲器407。预测处理单元408可以包括帧间预测器410和帧内预测器409。在一些实例中,视频解码器400可执行大体上与相对于来自图20A的视频编码器300描述的编码过程互逆的解码过程。
在解码过程中,视频解码器400从视频编码器300接收表示经编码视频条带的图像块和相关联的语法元素的经编码视频位流。视频解码器400可从网络实体62接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待由视频解码器400的组件解码的视频数据,例如经编码视频位流。存储在视频数据存储器中的视频数据,例如可从存储装置60、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器可作为用于存储来自经编码视频位流的经编码视频数据的经解码图像缓冲器(CPB)。因此,尽管在图20B中没有示意出视频数据存储器,但视频数据存储器和DPB 407可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和DPB 407可由多种存储器装置中的任一者形成,例如:包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器400的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。
网络实体62可例如为服务器、MANE、视频编辑器/剪接器,或用于实施上文所描述的技术中的一或多者的其它此装置。网络实体62可包括或可不包括视频编码器,例如视频编码器300。在网络实体62将经编码视频位流发送到视频解码器400之前,网络实体62可实施本申请中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器400的相同装置执行。在一些情况下,网络实体42可为图19的存储装置60的实例。
视频解码器400的熵解码器403对位流进行熵解码以产生经量化的系数和一些语法元素。熵解码器403将语法元素转发到预测处理单元408。视频解码器400可接收在视频条带层级和/或图像块层级处的语法元素。本申请中,在一种示例下,这里的语法元素可以包括与当前图像块相关的帧间预测数据,该帧间预测数据可以包括第一标识blockbasedenableflag,以表示是否对当前图像块采用上述候选帧间预测模式集合进行帧间预测(换言之,即以表示是否对当前图像块采用本申请提出的新的帧间预测模式进行帧间预测);可选的,还可以包括第二标识blockbasedindex,以指示当前图像块使用的是哪一种新的帧间预测模式。
当视频条带被解码为经帧内解码(I)条带时,预测处理单元408的帧内预测器409可基于发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当前视频条带的图像块的预测块。当视频条带被解码为经帧间解码(即,B或P)条带时,预测处理单元408的帧间预测器410可基于从熵解码器403接收到的语法元素,确定用于对当前视频条带的当前图像块进行解码的帧间预测模式,基于确定的帧间预测模式,对所述当前图像块进行解码(例如执行帧间预测)。具体的,帧间预测器410可确定是否对当前视频条带的当前图像块采用新的帧间预测模式进行预测,如果语法元素指示采用新的帧间预测模式来对当前图像块进行预测,基于新的帧间预测模式(例如通过语法元素指定的一种新的帧间预测模式或默认的一种新的帧间预测模式)预测当前视频条带的当前图像块或当前图像块的子块的运动信息,从而通过运动补偿过程使用预测出的当前图像块或当前图像块的子块的运动信息来获取或生成当前图像块或当前图像块的子块的预测块。这里的运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。对于帧间预测,可从参考图像列表中的一者内的参考图像中的一者产生预测块。视频解码器400可基于存储在DPB 407中的参考图像来建构参考图像列表,即列表0和列表1。当前图像的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,可以是视频编码器300发信号通知指示是否采用新的帧间预测模式来解码特定块的特定语法元素,或者,也可以是发信号通知指示是否采用新的帧间预测模式,以及指示具体采用哪一种新的帧间预测模式来解码特定块的特定语法元素。应当理解的是,这里的帧间预测器410执行运动补偿过程。下文将详细的阐述在各种新的帧间预测模式下,利用参考块的运动信息来预测当前图像块或当前图像块的子块的运动信息的帧间预测过程。
反量化器404将在位流中提供且由熵解码器403解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器300针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器405将逆变换应用于变换系数,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
在帧间预测器410产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器400通过将来自反变换器405的残差块与由帧间预测器410产生的对应预测块求和以得到重建的块,即经解码图像块。求和器411表示执行此求和操作的组件。在需要时,还可使用环路滤波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元406可以表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)以及样本自适应偏移(SAO)滤波器。尽管在图20B中将滤波器单元406示出为环路内滤波器,但在其它实现方式中,可将滤波器单元406实施为环路后滤波器。在一种示例下,滤波器单元406适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在经解码图像缓冲器407中,经解码图像缓冲器407存储用于后续运动补偿的参考图像。经解码图像缓冲器407可为存储器的一部分,其还可以存储经解码视频,以供稍后在显示装置(例如图19的显示装置420)上呈现,或可与此类存储器分开。
应当理解的是,视频解码器400的其它结构变化可用于解码经编码视频位流。例如,视频解码器400可以不经滤波器单元406处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器400的熵解码器403没有解码出经量化的系数,相应地不需要经反量化器404和反变换器405处理。
帧间预测是在已重建的图像中,为当前图像中的当前编码块寻找匹配的参考块,将参考块中的像素点的像素值作为当前编码块中像素点的像素值的预测信息或者预测值(以下不再区分信息和值),此过程称为运动估计(Motion estimation,ME)(如图21所示),并传输当前编码块的运动信息。
需要说明的是,当前编码块的运动信息包括了预测方向的指示信息(通常为前向预测、后向预测或者双向预测),一个或两个指向参考块的运动矢量(Motion vector,MV),以及参考块所在图像的指示信息(通常记为参考帧索引,Reference index)。
前向预测是指当前编码块从前向参考图像集合中选择一个参考图像获取参考块。后向预测是指当前编码块从后向参考图像集合中选择一个参考图像获取参考块。双向预测是指从前向和后向参考图像集合中各选择一个参考图像获取参考块。当使用双向预测方法时,当前编码块会存在两个参考块,每个参考块各自需要运动矢量和参考帧索引进行指示,然后根据两个参考块内像素点的像素值确定当前块内像素点像素值的预测值。
运动估计过程需要为当前编码块在参考图像中尝试多个参考块,最终使用哪一个或者哪几个参考块用作预测则使用率失真优化(Rate-distortion optimization,RDO)或者其他方法确定。
利用帧内预测或者帧间预测得到预测信息之后,当前编码块内像素点的像素值减去对应的预测信息便得到残差信息,然后利用离散余弦变换(Discrete CosineTransformation,DCT)等方法对残差信息进行变换,再使用量化熵编码得到码流。预测信号加上重建残差信号之后需进一步进行滤波操作,进而得到重建信号,并将其作为后续编码的参考信号。
解码则相当于编码的逆过程。例如,首先利用熵解码反量化反变换得到残差信息,解码码流确定当前编码块使用的是帧内预测还是帧间预测。如果是帧内预测,则利用周围已重建区域内像素点的像素值按照所使用的帧内预测方法构建预测信息。如果是帧间预测,则需要解析出运动信息,并使用所解析出的运动信息在已重建的图像中确定参考块,并将块内像素点的像素值作为预测信息,此过程称为运动补偿(Motion compensation,MC)。使用预测信息加上残差信息经过滤波操作便可以得到重建信息。
帧间预测模式
在HEVC中,使用两种帧间预测模式,分别为先进的运动矢量预测(AdvancedMotion Vector Prediction,AMVP)模式和融合(Merge)模式。
对于AMVP模式,先通过当前编码块空域或者时域相邻的已编码块的运动信息,构建候选运动矢量列表,然后通过从候选运动矢量列表中确定最优的运动矢量作为当前编码块的运动矢量预测值(Motion vector predictor,MVP)。率失真代价由公式(1)计算获得,其中J为率失真代价RD Cost,SAD为使用候选运动矢量预测值进行运动估计后得到的预测像素值与原始像素值之间的绝对误差和(Sum of Absolute Differences,SAD),R为码率,λ为拉格朗日乘子,编码器将选择的运动矢量预测值在候选运动矢量列表中的索引值和参考帧索引值传递到解码器。进一步地,在MVP为中心的邻域内进行运动搜索获得当前编码块实际的运动矢量,编码器将MVP与实际运动矢量之间的差值(Motion vector difference)传递到解码器。
J=SAD+λR (11)
对于Merge模式,先通过当前编码块空域或者时域相邻的已编码块的运动信息,构建候选运动信息列表,然后通过率失真代价从候选运动信息列表中确定最优的运动信息作为当前编码块的运动信息,再将最优的运动信息在候选运动信息列表中位置的索引值(记为merge index,下同)传递到解码器。当前编码块空域和时域候选运动信息如图22所示,空域候选运动信息来自于空间相邻的5个块(A0,A1,B0,B1和B2),若相邻块不可得或者为帧内编码模式,则不加入候选运动信息列表。当前编码块的时域候选运动信息根据参考帧和当前帧的图序计数(Picture order count,POC)对参考帧中对应位置块的MV进行缩放后获得。首先判断参考帧中位置为T的块是否可得,若不可得则选择位置在C的块。
在HEVC的帧间预测中,编码块内的所有像素都采用了相同的运动信息,然后根据运动信息进行运动补偿,得到编码块的像素的预测值。然而在编码块内,并不是所有的像素都有相同的运动特性,采用相同的运动信息可能会导致运动补偿预测的不准确,进而增加了残差信息。
现有的视频编码标准使用基于平动运动模型的块匹配运动估计,并且假设块中所有像素点的运动一致。但是由于在现实世界中,运动多种多样,存在很多非平动运动的物体,如旋转的的物体,在不同方向旋转的过山车,投放的烟花和电影中的一些特技动作,特别是在UGC场景中的运动物体,对它们的编码,如果采用当前编码标准中的基于平动运动模型的块运动补偿技术,编码效率会受到很大的影响,因此业界和我们都对非平动运动模型进行了研究,特别是对基于仿射变换的运动模型进行了深入地研究,以便进一步提高编码效率。
非平动运动模型预测
非平动运动模型预测指在编解码器使用相同的运动模型推导出当前编码块内每一个子运动补偿单元的运动信息,根据子运动补偿单元的运动信息进行运动补偿,得到预测块,从而提高预测效率。常用的运动模型有6参数仿射模型或者4参数仿射变换模型。
4参数的仿射变换模型如公式(12)所示:
Figure BDA0001804221070000401
4参数仿射变换模型可以通过两个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示,将用于表示运动模型参数的像素点记为控制点。若采用左上顶点(0,0)和右上顶点(W,0)像素点作为控制点,则先确定当前编码块左上顶点和右上顶点控制点的运动矢量(vx0,vy0)和(vx1,vy1),然后根据公式(13)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W为当前编码块的宽。
Figure BDA0001804221070000402
6参数的仿射变换模型如公式(14)所示:
Figure BDA0001804221070000403
6参数仿射变换模型可以通过三个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示。若采用左上顶点(0,0)、右上顶点(W,0)和左下顶点(0,H)像素点作为控制点,则先确定当前编码块左上顶点、右上顶点和左下顶点控制点的运动矢量(vx0,vy0)、(vx1,vy1)和(vx2,vy2),然后根据公式(15)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W和H分别为当前编码块的宽和高。
Figure BDA0001804221070000404
采用仿射变换运动模型进行预测的编码块称为仿射编码块。
通常的,可以使用仿射变换先进运动矢量预测(Advanced Motion VectorPrediction,AMVP)模式或者仿射变换融合(Merge)模式,获得仿射编码块的控制点的运动信息。控制点的运动信息可以通过基于运动模型或者基于控制点组合的方法得到:
基于运动模型的运动矢量预测方法:
按照一定的顺序,如A,B,C,D,E的顺序遍历当前块的周边相邻位置块,找到非平动预测块,获得该非平动预测块的控制点的运动矢量,进而通过其运动模型,推导出当前块的控制点的运动矢量(用于merge模式)或者控制点的运动矢量预测值(用于AMVP模式)。
下面以A为例描述推导过程,其他情况以此类推:
如图23所示,若A所在的编码块为4参数仿射编码块,则获得该仿射编码块左上顶点(x4,y4)的运动矢量(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5);利用公式(16)计算获得当前编码块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(17)计算获得当前编码块右上顶点(x1,y1)的运动矢量(vx1,vy1)。
Figure BDA0001804221070000405
Figure BDA0001804221070000411
编码块左上顶点(x4,y4)的运动矢量(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5)、左下顶点(x6,y6)的运动矢量(vx6,vy6);利用公式(18)计算获得当前编码块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(19)计算获得当前编码块右上顶点(x1,y1)的运动矢量(vx1,vy1),利用公式(20)计算获得当前编码块左下顶点(x2,vy2)的运动矢量(vx2,vy2)。
Figure BDA0001804221070000412
Figure BDA0001804221070000413
Figure BDA0001804221070000414
需要说明的是,其他运动模型、候选位置、查找顺序也可以适用于本发明,再次不做赘述。
需要说明的是,采用其他控制点来表示相邻和当前编码块的运动模型的方法也可以适用于本发明,再次不做赘述。
基于控制点组合的运动矢量预测方法1:
利用当前编码块周边邻近的已编码块的运动信息确定当前编码块左上顶点和右上顶点的运动矢量。如图24所示,首先,利用左上顶点相邻已编码块A,B和C块的运动矢量,作为当前编码块左上顶点的运动矢量的候选运动矢量;利用右上顶点相邻已编码块D和E块的运动矢量,作为当前编码块右上顶点的运动矢量的候选运动矢量。将上述左上顶点和右上顶点的候选运动矢量进行组合,构成两个控制点的候选运动矢量二元组队列:
{(v0A,v1D),(v0A,v1E),(v0B,v1D),(v0B,v1E),(v0C,v1D),(v0C,v1E)}
其中v0表示左上顶点候选运动矢量,v1表示右上顶点候选运动矢量,并对其在队列中的位置进行索引,索引值依次为0,1,2,3,4,5。
基于控制点组合的运动矢量预测方法2:
首先,推导得到各个控制点的运动信息。如图25所示,CPk(k=1,2,3,4)表示第k个控制点。A0,A1,A2,B0,B1,B2和B3为当前块的空域相邻位置,用于预测CPk(k=1,2,3);Tr为当前块的时域相邻位置,用于预测CP4。
CP1,CP2,CP3和CP4的坐标分别为(0,0),(W,0),(H,0)和(W,H),其中W和H为当前块的宽度和高度。
对于每个控制点,其运动信息按照以下顺序获得:
-对于CP1,检查顺序为B2->A2->B3,如果B2可得,则采用B2的运动信息。否则,检测A2,B3。若三个位置的运动信息均不可得,则无法获得CP1的运动信息。
-对于CP2,检查顺序为B0->B1;
-对于CP3,检测顺序为A0->A1;
-对于CP4,采用Tr的运动信息。
此处可得表示包括X位置的块已经编码并且为帧间编码模式;否则,X位置不可得。
需要说明的是,其他获得控制点运动信息的方法也可适用于本发明,再次不做赘述。
接着,将控制点的运动信息进行组合,得到非平动的运动信息。
将两个控制点的运动信息进行组合,用来构建4参数仿射变换模型。两个控制点的组合方式为{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4}。例如,采用CP1和CP2控制点构建的4参数仿射变换模型,记做Affine(CP1,CP2)。
将三个控制点的运动信息进行组合,用来构建6参数仿射变换模型。三个控制点的组合方式为{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}。例如,采用CP1、CP2和CP3控制点构建的6参数仿射变换模型,记做Affine(CP1,CP2,CP3)。
将四个控制点的运动信息进行组合,用来构建8参数双线性模型。采用CP1、CP2、CP3和CP4控制点构建的8参数双线性模型,记做Bilinear(CP1,CP2,CP3,CP4)。
按照预置的顺序遍历这些模型,若组合模型对应的控制点运动信息不可得,则认为该模型不可得;否则,确定该模型的参考帧索引,并将控制点的运动矢量进行缩放,若缩放后的所有控制点的运动信息一致,则该模型不合法。否则,加入候选运动信息列表中。
Figure BDA0001804221070000421
缩放的方法如公式(21)所示。CurPoc表示当前帧的POC号,DesPoc表示当前块的参考帧的POC号,SrcPoc表示控制点的参考帧的POC号,MVs表示缩放得到的MV。
需要说明的是,亦可将不同控制点的组合转换为同一位置的控制点。
例如将{CP1,CP4},{CP2,CP3},{CP2,CP4},{CP1,CP3},{CP3,CP4}组合得到的4参数仿射变换模型转换为控制点{CP1,CP2}或{CP1,CP2,CP3}来表示。转换方法为将控制点的运动矢量及其坐标信息,代入公式(13),得到模型参数,再将{CP1,CP2}的坐标信息代入,得到其运动矢量。
例如将{CP1,CP2,CP4},{CP2,CP3,CP4},{CP1,CP3,CP4}组合的6参数仿射变换模型转换为控制点{CP1,CP2,CP3}来表示。转换方法为将控制点的运动矢量及其坐标信息,代入公式(15),得到模型参数,再将{CP1,CP2,CP3}的坐标信息代入,得到其运动矢量。
仿射变换先进运动矢量预测模式(AMVP)编码:
(1)构建候选运动矢量二元组或三元组列表
利用基于运动模型的运动矢量预测方法和/或基于控制点组合的运动矢量预测方法,构建候选运动矢量二元组(当前编码块为4参数仿射模型)或三元组(当前编码块为6参数仿射模型)。
可选的,将候选运动矢量二元组/三元组列表根据特定的规则进行剪枝和排序,并可将其截断或填充至特定的个数。
(2)确定最佳候选运动矢量二元组/三元组
在编码器,利用每个候选运动矢量二元组/三元组,通过公式(14)/(16)获得当前编码块中每个子运动补偿单元(像素点或特定方法划分的大小为N1×N2的像素块)的运动矢量,进而得到每个子运动补偿单元的运动矢量所指向的参考帧中位置的像素值,作为其预测值,进行仿射变换运动补偿。计算当前编码块中每个像素点的原始值和预测值之间差值的平均值,选择差值的平均值最小的对应候选运动矢量二元组/三元组中的运动矢量作为当前编码块两个/三个控制点的运动矢量预测值。将表示该二元组/三元组在候选运动矢量二元组/三元组队列中位置的索引号编码入码流发送给解码器。
在解码器,解析索引号,根据索引号从候选运动矢量二元组/三元组列表中确定两个/三个控制点的运动矢量预测值(control point motion vector predictor,CPMVP)。
(3)确定控制点的运动矢量
在编码器,以两个/三个控制点的运动矢量预测值作为搜索起始点在一定搜索范围内进行运动搜索获得两个/三个控制点的运动矢量。并将两个/三个控制点的运动矢量与运动矢量预测值之间的差值传递到解码器。
在解码器,解析两个/三个控制点的运动矢量差值,与运动矢量预测值相加,得到控制点的运动矢量。
仿射变换融合模式:
利用基于运动模型的运动矢量预测方法和/或基于控制点组合的运动矢量预测方法,构建候选运动矢量二元组/三元组列表。
在编码器,利用每个候选运动矢量二元组/三元组,通过公式(14)/(16)获得当前编码块中每个子运动补偿单元(像素点或特定方法划分的大小为N1×N2的像素块)的运动矢量,进而得到每个子运动补偿单元的运动矢量所指向的参考帧中位置的像素值,作为其预测值,进行仿射变换运动补偿。计算当前编码块中每个像素点的原始值和预测值之间差值的平均值,选择差值的平均值最小的对应候选运动矢量二元组/三元组中的运动矢量作为当前编码块两个/三个控制点的运动矢量。将表示该二元组/三元组在候选运动矢量二元组/三元组队列中位置的索引号编码入码流发送给解码器。
在解码器,解析索引号,根据索引号从候选运动矢量二元组/三元组列表中确定两个/三个控制点的运动矢量(control point motion vector,CPMV)。
下面将介绍本发明实施例中的一种基于仿射变换的编解码方法。常用的视频传输系统通常由采集、编码、发送、接收、解码、和显示这些部分组成。采集模块包含摄像头或摄像头组以及前处理,将光信号转化为数字化的视频序列。接着视频序列经编码器编码,转化为码流。然后码流由发送模块经网络发送至接收模块,经接收模块转化为码流后经解码器解码重建为视频序列。最后重建视频序列经渲染等后处理送至显示设备显示。本发明的方法主要应用于编码和/或解码中。
步骤一:获得当前仿射编码块的控制点的运动信息
当前仿射编码块的控制点的运动信息的获得方法可参照上文中的方法。
步骤二:确定运动补偿单元的尺寸
当前仿射编码块的运动补偿单元的尺寸MxN为编解码共同约定的采用相同规则确定的尺寸,可以固定地设置为4x4、8x8等,也可以根据控制点运动矢量差异、运动矢量精度和控制点之间的距离进行确定。
需要说明的是,仿射编码块运动补偿单元的尺寸可以通过其他方法确定,在本发明中不再赘述。
步骤三:根据控制点的运动信息,采用仿射变换模型,确定当前仿射编码块中每一个运动补偿单元的运动信息
对于当前仿射编码块的每一个运动补偿单元,可采用运动补偿单元中预设位置像素点的运动信息来表示该运动补偿单元内所有像素点的运动信息。假设运动补偿单元的尺寸为MxN,则预设位置像素点可以为运动补偿单元中心点(M/2,N/2)、左上顶点(0,0),右上顶点(M-1,0),或其他位置的像素点。以下以运动补偿单元中心点为例说明。
运动补偿单元中心点相对于当前仿射编码块左上顶点像素的坐标使用公式(22)计算得到,其中i为水平方向第i个运动补偿单元(从左到右),j为竖直方向第j个运动补偿单元(从上到下),(x((i,j)),y((i,j)))表示第(i,j)个运动补偿单元中心点相对于当前仿射编码块左上顶点像素的坐标。再将(x((i,j)),y((i,j)))代入公式(23),获得每个运动补偿单元中心点的运动信息,作为该运动补偿单元内所有像素点的运动信息(vx(i,j),vy(i,j))。
Figure BDA0001804221070000442
可选的,直接通过公式(23)计算得到的运动矢量精度高于控制点运动矢量的精度,可以进一步将其量化为与控制点运动矢量相同的精度。
步骤四:根据运动补偿单元的运动信息,进行运动补偿预测,得到仿射编码块的预测块对于当前仿射编码块的每一个运动补偿单元,采用步骤三得到的运动信息,进行运动补偿预测,得到每个运动补偿单元的预测值。
步骤五:确定运动信息存储单元的尺寸,根据控制点的运动信息,采用仿射变换模型,确定当前仿射编码块中每一个运动信息存储单元的运动信息,并存储起来。
通常运动信息存储单元的尺寸为4x4。存储单元的运动信息的计算方法与运动补偿单元相似。特别地,需要将控制点的运动信息存储到其对应的存储单元。对于控制点像素所在的存储单元,直接将该存储单元的运动信息设置为控制点的运动信息。若控制点不位于当前仿射编码块内,则将距离该控制点最近的存储单元的运动信息设置为控制点的运动信息。
需要说明的是,以上步骤的顺序可以按照实际的逻辑顺序调换,本发明不限于此。
上述方法中,存储单元中可能存储控制点的运动信息,也可能存储存储单元本身的运动信息,例如存储单元中心点的运动信息或者存储单元所在的运动补偿单元的运动信息,这就使得存储单元存储的运动信息不统一,并且导致未来运动补偿时所基于的运动信息不统一,基于上述方法,本发明实施例提供了另一种基于仿射变换的编解码方法。
步骤一:获得当前仿射编码块的控制点的运动信息(Control point motionvector,CPMV)
当前仿射编码块的控制点的运动信息的获得方法可参照上文中的方法。
步骤二:确定运动补偿单元的尺寸(可以为可选步骤)
当前仿射编码块的运动补偿单元的尺寸MxN为编解码共同约定的采用相同规则确定的尺寸,可以固定地设置为4x4、8x8等,也可以根据控制点运动矢量差异、运动矢量精度和控制点之间的距离进行确定。
需要说明的是,仿射编码块运动补偿单元的尺寸可以通过其他方法确定,在本发明中不再赘述。
步骤三:根据控制点的运动信息,采用仿射变换模型,确定当前仿射编码块中每一个运动补偿单元的运动信息
对于当前仿射编码块的每一个运动补偿单元,可采用运动补偿单元中预设位置像素点的运动信息来表示该运动补偿单元内所有像素点的运动信息。假设运动补偿单元的尺寸为MxN,则预设位置像素点可以为运动补偿单元中心点(M/2,N/2)、左上顶点(0,0),右上顶点(M-1,0),或其他位置的像素点。以下以运动补偿单元中心点为例说明。
运动补偿单元中心点相对于当前仿射编码块左上顶点像素的坐标使用公式(24)计算得到,其中i为水平方向第i个运动补偿单元(从左到右),j为竖直方向第j个运动补偿单元(从上到下),(x((i,j)),y((i,j)))表示第(i,j)个运动补偿单元中心点相对于当前仿射编码块左上顶点像素的坐标。再将(x((i,j)),y((i,j)))代入公式(25),获得每个运动补偿单元中心点的运动信息,作为该运动补偿单元内所有像素点的运动信息(vx((i,j)),vy((i,j)))。
Figure BDA0001804221070000451
可选的,直接通过公式14)计算得到的运动矢量精度高于控制点运动矢量的精度,可以进一步将其量化为与控制点运动矢量相同的精度。
步骤四:根据运动补偿单元的运动信息,进行运动补偿预测,得到仿射编码块的预测块
对于当前仿射编码块的每一个运动补偿单元,采用步骤三得到的运动信息,进行运动补偿预测,得到每个运动补偿单元的预测值。
步骤五:存储运动补偿单元的运动信息和控制点的运动信息
将步骤三得到的运动补偿单元的运动信息进行存储,同时也将步骤一得到的控制点的运动信息进行存储。需要说明的是,运动补偿单元的运动信息通常为运动补偿单元中心点的运动信息,而控制点的运动信息通常为仿射编码块的顶点的运动信息,仿射编码块的顶点可以为左上顶点,右上顶点,左下顶点或者右下顶点。
在后续解码流程中,如去块效应滤波器、重叠块运动补偿、后续编码块的运动信息的推导等,都需要利用当前仿射编码块的运动信息。
通常运动信息存储单元的尺寸为4x4。则对于运动补偿单元内的每一个4x4存储单元,将其运动信息设置为该运动补偿单元的运动信息。具体来说,对于一个8x8的运动补偿单元,在存储时,运动补偿单元对应的4个存储单元存储的运动信息均为该运动补偿单元的运动信息。
在后续编码流程中,去块效应滤波器、重叠块运动补偿、后续非仿射编码块的运动信息的预测、仿射编码块的基于控制点组合的运动信息的预测、时域运动信息的预测时,采用存储的每个运动补偿单元的运动信息;后续仿射编码块的基于基于模型的运动信息的预测,采用存储的控制点的运动信息。
需要说明的是,若存储单元的运动矢量精度与运动补偿单元的运动矢量精度不同,需要将运动补偿单元的运动矢量量化到存储单元的运动矢量精度进行存储。
需要说明的是,步骤四和步骤五的执行顺序可以调换,即将计算得到的运动补偿单元运动信息存储后,再根据存储的运动信息进行运动补偿。
上述方法,使得对于包括控制点的存储单元,其存储的包括存储单元自身的运动信息,如存储单元中心点的运动信息,或者是存储单元所在的运动补偿单元的运动信息,而不是仅存储控制点的运动信息,从而为后续基于该存储单元进行的去块效应滤波器、重叠块运动补偿、后续非仿射编码块的运动信息的预测、仿射编码块的基于控制点组合的运动信息的预测、时域运动信息的预测等操作提供更优的运动信息。
并且,本方法相比于前一个方法,直接利用步骤三中的得到的运动补偿单元的运动信息进行存储,避免了运动补偿单元和存储单元的运动信息的分别计算。
本发明实施例还提供了另一种基于仿射变换的编解码方法,该方法与上一个方法步骤一不同,其他步骤相同。
步骤一:获得当前仿射编码块的控制点的运动信息(Control point motionvector,CPMV)
若当前仿射编码块位于CTU的上边界时,在进行基于运动模型的运动矢量预测时,不采用其上边位置的相邻块进行预测。
具体的,若当前仿射编码块位于CTU的上边界时,不采用其上边位置的相邻块的运动信息进行预测,如不采用图23中的B、C和E。按照一定的顺序,遍历当前块的周边相邻位置块,找到非平动预测块,获得该非平动预测块的控制点的运动矢量,进而通过其运动模型,推导出当前块的控制点的运动矢量(用于merge模式)或者控制点的运动矢量预测值(用于AMVP模式)。
下面以A为例描述推导过程,其他情况以此类推:
如图23所示,若A所在的编码块为4参数仿射编码块,则获得该仿射编码块左上顶点(x4,y4)的运动矢量(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5);利用公式(26)计算获得当前编码块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(27)计算获得当前编码块右上顶点(x1,y1)的运动矢量(vx1,vy1)。
Figure BDA0001804221070000461
Figure BDA0001804221070000462
若A所在的编码块为6参数仿射编码块,则获得该仿射编码块左上顶点(x4,y4)的运动矢量(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5)、左下顶点(x6,y6)的运动矢量(vx6,vy6);利用公式(28)计算获得当前编码块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(29)计算获得当前编码块右上顶点(x1,y1)的运动矢量(vx1,vy1)、利用公式(30)计算获得当前编码块左下顶点(x2,vy2)的运动矢量(vx2,vy2)。
Figure BDA0001804221070000464
Figure BDA0001804221070000465
需要说明的是,其他运动模型、候选位置、查找顺序也可以适用于本发明,再次不做赘述。
需要说明的是,采用其他控制点来表示相邻和当前编码块的运动模型的方法也可以适用于本发明,再次不做赘述。
该方法限制当前CU跨CTU上边界读取控制点的运动信息,减少存储运动信息的line buffer。
本发明实施例还提供了另一种基于仿射变换的编解码方法,该方法与上一个方法步骤一不同,其他步骤相同。
步骤一:获得当前仿射编码块的控制点的运动信息(Control point motionvector,CPMV)
若当前仿射编码块位于CTU的左边界时,在进行基于运动模型的运动矢量预测时,不采用其左边位置的相邻块进行预测。
若当前仿射编码块位于CTU的左边界,不采用其左边位置的相邻块的运动信息进行预测,如不采用图23中的A和D。按照一定的顺序,遍历当前块的周边相邻位置块,找到非平动预测块,获得该非平动预测块的控制点的运动矢量,进而通过其运动模型,推导出当前块的控制点的运动矢量(用于merge模式)或者控制点的运动矢量预测值(用于AMVP模式)。
该方法同样限制当前CU跨CTU左边界读取控制点的运动信息,减少存储运动信息的line buffer。
本发明实施例还提供了另一种基于仿射变换的编解码方法,该方法与上一个方法步骤一不同,其他步骤相同。
步骤一:获得当前仿射编码块的控制点的运动信息(Control point motionvector,CPMV)
若当前仿射编码块位于CTU的左边界和上边界时,不采用基于运动模型的运动矢量预测方法,可以采用基于控制点组合的运动矢量预测方法进行控制点运动信息的获得。
图26为本申请实施例的编码设备或解码设备(简称为译码设备800)的一种实现方式的示意性框图。其中,译码设备800可以包括处理器810、存储器830和总线系统850。其中,处理器和存储器通过总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令。编码设备的存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行本申请描述的各种视频编码或解码方法,尤其是在各种新的帧间预测模式下的视频编码或解码方法,以及在各种新的帧间预测模式下预测运动信息的方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器810可以是中央处理单元(Central ProcessingUnit,简称为“CPU”),该处理器810还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器830可以包括只读存储器(ROM)设备或者随机存取存储器(RAM)设备。任何其他适宜类型的存储设备也可以用作存储器830。存储器830可以包括由处理器810使用总线850访问的代码和数据831。存储器830可以进一步包括操作系统833和应用程序835,该应用程序835包括允许处理器810执行本申请描述的视频编码或解码方法(尤其是本申请描述的帧间预测方法或运动信息预测方法)的至少一个程序。例如,应用程序835可以包括应用1至N,其进一步包括执行在本申请描述的视频编码或解码方法的视频编码或解码应用(简称视频译码应用)。
该总线系统850除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统850。
可选的,译码设备800还可以包括一个或多个输出设备,诸如显示器870。在一个示例中,显示器870可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器870可以经由总线850连接到处理器810。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (51)

1.一种图像预测方法,其特征在于,包括:
根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定所述当前图像块的控制点的运动信息;
根据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息;
根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块;
其中,所述当前图像块的相邻图像块满足以下条件中的至少一项:
当所述当前图像块的上边界与所述当前图像块所在的编码树单元CTU的上边界重合时,所述当前图像块的相邻图像块为位于所述当前图像块的左方或者左下方的图像块;
当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合时,所述当前图像块的相邻图像块为位于所述当前图像块的上方或者右上方的图像块。
2.根据权利要求1所述的图像预测方法,其特征在于,所述运动信息包括运动矢量,所述根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定所述当前图像块的控制点的运动信息,包括:
采用下述公式计算所述当前图像块的控制点的运动矢量:
Figure FDA0001804221060000011
其中,(vx4,vy4)为位于所述相邻图像块的左上顶点的控制点(x4,y4)的运动矢量,(vx5,vy5)为位于所述相邻图像块的右上顶点的控制点(x5,y5)的运动矢量,(vx,vy)为所述当前图像块的控制点(x,y)的运动矢量。
3.根据权利要求1或2所述的图像预测方法,其特征在于,所述运动信息包括运动矢量,所述根据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息,包括:
采用下述公式计算所述当前图像块的子块的运动矢量:
Figure FDA0001804221060000012
其中,(vx0,vy0)为位于所述当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于所述当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为所述子块的运动矢量。
4.根据权利要求1至3任一项所述的图像预测方法,其特征在于,所述根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块,包括:
根据所述当前图像块的子块的运动信息中的运动矢量和所述当前图像块的子块的位置信息,在所述当前图像块的参考帧中,确定所述当前图像块的子块的运动信息中的运动矢量指向的参考块,并将所述参考块作为所述当前图像块的子块的预测块。
5.根据权利要求1至4任一项所述的图像预测方法,其特征在于,
所述当前图像块的相邻图像块是所述当前图像块的空间相邻块。
6.一种图像预测方法,其特征在于,包括:
确定待预测的当前图像块的上边界是否与所述当前图像块所在的编码树单元CTU的上边界重合,以及所述当前图像块的左边界是否与所述当前图像块所在的CTU的左边界重合;
当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合,并且所述当前图像块的上边界与所述当前图像块所在的CTU的上边界重合时,根据所述当前图像块的控制点的相邻子块的运动信息,确定所述当前图像块的控制点的运动信息,所述相邻子块为编码单元CU的子块;
根据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息;
根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块。
7.根据权利要求6所述的图像预测方法,其特征在于,所述根据所述当前图像块的控制点的相邻子块的运动信息,确定所述当前图像块的控制点的运动信息,包括:
将所述当前图像块的控制点的相邻子块的运动信息确定为所述当前图像块的控制点的运动信息;或者,
按照预设顺序确定所述当前图像块的控制点的相邻子块是否可得;
将所述相邻子块中第一个可得的相邻子块的运动信息,确定为所述当前图像块的控制点的运动信息。
8.根据权利要求6或7所述的图像预测方法,其特征在于,所述运动信息包括运动矢量,所述根据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息,包括:
采用下述公式计算所述当前图像块的子块中目标像素点的运动矢量:
Figure FDA0001804221060000021
其中,(vx0,vy0)为位于所述当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于所述当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为所述目标像素点(x,y)的运动矢量。
9.根据权利要求6至8任一项所述的图像预测方法,其特征在于,所述根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块,包括:
根据所述当前图像块的子块的运动信息中的运动矢量和所述当前图像块的子块的位置信息,在所述当前图像块的参考帧中,确定所述当前图像块的子块的运动信息中的运动矢量指向的参考块,并将所述参考块作为所述当前图像块的子块的预测块。
10.根据权利要求6至9任一项所述的图像预测方法,其特征在于,所述方法还包括:
当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合,或者所述当前图像块的上边界与所述当前图像块所在的CTU的上边界重合时,根据所述当前图像块的相邻图像块的控制点的运动信息,确定所述当前图像块的控制点的运动信息;
根据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息;
根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块;
其中,所述当前图像块的相邻图像块满足以下条件中的至少一项:
当所述当前图像块的上边界与所述当前图像块所在的CTU的上边界重合时,所述当前图像块的相邻图像块为位于所述当前图像块的左方或者左下方的图像块;
当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合时,所述当前图像块的相邻图像块为位于所述当前图像块的上方或者右上方的图像块。
11.一种运动信息的预测方法,其特征在于,包括:
获取待预测的当前图像块的目标控制点的运动信息;
根据所述目标控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块中目标像素点的运动信息,并将所述目标像素点的运动信息作为所述子块的运动信息,所述目标像素点是与所述目标控制点不同的像素点;
将所述子块的运动信息用于所述子块的相邻图像块的运动信息的预测,以确定所述子块的相邻图像块的运动信息,所述子块的相邻图像块与所述当前图像块相邻。
12.根据权利要求11所述的运动信息的预测方法,其特征在于,所述方法还包括:
根据所述子块的相邻图像块的运动信息,确定所述子块的相邻图像块的预测块。
13.根据权利要求11所述的运动信息的预测方法,其特征在于,所述方法还包括:
根据所述子块的运动信息,对所述子块进行去块效应滤波;或者,
根据所述子块的运动信息,对所述子块进行重叠块运动补偿。
14.根据权利要求11所述的运动信息的预测方法,其特征在于,所述方法还包括:
将所述目标控制点的运动信息用于所述当前图像块的相邻图像块的控制点的运动信息预测,以确定所述相邻图像块的控制点的运动信息。
15.根据权利要求11至14任一项所述的运动信息的预测方法,其特征在于,
所述当前图像块的子块包含所述当前图像块的控制点。
16.根据权利要求11至15任一项所述的运动信息的预测方法,其特征在于,所述方法还包括:
设置所述子块中每个像素点的运动信息为所述子块的运动信息。
17.根据权利要求11至16任一项所述的运动信息的预测方法,其特征在于,所述方法还包括:
保存所述子块中的像素点的运动信息。
18.根据权利要求11至16任一项所述的运动信息的预测方法,其特征在于,所述方法还包括:
保存所述子块的运动信息和所述目标控制点的运动信息中至少一项。
19.根据权利要求11至18任一项所述的运动信息的预测方法,其特征在于,
所述目标像素点为所述子块的中心像素点。
20.一种图像预测装置,其特征在于,包括第一确定模块、第二确定模块以及第三确定模块;
所述第一确定模块,用于根据待预测的当前图像块的相邻图像块的控制点的运动信息,确定所述当前图像块的控制点的运动信息;
所述第二确定模块,用于据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息;
所述第三确定模块,用于根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块;
其中,所述当前图像块的相邻图像块满足以下条件中的至少一项:
当所述当前图像块的上边界与所述当前图像块所在的编码树单元CTU的上边界重合时,所述当前图像块的相邻图像块为位于所述当前图像块的左方或者左下方的图像块;
当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合时,所述当前图像块的相邻图像块为位于所述当前图像块的上方或者右上方的图像块。
21.根据权利要求20所述的图像预测装置,其特征在于,所述运动信息包括运动矢量;
所述第一确定模块,具体用于采用下述公式计算所述当前图像块的控制点的运动矢量:
Figure FDA0001804221060000041
其中,(vx4,vy4)为位于所述相邻图像块的左上顶点的控制点(x4,y4)的运动矢量,(vx5,vy5)为位于所述相邻图像块的右上顶点的控制点(x5,y5)的运动矢量,(vx,vy)为所述当前图像块的控制点(x,y)的运动矢量。
22.根据权利要求20或21所述的图像预测装置,其特征在于,所述运动信息包括运动矢量;
所述第二确定模块,具体用于采用下述公式计算所述当前图像块的子块的运动矢量:
Figure FDA0001804221060000042
其中,(vx0,vy0)为位于所述当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于所述当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为所述子块的运动矢量。
23.根据权利要求20至22任一项所述的图像预测装置,其特征在于,
所述第三确定模块,具体用于根据所述当前图像块的子块的运动信息中的运动矢量和所述当前图像块的子块的位置信息,在所述当前图像块的参考帧中,确定所述当前图像块的子块的运动信息中的运动矢量指向的参考块,并将所述参考块作为所述当前图像块的子块的预测块。
24.根据权利要求20至23任一项所述的图像预测装置,其特征在于,
所述当前图像块的相邻图像块是所述当前图像块的空间相邻块。
25.一种图像预测装置,其特征在于,包括第一确定模块、第二确定模块、第三确定模块以及第四确定模块;
所述第一确定模块,用于确定待预测的当前图像块的上边界是否与所述当前图像块所在的编码树单元CTU的上边界重合,以及所述当前图像块的左边界是否与所述当前图像块所在的CTU的左边界重合;
所述第二确定模块,用于当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合,并且所述当前图像块的上边界与所述当前图像块所在的CTU的上边界重合时,根据所述当前图像块的控制点的相邻子块的运动信息,确定所述当前图像块的控制点的运动信息,所述相邻子块为编码单元CU的子块;
所述第三确定模块,用于根据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息;
所述第四确定模块,用于根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块。
26.根据权利要求25所述的图像预测装置,其特征在于,
所述第二确定模块,具体用于将所述当前图像块的控制点的相邻子块的运动信息确定为所述当前图像块的控制点的运动信息;或者,
所述第二确定模块,具体用于按照预设顺序确定所述当前图像块的控制点的相邻子块是否可得;并且将所述相邻子块中第一个可得的相邻子块的运动信息,确定为所述当前图像块的控制点的运动信息。
27.根据权利要求25或26所述的图像预测装置,其特征在于,所述运动信息包括运动矢量;
所述第三确定模块,具体用于采用下述公式计算所述当前图像块的子块中目标像素点的运动矢量:
Figure FDA0001804221060000051
其中,(vx0,vy0)为位于所述当前图像块的左上顶点的控制点(x0,y0)的运动矢量,(vx1,vy1)为位于所述当前图像块的右上顶点的控制点(x1,y1)的运动矢量,(vx,vy)为所述目标像素点(x,y)的运动矢量。
28.根据权利要求25至27任一项所述的图像预测装置,其特征在于,
所述第四确定模块,具体用于根据所述当前图像块的子块的运动信息中的运动矢量和所述当前图像块的子块的位置信息,在所述当前图像块的参考帧中,确定所述当前图像块的子块的运动信息中的运动矢量指向的参考块,并将所述参考块作为所述当前图像块的子块的预测块。
29.根据权利要求25至28任一项所述的图像预测装置,其特征在于,
所述第二确定模块,还用于当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合,或者所述当前图像块的上边界与所述当前图像块所在的CTU的上边界重合时,根据所述当前图像块的相邻图像块的控制点的运动信息,确定所述当前图像块的控制点的运动信息;
所述第三确定模块,还用于根据所述当前图像块的控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块的运动信息;
所述第四确定模块,还用于根据所述当前图像块的子块的运动信息,得到所述当前图像块的子块的预测块;
其中,所述当前图像块的相邻图像块满足以下条件中的至少一项:
当所述当前图像块的上边界与所述当前图像块所在的CTU的上边界重合时,所述当前图像块的相邻图像块包括为所述当前图像块的左方或者左下方的图像块;
当所述当前图像块的左边界与所述当前图像块所在的CTU的左边界重合时,所述当前图像块的相邻图像块为位于所述当前图像块的上方或者右上方的图像块。
30.一种运动信息的预测装置,其特征在于,包括获取模块和确定模块;
所述获取模块,用于获取待预测的当前图像块的目标控制点的运动信息;
所述确定模块,用于根据所述目标控制点的运动信息,采用仿射变换模型,确定所述当前图像块的子块中目标像素点的运动信息,并将所述目标像素点的运动信息作为所述子块的运动信息,所述目标像素点是与所述目标控制点不同的像素点;以及将所述子块的运动信息用于所述子块的相邻图像块的运动信息的预测,以确定所述子块的相邻图像块的运动信息,所述子块的相邻图像块与所述当前图像块相邻。
31.根据权利要求30所述的运动信息的预测装置,其特征在于,
所述确定模块,还用于根据所述子块的相邻图像块的运动信息,确定所述子块的相邻图像块的预测块。
32.根据权利要求30所述的运动信息的预测装置,其特征在于,还包括处理模块;
所述处理模块,用于根据所述子块的运动信息,对所述子块进行去块效应滤波;或者,根据所述子块的运动信息,对所述子块进行重叠块运动补偿。
33.根据权利要求30所述的运动信息的预测装置,其特征在于,
所述确定模块,还用于将所述目标控制点的运动信息用于所述当前图像块的相邻图像块的控制点的运动信息预测,以确定所述相邻图像块的控制点的运动信息。
34.根据权利要求30至33任一项所述的运动信息的预测装置,其特征在于,
所述当前图像块的子块包含所述当前图像块的控制点。
35.根据权利要求30至34任一项所述的运动信息的预测装置,其特征在于,
所述确定模块,还用于设置所述子块中每个像素点的运动信息为所述子块的运动信息。
36.根据权利要求30至35所述的运动信息的预测装置,其特征在于,所述运动信息的预测装置还包括存储模块;
所述存储模块,用于保存所述子块中的像素点的运动信息。
37.根据权利要求30至35所述的运动信息的预测装置,其特征在于,所述运动信息的预测装置还包括存储模块;
所述存储模块,用于保存所述子块的运动信息和所述目标控制点的运动信息中至少一项。
38.根据权利要求30至37所述的运动信息的预测装置,其特征在于,
所述目标像素点为所述子块的中心像素点。
39.一种图像预测装置,其特征在于,包括处理器和与所述处理器耦合连接的存储器;
所述存储器用于存储计算机指令,当所述图像预测装置运行时,所述处理器执行所述存储器存储的所述计算机指令,以使得所述图像预测装置执行如权利要求1至10任意一项所述的图像预测方法。
40.一种运动信息的预测装置,其特征在于,包括处理器和与所述处理器耦合连接的存储器;
所述存储器用于存储计算机指令,当所述运动信息的预测装置运行时,所述处理器执行所述存储器存储的所述计算机指令,以使得所述运动信息的预测装置执行如权利要求11至19任意一项所述的运动信息的预测方法。
41.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在图像预测装置上运行时,使得所述图像预测装置执行如权利要求1至10任意一项所述的图像预测方法。
42.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在运动信息的预测装置上运行时,使得所述运动信息的预测装置执行如权利要求11至19任意一项所述的运动信息的预测方法。
43.一种基于仿射变换的编解码方法,其特征在于,所述方法包括:
获得当前仿射编码块的控制点的运动信息;
根据所述当前仿射编码块的控制点的运动信息,采用仿射变换模型,确定所述当前仿射编码块中运动补偿单元的运动信息;
根据所述运动补偿单元的运动信息,对所述运动补偿单元进行运动补偿预测,从而得到所述仿射编码块的预测块。
44.根据权利要求43所述的方法,其特征在于,所述获取当前仿射编码块的控制点的运动信息包括:
根据所述当前仿射编码块的相邻仿射编码块块的控制点的运动信息,确定所述当前仿射编码块的控制点的运动信息。
45.根据权利要求44所述的方法,其特征在于,所述仿射编码块为空间相邻块。
46.根据权利要求44或45所述的方法,其特征在于,在所述当前仿射编码块的上边界与所述当前仿射编码块所在的编码树单元(CTU)的上边界重合时,所述相邻仿射编码块位于所述当前仿射编码块的左边或者左下方,所述相邻仿射编码块不位于所述当前仿射编码块的上边,左上方或者右上方。
47.根据权利要求44或45所述的方法,其特征在于,在所述当前仿射编码块的左边界与所述当前仿射编码块所在的编码树单元(CTU)的左边界重合时,所述相邻仿射编码块不位于所述当前仿射编码块的左上方、左边或者左下方,所述相邻仿射编码块位于所述当前仿射编码块的上边或者右上方。
48.根据权利要求44或45所述的方法,其特征在于,在所述当前仿射编码块的左边界与所述当前仿射编码块所在的编码树单元(CTU)的左边界重合时,所述相邻仿射编码块不位于所述当前仿射编码块的左边或者左下方,所述相邻仿射编码块位于所述当前仿射编码块的左上方、上边或者右上方。
49.根据权利要求43至47任一项所述的方法,其特征在于,在所述当前仿射编码块的左边界和上边界与所述当前仿射编码块所在的编码树单元(CTU)的左边界和上边界分别重合时,所述获取当前仿射编码块的控制点的运动信息包括:基于所述当前仿射编码块的控制点的相邻已编码块的运动信息获得所述当前仿射编码块的控制点的运动信息。
50.根据权利要求43至48任一项所述的方法,其特征在于,所述方法还包括:
根据所述当前仿射编码块的控制点所在的图像块的运动信息,执行以下操作中至少一种:去块效应滤波器、重叠块运动补偿、非仿射编码块的运动信息的预测、仿射编码块的基于控制点组合的运动信息的预测和时域运动信息的预测;其中,所述当前仿射编码块的控制点所在的图像块的运动信息和所述当前仿射编码块的控制点的运动信息不同。
51.根据权利要求50所述的方法,其特征在于,所述当前仿射编码块的控制点所在的图像块的运动信息为所述当前仿射编码块的控制点所在的图像块所在的运动补偿单元的运动信息或者所述当前仿射编码块的控制点所在的图像块的中心像素点的运动信息。
CN201811090471.0A 2018-07-02 2018-09-18 一种图像预测方法及装置 Active CN110677645B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/082942 WO2020007093A1 (zh) 2018-07-02 2019-04-16 一种图像预测方法及装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018107098507 2018-07-02
CN201810709850 2018-07-02

Publications (2)

Publication Number Publication Date
CN110677645A true CN110677645A (zh) 2020-01-10
CN110677645B CN110677645B (zh) 2022-06-10

Family

ID=69065720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811090471.0A Active CN110677645B (zh) 2018-07-02 2018-09-18 一种图像预测方法及装置

Country Status (1)

Country Link
CN (1) CN110677645B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144720A (zh) * 2013-01-04 2015-12-09 Ge视频压缩有限责任公司 高效可伸缩编码概念
CN106559669A (zh) * 2015-09-29 2017-04-05 华为技术有限公司 图像预测的方法及装置
CN106658019A (zh) * 2015-10-31 2017-05-10 华为技术有限公司 参考帧编解码的方法与装置
WO2018061563A1 (ja) * 2016-09-27 2018-04-05 シャープ株式会社 アフィン動きベクトル導出装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
CN107925758A (zh) * 2015-08-04 2018-04-17 Lg 电子株式会社 视频编译系统中的帧间预测方法和设备
CN108141582A (zh) * 2015-08-07 2018-06-08 Lg 电子株式会社 视频编译系统中的帧间预测方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144720A (zh) * 2013-01-04 2015-12-09 Ge视频压缩有限责任公司 高效可伸缩编码概念
CN107925758A (zh) * 2015-08-04 2018-04-17 Lg 电子株式会社 视频编译系统中的帧间预测方法和设备
CN108141582A (zh) * 2015-08-07 2018-06-08 Lg 电子株式会社 视频编译系统中的帧间预测方法和装置
CN106559669A (zh) * 2015-09-29 2017-04-05 华为技术有限公司 图像预测的方法及装置
CN106658019A (zh) * 2015-10-31 2017-05-10 华为技术有限公司 参考帧编解码的方法与装置
WO2018061563A1 (ja) * 2016-09-27 2018-04-05 シャープ株式会社 アフィン動きベクトル導出装置、予測画像生成装置、動画像復号装置、および動画像符号化装置

Also Published As

Publication number Publication date
CN110677645B (zh) 2022-06-10

Similar Documents

Publication Publication Date Title
US11252436B2 (en) Video picture inter prediction method and apparatus, and codec
CN111480338B (zh) 视频数据的帧间预测方法和装置
CN110876282B (zh) 运动矢量预测方法以及相关装置
CN110868602B (zh) 视频编码器、视频解码器及相应方法
US20230239494A1 (en) Video encoder, video decoder, and corresponding method
CN112740663B (zh) 图像预测方法、装置以及相应的编码器和解码器
WO2020007093A1 (zh) 一种图像预测方法及装置
CN110677645B (zh) 一种图像预测方法及装置
KR102566569B1 (ko) 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더
CN110971899B (zh) 一种确定运动信息的方法、帧间预测方法及装置
WO2019237287A1 (zh) 视频图像的帧间预测方法、装置及编解码器
EP4367887A1 (en) Geometry partitioning for affine motion compensated prediction in video coding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant