CN114450958B - 用于减小增强插值滤波器的内存带宽的仿射运动模型限制 - Google Patents

用于减小增强插值滤波器的内存带宽的仿射运动模型限制 Download PDF

Info

Publication number
CN114450958B
CN114450958B CN202080067504.9A CN202080067504A CN114450958B CN 114450958 B CN114450958 B CN 114450958B CN 202080067504 A CN202080067504 A CN 202080067504A CN 114450958 B CN114450958 B CN 114450958B
Authority
CN
China
Prior art keywords
block
sub
motion vector
video
motion
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.)
Active
Application number
CN202080067504.9A
Other languages
English (en)
Other versions
CN114450958A (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
Publication of CN114450958A publication Critical patent/CN114450958A/zh
Application granted granted Critical
Publication of CN114450958B publication Critical patent/CN114450958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/172Methods 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 picture, frame or field
    • 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/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Abstract

一种在编码器或解码器中实现的用于对视频进行译码的方法,所述编码器或解码器包括用于进行运动补偿的增强插值滤波器(enhanced interpolation filter,EIF),所述方法包括:(i)根据仿射帧间预测确定块的控制点运动矢量(control point motion vector,CPMV),所述块是仿射块或所述仿射块的子块;(ii)对于预定义子块尺寸,根据所述CPMV的值确定具有所述预定义子块尺寸的子块的参考区域;(iii)将所述确定的参考区域与预定义阈值进行比较;iv)使用EIF进行运动补偿,包括推导所述块的基于像素的运动矢量场;其中,如果所述确定的参考区域大于所述阈值,则推导所述块的所述基于像素的运动矢量场还包括运动矢量限幅(clipping),其中,运动矢量限幅范围根据所述块的运动模型和所述块的所述尺寸确定。

Description

用于减小增强插值滤波器的内存带宽的仿射运动模型限制
相关申请案交叉申请
本专利申请要求于2019年9月30日提交的国际专利申请PCT/RU2019/000691的优先权。上述专利申请的全部公开内容通过引用的方式并入本文中。
本专利申请还要求2020年1月7日提交的美国临时申请US62/958,291的优先权。上述专利申请的全部公开内容通过引用的方式并入本文中。
技术领域
本申请(发明)的实施例大体上涉及图像处理领域,更具体地,涉及帧间预测。
背景技术
视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字TV、通过互联网和移动网络传输视频、实时会话应用(如视频聊天)、视频会议、DVD和蓝光光盘、视频内容采集和编辑系统,以及安全应用的摄像机。
即使视频较短,也需要大量的视频数据来描述,当数据要在带宽容量受限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源有限,当在存储设备中存储视频时,需要考虑该视频的尺寸。视频压缩设备通常在信源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行译码,从而减少用来表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
本申请实施例提供了独立权利要求请求保护的用于进行编码和解码的装置和方法。
上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式从从属权利要求、说明书和附图中是显而易见的。
本发明提供:
一种在编码器或解码器中实现的用于对视频进行译码的方法,所述编码器或解码器包括用于进行运动补偿的增强插值滤波器(enhanced interpolation filter,EIF),所述方法包括:
i)根据仿射帧间预测确定块的控制点运动矢量(control point motion vector,CPMV),
所述块是仿射块或所述仿射块的子块;
ii)对于预定义子块尺寸,根据所述CPMV的值确定具有所述预定义子块尺寸的子块的参考区域;
iii)将所述确定的参考区域与预定义阈值进行比较;
iv)使用EIF进行运动补偿,包括推导所述块的基于像素的运动矢量场;
其中,如果所述确定的参考区域大于所述阈值,则推导所述块的所述基于像素的运动矢量场还包括运动矢量限幅,
其中,运动矢量限幅范围根据所述块的运动模型和所述块的所述尺寸确定。
这里,应理解,子块的参考区域是指参考帧中包含根据推导的运动矢量场和插值滤波器长度对子块执行运动补偿所需的所有样本的最小矩形区域。
需要说明的是,在本发明的上下文中,术语“行(line)”与术语“行(row)”的含义相同。
为了提高帧间预测的译码效率,可以使用基于块的仿射变换预测。这里,使用增强型双线性插值滤波器(EIF)的滤波可以用于整个预测块和子块。EIF可用于简化运动补偿,因为使用双线性插值滤波器代替基于DCT的8/4抽头插值滤波器。此外,对于具有特定运动特性的视频内容,例如当旋转是主要运动时,由于使用了基于像素的运动矢量场,EIF改进了视频译码性能。
因此,在上述EIF的方法中,确定在本上下文中是否可以限制EIF的使用。在本上下文中可以限制EIF的使用的情况下,可以执行运动矢量限幅,然后可以使用限幅的运动矢量来使用EIF。因此,即使在其它限制可能妨碍EIF使用的情况下,也可使用EIF。
与在没有任何附加条件的情况下在EIF中使用MV限幅相比,当前的先验参考区域确定方法保证了仅在内存消耗超过允许的最大值时才使用限幅。所述方法有利于6参数仿射运动模型,其中,可能发生非对称垂直和水平缩放。例如,如果块垂直缩放比例为X,水平缩放比例为1/X,则块的参考区域几乎与块的区域相同,因此在这种情况下,不需要为限制内存带宽而进行的运动矢量限幅。在内存带宽小于阈值的情况下不应用附加的运动矢量限幅可提高视频译码效率,因为附加的运动矢量限幅会导致运动场质量下降,进而导致预测和重建的信号质量下降。
在如以上所描述的方法中,使用EIF进行运动补偿还可以包括:
根据所述推导的运动矢量场,使用T抽头插值滤波器获取参考图像中的插值样本,其中,T是对应于滤波器长度的插值滤波器抽头的数量,其中,T大于一;
将高通滤波器应用于所述插值样本。
在如以上所描述的方法中,使用EIF进行运动补偿还可以包括:
确定所述块的尺寸;
将所述块的所述尺寸与所述块的所述尺寸的第一阈值进行比较;
其中,当所述块的所述尺寸大于或等于所述块的所述尺寸的所述第一阈值时,对所述块执行基于块的仿射变换预测。
还应理解,在该上下文中,“基于块的”是指相同的运动矢量(motion vector,MV)用于整个子块的运动补偿(motion compensation,MC),相比之下,EIF中MC是基于像素的。
在如以上所描述的方法中,块的尺寸可以根据仿射运动模型参数确定。
在如以上所描述的方法中,仿射运动模型参数可以包括CPMV的运动矢量差以及块的宽度和高度。
在如以上所描述的方法中,仿射运动模型参数还可以包括CPMV的精度。
在如以上所描述的方法中,预定义阈值可以根据预定义子块尺寸和对应于参考图像中的子块的参考区域与子块的区域的预定义比率计算。
在如以上所描述的方法中,对应于参考图像中的子块的参考区域与子块的区域的预定义比率可以对应于EIF的内存带宽。
在如以上所描述的方法中,预定义阈值可以是块的预定义子块尺寸的最大允许内存访问消耗。
因此,换句话说,预定义阈值可以根据每个样本的最大允许内存访问消耗和预定义子块尺寸来确定。
在如以上所描述的方法中,根据CPMV的值确定具有预定义子块尺寸的子块的参考区域可以包括:
根据所述高通滤波器的长度,通过从所述子块的每个边界添加像素裕量来确定扩展块;
根据所述CPMV推导所述扩展块的每个顶点的运动矢量;
根据所述推导的运动矢量推导所述参考图像中的变换块;
推导所述变换块的边界框;
其中,所述参考块的所述区域对应于从所述边界框的每个边界扩展(T-1)个像素的边界框。
在如以上所描述的方法中,参考图像中的变换块的边界框的尺寸可以通过以下公式推导,其中,max函数返回参数的最大值,min函数返回参数的最小值:
其中,所述参考图像中的所述变换块的位置通过所述变换扩展块的顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标描述:
其中,W和H分别是所述子块的宽度和高度,dHorX、dHorY、dVerX、dVerY是所述仿射运动模型的水平梯度参数和垂直梯度参数。
这里,应理解,参考图6,块的仿射运动场可以由两个控制点(4参数)或三个控制点(6参数)的运动矢量(control point motion vector,CPMV)的运动信息来描述。因此,这里给出了计算样本位置(x,y)处的运动矢量的一般公式。这些公式是:
对于4参数仿射运动模型,样本位置(x,y)处的运动矢量可以如下推导:
对于6参数仿射运动模型,样本位置(x,y)处的运动矢量可以如下推导:
其中,(mv0x,mv0y)是左上顶点控制点的运动矢量,(mv1x,mv1y)是右上顶点控制点的运动矢量,(mv2x,mv2y)是左下顶点控制点的运动矢量;其中,W是块的宽度,H是块的高度。
对于使用6参数仿射运动模型的情况:
对于使用4参数仿射运动模型的情况:
dVerX=-dHorY,
dVerY=dHorX。
对于平移运动帧间预测,也有两种仿射运动帧间预测模式:仿射融合模式和仿射AMVP模式。
在如以上所描述的方法中:
所述边界框的所述尺寸可以由W'×H'给出;或
所述边界框的所述尺寸可以由Ceil(W′)×Ceil(H′)给出;或
所述边界框的所述尺寸可以由Floor(W′)×Floor(H′)给出。
在如以上所描述的方法中,所述方法还可以包括:
根据所述变换子块的所述边界框的所述尺寸和所述滤波器长度,确定所述子块的所述内存访问消耗;
根据所述子块的所述尺寸和所述滤波器长度,确定所述子块的最大允许内存访问消耗;
在满足所述确定的内存访问消耗不大于所述最大允许内存访问消耗的约束时,确定要对所述块执行EIF以进行运动补偿的。在这种情况下,MV限幅用于保证MV不指向图像之外。
在如以上所描述的方法中,可以为编码器和解码器预定义滤波器长度的值,或者可以在编解码器视频序列的参数集中指定滤波器长度的值。
在如以上所描述的方法中,对于4×4子块,预定义阈值T可以由以下公式给出:
其中,T'是用于平移运动块的运动补偿(motion compensation,MC)插值滤波器的长度。
在如以上所描述的方法中,对于8×8子块,预定义阈值T可以由以下公式给出:
其中,T'是用于平移运动块的运动补偿(motion compensation,MC)插值滤波器的长度。
如以上所描述的方法还可以包括:
计算所述块的中心的运动矢量并执行平移运动补偿。
如以上所描述的方法还可以包括:所述增强插值滤波器的所述子块的所述预定义尺寸等于4×4;其中,dX[0]对应于dHorX,dX[1]对应于dHorY,dY[0]对应于dVerX,dY[1]对应于dVerY;其中,根据所述CPMV的值确定具有预定义子块尺寸的子块的参考区域还可以包括:
-将变量eifSubblockSize的值设置为4;
-如下推导数组X[i]、Y[i]:
-X[0]=0;
-X[1]=(eifSubblockSize+1)*(dX[0]+(1<<9));
-X[2]=(eifSubblockSize+1)*dY[0];
-X[3]=X[1]+X[2];
-Y[0]=0;
-Y[1]=(eifSubblockSize+1)*dX[1];
-Y[2]=(eifSubblockSize+1)*(dY[1]+(1<<9));
-Y[3]=Y[1]+Y[2];
-将变量Xmax的值设置为X[i]的最大值,其中,i等于0..3;
-将变量Xmin的值设置为X[i]的最小值,其中,i等于0..3;
-将变量Ymax的值设置为Y[i]的最大值,其中,i等于0..3;
-将变量Ymin的值设置为Y[i]的最小值,其中,i等于0..3;
-将变量W的值设置为(Xmax-Xmin+(1<<9)-1)>>9的值;
-将变量H的值设置为(Ymax-Ymin+(1<<9)-1)>>9的值。
dX[0]、dX[1]、dY[0]、dY[1]的精度可以由1/2K给出,即K位,其中,K是大于0的整数。因此,例如,对于K等于9,即9位,变量dX[0]、dX[1]、dY[0]、dY[1]精度是1/512。
对于上面的示例,运动矢量精度是9位,(1<<9)对应于一个整数样本。如果dX[0]、dX[1]、dY[0]、dY[1]的精度等于K,并且(1<<K)对应于一个整数样本,则以上公式可表述如下:
-将变量eifSubblockSize的值设置为4;
-如下推导数组X[i]、Y[i]:
-X[0]=0;
-X[1]=(eifSubblockSize+1)*(dX[0]+(1<<K));
-X[2]=(eifSubblockSize+1)*dY[0];
-X[3]=X[1]+X[2];
-Y[0]=0;
-Y[1]=(eifSubblockSize+1)*dX[1];
-Y[2]=(eifSubblockSize+1)*(dY[1]+(1<<K));
-Y[3]=Y[1]+Y[2];
-将变量Xmax的值设置为X[i]的最大值,其中,i等于0..3;
-将变量Xmin的值设置为X[i]的最小值,其中,i等于0..3;
-将变量Ymax的值设置为Y[i]的最大值,其中,i等于0..3;
-将变量Ymin的值设置为Y[i]的最小值,其中,i等于0..3;
-将变量W的值设置为(Xmax-Xmin+(1<<K)-1)>>K的值;
-将变量H的值设置为(Ymax-Ymin+(1<<K)-1)>>K的值。
在如以上所描述的方法中,还可以包括:在所述仿射帧间预测包括双向预测的情况下,约束对称地应用于两个列表。
这里,应理解,条件是对称应用的:内存消耗应小于L0和L1参考列表的阈值,例如,L0和L1的仿射运动模型可以不同。因此,应理解,可以对L0和L1参考列表(方向)做出一次关于使用运动矢量限幅的决定,其中,运动矢量限幅是基于仿射运动模型参数推导的。换句话说,L0和L1的运动补偿方案应始终相同。
在如以上所描述的方法中,T可以等于2,在这种情况下,使用双线性插值从参考帧获取预测样本。
在如以上所描述的方法中,预定义阈值可以等于72。
这里,应理解,list0和list1的滤波器抽头的数量是相同的,但list0和list1的运动模型可能不同。特别是,在仿射运动模型的情况下,list0和list1的CPMV可能不同。
在如以上所描述的方法中,运动模型可以是仿射运动模型,并且运动矢量限幅范围可以根据运动模型参数确定,所述运动模型参数是根据CPMV确定的。
在如以上所描述的方法中,所述方法还可以包括:
根据所述变换子块的所述边界框的所述尺寸和所述滤波器长度,确定所述子块的所述内存访问消耗;
根据所述子块的所述尺寸和所述滤波器长度,确定所述子块的最大允许内存访问消耗;
在满足所述确定的内存访问消耗不大于所述最大允许内存访问消耗的约束时,确定要对所述块执行EIF以进行运动补偿的。在这种情况下,MV限幅用于保证MV不指向图像之外。
本发明还提供一种编码器,包括处理电路,所述处理电路用于执行如以上所描述的方法。
本发明还提供一种解码器,包括处理电路,所述处理电路用于执行如以上所描述的方法。
本发明还提供了一种包括程序代码的计算机程序产品,当程序代码在计算机或处理器上执行时,所述程序代码用于执行如以上所描述的方法。
本发明还提供一种解码器,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,与所述一个或多个处理器耦合并存储由所述一个或多个处理器执行的指令,其中,当所述一个或多个处理器执行指令时,所述指令使所述解码器执行如以上所描述的方法。
本发明还提供了一种编码器,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,与所述一个或多个处理器耦合并存储由所述一个或多个处理器执行的指令,其中,当所述一个或多个处理器执行指令时,所述指令使所述编码器执行如以上所描述的方法。
本发明还公开了一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质携带程序代码,当计算机设备执行所述程序代码时,所述程序代码使所述计算机设备执行如以上所描述的方法。
本发明还公开了一种用于对视频序列进行译码的解码器或编码器,包括用于进行运动补偿的增强插值滤波器(enhanced interpolation filter,EIF),所述解码器或编码器分别包括:
第一确定单元,用于根据仿射帧间预测确定块的控制点运动矢量(control pointmotion vector,CPMV),所述块是仿射块或所述仿射块的子块;
第二确定单元,用于:对于预定义子块尺寸,根据所述CPMV的值确定具有所述预定义子块尺寸的子块的参考区域;
比较单元,用于将所述确定的参考区域与预定义阈值进行比较;
运动补偿单元,用于使用EIF进行运动补偿,包括推导所述块的基于像素的运动矢量场;
其中,如果所述确定的参考区域大于所述阈值,则所述运动补偿单元用于推导所述块的所述基于像素的运动矢量场还包括运动矢量限幅,
其中,运动矢量限幅范围根据所述块的运动模型和所述块的所述尺寸确定。
附图及以下说明中将详细描述一个或多个实施例。其它特征、目标和优点在说明书、附图以及权利要求中显而易见。
附图说明
下面结合附图对本发明实施例进行详细描述。
图1A为用于实现本发明实施例的视频译码系统的示例的框图。
图1B为用于实现本发明实施例的视频译码系统的另一个示例的框图。
图2为用于实现本发明实施例的视频编码器的示例的框图。
图3为用于实现本发明实施例的视频解码器的示例性结构的框图。
图4为编码装置或解码装置的一个示例的框图。
图5为编码装置或解码装置的另一个示例的框图。
图6为基于控制点的仿射运动模型(4参数和6参数)的说明示例。
图7为仿射子块运动矢量场的说明示例。
图8为仿射块(子块)和中间扩展EIF块(子块)的顶点坐标的说明示例。
图9为参考图像中的变换块(子块)的位置和对应的边界框的说明示例。
图10为实现内容分发服务的内容供应系统3100的示例性结构的框图。
图11为终端设备的一个示例的结构的框图。
图12示出了根据本发明的由译码设备(即编码器或解码器)实现的对视频进行译码的方法。
图13示出了根据本发明实施例的用于对视频序列进行解码的解码器。
图14示出了根据本发明实施例的用于对视频序列进行编码的编码器。
下文中,除非另外明确说明,否则相同的附图标记指代相同或至少功能等同的特征。
具体实施方式
在以下描述中,参考构成本发明的一部分的附图,这些附图通过说明的方式示出本发明实施例的特定方面或可以使用本发明实施例的具体方面。应理解,本发明实施例可以用于其它方面,并且包括在附图中未示出的结构上或逻辑上的变化。因此,以下详细描述不作为限制意义,并且本发明的范围由所附权利要求限定。
例如,应理解,参考所描述的方法公开的内容对于用于执行该方法的对应的设备或系统也可以成立,反之亦然。例如,如果描述了一个或多个特定的方法步骤,则对应的设备可以包括一个或多个单元,例如用于执行所描述的一个或多个方法步骤的功能单元(例如,执行一个或多个步骤的一个单元;或者多个单元,每个单元执行多个步骤中的一个或多个),即使一个或多个单元在附图中未明确描述或示出时也是如此。此外,例如,如果根据一个或多个单元(例如功能单元)来描述特定装置,则对应的方法可以包括用于执行一个或多个单元的功能的一个步骤(例如执行一个或多个单元的功能的一个步骤,或多个步骤,每个步骤执行多个单元中的一个或多个单元的功能),即使一个或多个步骤在附图中未明确描述或示出时也是如此。此外,应理解,除非特别指出,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。
视频译码通常是指对构成视频或视频序列的图像序列进行处理。在视频译码领域中,术语“帧(frame)”可以代替术语“图像(picture或image)”。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源端执行,并且通常包括处理(例如,通过压缩)原始视频图像,以减少表示视频图像所需的数据量(以获得更高效的存储和/或传输)。视频解码在目的端执行,并且通常包括相对于编码器的逆处理以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或各自视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码器(编码和解码,CODEC)。
在无损视频译码的情况下,可以对原始视频图像进行重建,即,重建的视频图像与原始视频图像具有相同的质量(假设在存储或传输期间没有传输损失或其它数据损失)。在有损视频译码的情况下,通过量化等方式进行进一步压缩,以减少表示视频图像所需的数据量,在解码端无法完全重建视频图像,即,重建的视频图像的质量比原始视频图像的质量低或差。
若干视频编码标准属于“有损混合视频编解码”组(即,将样本域中的空间和时间预测与2D变换译码相结合,以在变换域中进行量化)。视频序列的每个图像通常分割为一组不重叠的块,并且通常在块级别上进行译码。换句话说,在编码端,通常在块(视频块)级别上对视频进行处理(即,编码),例如,通过使用空间(帧内图像)预测和/或时间(帧间图像)预测来生成预测块,从当前块(当前处理/待处理块)中减去预测块以获得残差块,变换残差块并在变换域中量化残差块以减少待发送(压缩)的数据量,而在解码端,相对于编码器的逆处理用于编码的或压缩的块,以重建当前块用于表示。此外,编码器按照解码器处理循环来处理,使得两者生成相同的预测(例如,帧内和帧间预测)和/或重建,用于进行处理,即,对后续块进行译码。
在以下视频译码系统10的实施例中,视频编码器20和视频解码器30根据图1至图3进行描述。
图1A为示例性译码系统10的示意性框图,例如可以使用本申请的技术的视频译码系统10(或简称为译码系统10)。视频译码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示可以用于根据本申请中描述的各种示例执行技术的设备的示例。
如图1A所示,译码系统10包括源设备12,源设备12用于向目的地设备14等提供编码图像数据21,以对编码数据13进行解码。
源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。
图像源16可以包括或可以是:任何类型的图像捕获设备,例如用于捕获真实世界图像的摄像机;和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器;或用于获取和/或提供真实世界图像、计算机动画图像(例如屏幕内容、虚拟现实(virtual reality,VR)图像),和/或其任何组合(例如增强现实(augmented reality,AR)图像)的任何类型的设备。图像源可以为存储上述图像中任何图像的任何类型的存储器或存储装置。
为了与预处理单元18和由预处理单元18执行的处理进行区分,图像或图像数据17也可以称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,以获得预处理图像19或预处理图像数据19。预处理器18执行的预处理可以包括修正(trimming)、颜色格式转换(例如从RGB到YCbCr)、颜色校正或去噪等。可以理解的是,预处理单元18可以是可选的组件。
视频编码器20用于接收预处理的图像数据19并提供编码图像数据21(例如,下文根据图2进一步详细描述)。
源设备12中的通信接口22可以用于:接收编码图像数据21并通过通信信道13向目的地设备14等另一个设备或任何其它设备发送编码图像数据21(或任何其它处理后的版本),以用于存储或直接重建。
目的地设备14包括解码器30(例如视频解码器30),并且可以另外(即可选地)包括通信接口或通信单元28、后处理单元32(或后处理单元32)和显示设备34。
目的地设备14的通信接口28用于例如直接从源设备12,或从任何其它源(例如存储设备,例如编码图像数据存储设备)接收编码图像数据21或(或任何其它处理后的版本),并将编码图像数据21提供给解码器30。
通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路(例如直接有线或无线连接),或者通过任何类型的网络(例如有线网络、无线网络、有线网络和无线网络的任何组合、任何类型的私网和公网、任何类型的私网和公网的组合),发送或接收编码图像数据21或编码数据13。
例如,通信接口22可以用于将编码图像数据21封装为报文等合适的格式,和/或使用任何类型的传输编码或处理来处理编码图像数据,以便在通信链路或通信网络上进行传输。
通信接口28与通信接口22对应,例如,可以用于接收所发送数据,并使用任何类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获得编码图像数据21。
通信接口22和通信接口28均可配置为如图1A中从源设备12指向目的地设备14的通信信道13的箭头所表示的单向通信接口,或配置为双向通信接口,并且可用于发送和接收消息,建立连接,确认并交换与通信链路和/或数据传输(例如编码图像数据传输)相关的任何其它信息等。
解码器30用于接收编码图像数据21并提供解码图像数据31或解码图像31(例如,下文根据图3或图5进一步详细描述)。
目的地设备14的后处理器32用于对解码图像数据31(也称为重建图像数据),例如解码图像31,进行后处理,以获得后处理图像数据33,例如后处理图像33。由后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr到RGB)、颜色校正、修剪或重新采样或任何其它处理,以例如准备解码图像数据31,用于通过显示设备34等进行显示。
目的地设备14的显示设备34用于接收后处理图像数据33,以例如向用户或观看者显示图像。显示设备34可以是或包括用于呈现重建图像的任何类型的显示器,例如集成的或外部的显示器或监控器。例如,显示器可以包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微LED显示器,硅上液晶(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。
尽管图1A将源设备12和目的地设备14示出为单独的设备,但是设备的实施例也可以包括这两种设备或这两种设备的功能,即包括源设备12或对应的功能与目的地设备14或对应的功能。在此类实施例中,源设备12或对应的功能与目的地设备14或对应的功能可以通过相同的硬件和/或软件、通过单独的硬件和/或软件或其任何组合来实现。
根据以上描述,对于本领域技术人员来说显而易见的是,图1A中所示的源设备12和/或目的地设备14的不同单元或功能的存在和(精确)功能划分可以根据实际设备和应用而变化。
编码器20(例如视频编码器20)、解码器30(例如视频解码器30),或编码器20和解码器30两者可通过如图1B所示的处理电路如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任何组合来实现。编码器20可以通过处理电路46实现,以实现结合图2的编码器20和/或本文描述的任何其它编码器系统或子系统所讨论的各种模块。解码器30可以通过处理电路46实现,以实现结合图3的解码器30所讨论的各种模块和/或本文所描述的任何其它解码器系统或子系统。处理电路可以用于执行本文所描述的各种操作。如图5所示,如果这些技术部分地在软件中实现,则设备可以将软件指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器在硬件中执行这些指令,以执行本发明的技术。视频编码器20和视频解码器30中的任何一个可以作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,如图1B所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收器设备、广播发送器设备等,并且可以使用或不使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图1A所示的视频译码系统10仅是示例,本申请的技术可以应用于视频译码设置(例如,视频编码或视频解码),不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据可以从本地存储器检索、通过网络流式传输等。视频编码设备可以对数据进行编码并将数据存储到存储器,和/或视频解码设备可以从存储器检索和解码数据。在一些示例中,编码和解码由不彼此通信但简单地将数据编码到存储器和/或从存储器检索和解码数据的设备执行。
为便于描述,例如,参考由ITU-T视频编码专家组(video coding experts group,VCEG)和ISO/IEC运动图像专家组(motion picture experts group,MPEG)的视频编码联合工作组(joint collaboration team on video coding,JCT-VC)开发的高效视频编码(high-efficiency video coding,HEVC)、通用视频编码(versatile video coding,VVC)参考软件、下一代视频编码标准描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC。
编码器和编码方法
图2为用于实现本申请的技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(图中未示出)。图2所示的视频编码器20也可以称为混合视频编码器或根据混合视频编解码器的视频编码器。
残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径;反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254组成视频编码器20的反向信号路径,其中,视频编码器20的反向信号路径对应于解码器(参见图3的解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
图像和图像分割(图像和块)
编码器20可以用于通过输入端201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是预处理图像19(或预处理图像数据19)。为简单起见,以下描述中称为图像17。图像块17还可以称为当前图像或待译码图像(特别是在视频译码中,将当前图像与其它图像区分开来,其它图像例如是同一视频序列(即,也包括当前图像的视频序列)中之前编码和/或解码的图像)。
(数字)图像是或可以看作具有强度值的二维样本阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像的水平和垂直方向(或轴线)上的样本数定义图像的尺寸和/或分辨率。通常使用三个颜色分量来表示颜色,即,可以通过三个样本阵列来表示图像或图像可以包括三个样本阵列。在RBG格式或色彩空间中,图像包括对应的红、绿、蓝样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如YCbCr,其包括Y表示的亮度分量(有时也用L代替)以及Cb和Cr表示的两个色度分量。亮度分量Y表示亮度或灰度强度(例如在灰度级图像中),而两个色度分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括亮度样本值的亮度样本阵列(Y)和色度值的两个色度样本阵列(Cb和Cr)。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是黑白的,则该图像可以只包括亮度样本阵列。相应地,图像可以为例如黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。
视频编码器20的实施例可以包括图像分割单元(图2中未示出),用于将图像17分割成多个(通常为不重叠的)图像块203。这些块也可以称为根块或宏块(H.264/AVC标准)或称为编码树块(coding tree block,CTB)或编码树单元(coding tree unit,CTU)(H.265/HEVC和VVC标准)。图像分割单元可以用于对视频序列中的所有图像和定义块尺寸的对应的栅格使用相同的块尺寸,或者改变图像或子集或图像组之间的块尺寸,并将每个图像分割为对应的块。
在其它实施例中,视频编码器可以用于直接接收图像17的块203,例如,组成图像17的一个、若干个或所有块。图像块203也可以称为当前图像块或待译码图像块。
尽管图像块203的尺寸小于图像17,但是与图像17一样,块203也是或也可以被认为是具有强度值(样本值)的样本的二维阵列或矩阵。换句话说,块203例如可以包括一个样本阵列(例如,在黑白图像17的情况下,亮度阵列)、三个样本阵列(例如,在彩色图像17的情况下,一个亮度阵列和两个色度阵列)或任何其它数量和/或类型的阵列,这取决于应用的颜色格式。块203在水平和垂直方向(或轴线)上的样本数定义了块203的尺寸。相应地,某图像块可以为M×N(M列×N行)个样本阵列,或M×N个变换系数阵列等。
在图2所示的视频编码器20的实施例中,视频编码器20可以用于对图像17逐块地进行编码,例如对每个块203执行编码和预测。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于采用条带(slice)(也称为视频条带)对图像进行分割和/或编码,其中,图像可以采用一个或多个条带(通常是不重叠的条带)进行分割或编码,每个条带可以包括一个或多个块(如CTU)或一个或多个块组(例如H.265/HEVC和VVC标准中的分块(tile)或VVC标准中的砖(brick))。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于使用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或编码,其中,可以使用一个或多个分块组(通常是不重叠的)对图像进行编码或可以将图像分割为一个或多个条带/分块组,并且每个条带/分块组可以包括一个或多个块(例如CTU)或一个或多个分块,其中,每个分块可以是矩形并且可以包括一个或多个块(例如CTU),例如全部或部分块。
残差计算
残差计算单元204可以用于根据图像块203和预测块265(后面会详细描述预测块265)计算残差块205(也称为残差205),例如,逐样本(逐像素)从图像块203的样本值中减去预测块265的样本值,以获得样本域中的残差块205。
变换
变换处理单元206可以用于对残差块205的样本值进行变换,例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST),以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,并且表示变换域中的残差块205。
变换处理单元206可以用于应用DCT/DST的整数近似,例如针对H.265/HEVC指定的变换。与正交DCT变换相比,此类整数近似通常通过某个因子进行缩放。使用其它缩放因子作为变换过程的一部分,以维持经过前向变换和反向变换处理的残差块的范数。缩放因子通常是基于某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、精度与实施成本之间的权衡等。例如,在编码器20侧通过逆变换处理单元212等为逆变换(在视频解码器30侧通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子,并且相应地,可以在编码器20侧通过变换处理单元206等为前向变换指定对应的缩放因子。
在视频编码器20的实施例中,例如,视频编码器20(对应地,变换处理单元206)可以用于直接输出或通过熵编码单元270进行编码或压缩后输出一种或多种变换类型的变换参数,使得视频解码器30可以接收并使用变换参数进行解码。
量化
量化单元208可以用于对变换系数207进行量化(例如进行标量量化或矢量量化),以获得量化系数209。量化系数209也可以称为量化变换系数209或量化残差系数209。
量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中,n大于m,可以通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以进行不同的缩放来实现更精细或更粗略的量化。量化步长尺寸越小,量化越精细;量化步长尺寸越大,量化越粗略。合适的量化步长尺寸可以通过量化参数(quantization parameter,QP)来表示。例如,量化参数可以是适用于预定义的一组合适的量化步长尺寸的索引。例如,小的量化参数可以对应精细的量化(小量化步长尺寸),而大的量化参数可以对应粗略的量化(大量化步长尺寸),反之亦然。量化操作可以包括除以量化步长,而反量化单元210等执行的对应解量化和/或反解量化操作可以包括乘以量化步长。根据一些标准(例如HEVC),实施例中可以使用量化参数来确定量化步长尺寸。通常,可以通过包括除法的公式的定点近似、根据量化参数计算量化步长尺寸。可以将其它缩放因子引入量化和解量化,用于恢复残差块的范数,因为量化步长尺寸和量化参数的公式的定点近似中使用缩放,所以可以修改该范数。在一种示例性实现方式中,可以合并逆变换和解量化中的缩放。或者,可以使用自定义量化表,并且例如在码流中将该自定义量化表从编码器发送到解码器。量化为有损操作,损耗随量化步长尺寸的增加而增加。
在视频编码器20的实施例中,视频编码器20(对应地,量化单元208)可以用于,例如,直接输出或经熵编码单元270进行编码后输出量化参数(quantization parameter,QP),使得视频解码器30可以接收并使用量化参数进行解码。
反量化
反量化单元210用于对量化系数执行量化单元208所执行的量化的反量化,以获得解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案的反量化方案。解量化系数211也可以称为解量化残差系数211,其对应于变换系数207,但是由于量化造成损耗,所以解量化系数211通常与变换系数不完全相同。
逆变换
逆变换处理单元212用于执行变换处理单元206所执行的变换的逆变换,例如,逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sinetransform,DST),以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。
重建
重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)与预测块265相加,例如,将重建残差块213的样本值和预测块265的样本值逐样本进行相加,以获得样本域中的重建块215。
滤波
环路滤波单元220(或简称为“环路滤波器”220)用于对重建块215进行滤波,以获得滤波块221,或通常用于对重建样本进行滤波,以获得滤波样本值。例如,环路滤波单元用于平滑像素的突变或提高视频质量。环路滤波单元220可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器(noise suppression filter,NSF)或其任何组合。例如,环路滤波单元220可以包括去块效应滤波器、SAO滤波器和ALF滤波器滤波过程的顺序可以是去块效应滤波、SAO滤波和ALF滤波。在另一个示例中,增加一种称为亮度映射与色度缩放(luma mapping with chromascaling,LMCS)(即自适应环内整形器)的过程。该过程在去块效应滤波之前执行。在另一个示例中,去块效应滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、子块变换(sub-block transform,SBT)边缘和帧内子划分(intra sub-partition,ISP)边缘。尽管在图2中环路滤波单元220示出为环内滤波器,但在其它配置中,环路滤波单元220可以实现为后环路滤波器。滤波块221也可以称为滤波重建块221。
在视频编码器20的实施例中,视频编码器20(对应地,环路滤波单元220)可以用于直接输出或通过熵编码单元270进行编码后输出环路滤波参数(例如SAO滤波参数、ALF滤波参数或LMCS参数),使得解码器30可以接收并使用相同或不同的环路滤波参数进行解码。
解码图像缓冲区
解码图像缓冲区(decoded picture buffer,DPB)230可以是存储参考图像或通常存储参考图像数据的存储器,以在视频编码器20对视频数据进行编码时使用。DPB 230可以由各种存储器设备中的任一种形成,例如动态随机存取存储器(dynamic random accessmemory,DRAM)(包括同步DRAM(synchronous DRAM,SDRAM))、磁阻RAM(magneto resistiveRAM,MRAM)、电阻RAM(resistive RAM,RRAM)或其它类型的存储器设备。解码图像缓冲区(decoded picture buffer,DPB)230可用于存储一个或多个滤波块221。解码图像缓冲区230还可以用于存储相同的当前图像或不同图像(例如之前重建的图像)的其它之前滤波的块(例如之前重建的和滤波的块221),并且可以提供完整的之前重建的(即解码的)图像(以及对应的参考块和样本)和/或部分重建的当前图像(以及对应的参考块和样本),以例如用于帧间预测。解码图像缓冲区(decoded picture buffer,DPB)230还可以用于存储一个或多个未滤波的重建块215,或通常存储未滤波的重建样本,例如,未经环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建样本。
模式选择(分割和预测)
模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,并且用于从解码图像缓冲区230或其它缓冲区(例如,行缓冲区,图中未示出)接收或获得原始图像数据如原始块203(当前图像17的当前块203),以及重建图像数据如同一(当前)图像和/或一个或多个之前解码的图像的滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,以获得预测块265或预测值265。
模式选择单元260可以用于为当前块预测模式(包括不分割模式)和预测模式(例如帧内或帧间预测模式)确定或选择分割模式,并生成对应的预测块265,该预测块用于残差块205的计算以及重建块215的重建。
在模式选择单元260的实施例中,模式选择单元260可以用于选择分割和预测模式(例如,从模式选择单元260支持或可用的模式中选择)。分割和预测模式提供最佳匹配,即最小残差(最小残差更有利于压缩,以便传输或存储),或提供最小指示(signaling)开销(最小指示开销更有利于压缩,以便传输或存储),或者同时考虑以上两者或在以上两者中取得平衡。模式选择单元260可用于根据率失真优化(rate distortion optimization,RDO)确定分割和预测模式,即选择提供最小率失真的预测模式。本文中“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致“次优选择”,但会降低复杂度和处理时间。
换句话说,分割单元262可以用于例如,通过迭代地使用四叉树分割(quad-tree-partitioning,QT)、二叉树分割(binary partitioning,BT)或三叉树分割(triple-tree-partitioning,TT)或其任何组合,将视频序列的图像分割为编码树单元(coding treeunits,CTU)序列,并将CTU 203进一步分割为较小的块部分或子块(它们再次形成块),并且分割单元262可以用于例如对块部分或子块中的每一个进行预测,其中模式选择包括选择分割的块203的树结构以及应用于每个块部分或子块的预测模式。
下文详细描述由视频编码器20执行的分割(例如,由分割单元260执行)处理和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。
分割模块
分割单元262可以用于将视频序列中的图像分割为编码树单元(coding treeunit,CTU)序列,分割单元262可以将编码树单元(coding tree unit,CTU)203分割(或划分)为更小的部分,例如较小的正方形或矩形块。对于具有三个样本阵列的图像,CTU由一个N×N的亮度样本块和两个对应的色度样本块组成。在开发中的通用视频编码(versatilevideo coding,VVC)中,CTU中的亮度块的最大允许尺寸指定为128×128,但是将来可以指定为不同于128×128的值,例如256×256。图像的CTU可以聚集/分组为条带/分块组、分块或砖。分块覆盖图像的矩形区域,分块可以划分为一个或多个砖。砖由分块中的多个CTU行组成。没有分割为多个砖的分块可以称为砖。但是,砖是分块的真子集,不称为分块。VVC支持两种分块组模式,即光栅扫描条带/分块组模式和矩形条带模式。在光栅扫描分块组模式中,条带/分块组包括图像的分块光栅扫描中的分块序列。在矩形条带模式中,条带包括图像的多个砖,这些砖共同构成图像的矩形区域。矩形条带内的砖是按照条带的砖光栅扫描顺序排列的。这些较小的块(也可以称为子块)可以进一步分割为更小的部分。这也称为树分割或分层树分割,其中,在根树层级0(层级0、深度0)等的根块可以递归地分割为两个或多个下一较低树层级的块,例如树层级1(层级1、深度1)的节点,这些块又可以分割为两个或多个下一较低层级的块,例如树层级2(层级2、深度2)等,直到由于满足结束标准(例如达到最大树深度或最小块尺寸)而结束分割。未进一步分割的块也称为树的叶块或叶节点。分割为两个部分的树称为二叉树(binary-tree,BT),分割为三个部分的树称为三叉树(ternary-tree,TT),分割为四个部分的树称为四叉树(quad-tree,QT)。
例如,编码树单元(coding tree unit,CTU)可以是或包括:亮度样本的CTB、具有三个样本阵列的图像的色度样本的两个对应的CTB、单色图像或使用三个不同的颜色平面和用于对样本进行译码的语法结构译码的图像的样本的CTB。相应地,编码树块(codingtree block,CTB)可以是N×N的样本块,其中,N可以设为某个值以将分量分割为CTB,这是一种分割。编码单元(coding unit,CU)可以是或包括:亮度样本的编码块、具有三个样本阵列的图像的色度样本的两个对应的编码块、单色图像或使用三个不同的颜色平面和用于对样本进行译码的语法结构译码的图像的样本的编码块。相应地,编码块(coding block,CB)可以是M×N的样本块,其中,M和N可以设为某些值以将CTB分割为编码块,这是一种分割。
在实施例中,例如,根据HEVC,可以通过表示为编码树的四叉树结构将编码树单元(coding tree unit,CTU)划分为CU。在叶CU级别上决定是通过帧间(时间)预测还是通过帧内(空间)预测对图像区域进行译码。每个叶CU还可以根据PU划分类型划分为1个、2个或4个PU。在一个PU内,进行相同的预测过程,并且以PU为单位将相关信息发送到解码器。在通过进行预测过程而获取残差块后,根据PU划分类型,可以根据与用于CU的编码树类似的其它四叉树结构将CU分割为变换单元(transform unit,TU)。
例如,在实施例中,根据当前正在开发的最新视频编码标准(称为通用视频编码(versatile video coding,VVC)),使用嵌套多类型树(例如二叉树和三叉树)的组合四叉树来分割例如用于分割编码树单元的分段结构。在编码树单元内的编码树结构中,CU可以是正方形或矩形。例如,编码树单元(coding tree unit,CTU)首先通过四叉树进行分割。然后,四叉树叶节点可以通过多类型树结构进行进一步分割。多类型树结构中,有四种划分类型:垂直二叉树划分(SPLIT_BT_VER)、水平二叉树划分(SPLIT_BT_HOR)、垂直三叉树划分(SPLIT_TT_VER)和水平三叉树划分(SPLIT_TT_HOR)。多类型树叶节点称为编码单元(coding unit,CU),该分段用于预测和变换处理,无需进一步分割,只有CU对于最大变换长度太大时才需要进一步分割。在大多数情况下,这表示CU、PU和TU在四叉树嵌套多类型树的编码块结构中具有相同的块尺寸。当最大支持变换长度小于CU的彩色分量的宽度或高度时,就会出现该异常情况。VVC制定了在四叉树嵌套多类型树的编码结构中用于分割划分信息的唯一指示机制。在该指示机制中,编码树单元(coding tree unit,CTU)作为四叉树的根,并且首先通过四叉树结构分割。然后,通过多类型树结构对每个四叉树叶节点(当太大而需要分割时)进行进一步分割。在多类型树结构中,指示第一标志(mtt_split_cu_flag)以表示是否对节点进行进一步分割;当需要对节点进行进一步分割时,指示第二标志(mtt_split_cu_vertical_flag)以表示分割方向,然后指示第三标志(mtt_split_cu_binary_flag)以表示该分割是二叉树分割或三叉树分割。根据mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,CU的多类型树分割模式(MttSplitMode)可以由解码器根据预定义的规则或表格推导。需要说明的是,对于某种设计,例如VVC硬件解码器中的64×64亮度块和32×32色度流水线设计,当亮度编码块的宽度或高度大于64时,都禁止TT划分,如图6所示。当色度编码块的宽度或高度大于32时,也禁止TT划分。流水线设计将图像分割为虚拟流水线数据单元(virtual pipeline data unit,VPDU),这些虚拟流水线数据单元定义为图像中的非重叠单元。在硬件解码器中,连续的VPDU由多个流水线阶段同时处理。在大多数流水线阶段,VPDU尺寸与缓冲区尺寸大致成正比,因此保持VPDU尺寸较小是很重要的。在大多数硬件解码器中,VPDU尺寸可以设置为最大变换块(transform block,TB)尺寸。但是,在VVC中,三叉树(ternary tree,TT)分割和二叉树(binary tree,BT)分割会导致VPDU尺寸变大。
另外,需要说明的是,当树节点块的一部分超出图像底边界或右边界时,强制对树节点块进行划分,直到每个译码CU的所有样本都位于图像边界内。
例如,根据块尺寸,帧内子划分(intra sub-partition,ISP)工具可以将亮度帧内预测块垂直或水平地分割为2或4个子部分。
在一个示例中,视频编码器20的模式选择单元260可以用于执行本文分割技术的任何组合。
如以上所描述,视频编码器20用于从一组(例如,预定的)预测模式中确定或选择最佳或最优预测模式。该组预测模式可以包括例如帧内预测模式和/或帧间预测模式。
帧内预测
该组帧内预测模式可以包括35种不同的帧内预测模式,例如DC(或平均值)模式和平面模式等非定向模式,或HEVC中定义的定向模式等,或者可以包括67种不同的帧内预测模式,例如DC(或平均值)模式和平面模式等非定向模式,或VVC中定义的定向模式等。例如,若干传统的角度帧内预测模式被自适应地替换为如VVC中定义的用于非正方形块的广角帧内预测模式。又例如,为了避免DC预测的除法运算,仅使用更长的边来计算非正方形块的平均值。此外,平面模式的帧内预测结果还可以通过位置决定的帧内预测组合(positiondependent intra prediction combination,PDPC)方法进行修改。
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式使用同一当前图像的相邻块的重建样本来生成帧内预测块265。
帧内预测单元254(或通常为模式选择单元260)还用于以语法元素266的形式向熵编码单元270输出帧内预测参数(或通常为表示块的选定帧内预测模式的信息),以将该帧内预测参数包括到编码图像数据21中,从而视频解码器30可以,例如,接收并使用该预测参数进行解码。
帧间预测
该组(或可能的)帧间预测模式取决于可用的参考图像(即,例如存储在DPB 230中的之前至少部分解码的图像)和其它帧间预测参数,例如是整个参考图像还是仅参考图像的一部分(例如,当前块的区域周围的搜索窗口区域)用于搜索最佳匹配的参考块,和/或例如是否应用像素插值,例如半像素、四分之一像素和/或1/16像素插值,或不应用像素插值。
除了上述预测模式之外,还可以应用跳过模式、直接模式和/或其它帧间预测模式。
例如,扩展融合预测,这种模式下的融合候选列表由以下五种候选类型按顺序组成:空间相邻CU的空间MVP、并置CU的时间MVP、FIFO表的基于历史的MVP、成对的平均MVP和零MV。此外,可以使用基于双向匹配的解码端运动矢量修正(decoder side motion vectorrefinement,DMVR)来增加融合模式下的MV的精度。具有MVD的融合模式(merge mode withMVD,MMVD)即为具有运动矢量差的融合模式。在发送跳过标志和融合标志之后立即指示MMVD标志,用于表示是否对CU使用MMVD模式。此外,可以使用CU级自适应运动矢量分辨率(adaptive motion vector resolution,AMVR)方案。AMVR方案支持对CU的MVD以不同的精度进行译码。根据当前CU的预测模式,自适应地选择当前CU的MVD。当CU以融合模式进行译码时,可以将组合的帧间/帧内预测(combined inter/intra prediction,CIIP)模式应用于当前CU。对帧间预测信号和帧内预测信号进行加权平均,以得到CIIP预测。仿射运动补偿预测中,通过两个控制点(4-参数)或三个控制点(6-参数)的运动矢量的运动信息来描述块的仿射运动场。基于子块的时间运动矢量预测(subblock-based temporal motion vectorprediction,SbTMVP)与HEVC中的时间运动矢量预测(temporal motion vectorprediction,TMVP)类似,但预测的是当前CU中的子CU的运动矢量。双向光流(bi-directional optical flow,BDOF),以前称为BIO,是一种更简单的版本,其需要的计算更少,特别是在乘法次数和乘法器尺寸方面。在三角形分割模式中,以对角线划分和反对角线划分两种划分方式将CU均匀划分为两个三角形部分。此外,双向预测模式在简单平均的基础上进行了扩展,以允许对两个预测信号进行加权平均。
帧间预测单元244可以包括运动估计(motion estimation,ME)单元和运动补偿(motion compensation,MC)单元(两者均未在图2中示出)。运动估计单元可以用于接收或获取图像块203(当前图像17的当前图像块203)和解码图像231,或者至少一个或多个之前重建的块(例如一个或多个其它/不同的之前解码的图像231的重建块),以用于运动估计。例如,视频序列可以包括当前图像和之前解码的图像231,或者,换句话说,当前图像和之前解码的图像231可以是构成视频序列的图像序列的一部分或可以构成该序列。
例如,编码器20可以用于从多个其它图像的相同或不同图像的多个参考块中选择参考块并提供参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移),作为运动估计单元的帧间预测参数。这个偏移也称为运动矢量(motion vector,MV)。
运动补偿单元用于获取(例如,接收)帧间预测参数,并根据或通过帧间预测参数进行帧间预测,以获得帧间预测块265。运动补偿单元所执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量提取或生成预测块(可能执行插值以提高子像素精度)。插值滤波可以通过已知样本生成其它样本,从而潜在地增加可以用于对图像块进行译码的候选预测块的数量。在接收到当前图像块的PU的运动矢量时,运动补偿单元可以定位运动矢量在一个参考图像列表中指向的预测块。
运动补偿单元还可以生成与块和视频条带相关的语法元素,该语法元素由视频解码器30用来解码视频条带的图像块。除了或作为条带和相应语法元素的替代,可以生成或使用分块组和/或分块以及相应语法元素。
熵译码
例如,熵编码单元270用于将熵编码算法或方案(例如,可变长度译码(variablelength coding,VLC)方案、上下文自适应VLC方案(context adaptive VLC,CAVLC)、算术译码方案、二值化算法、上下文自适应二进制算术译码(context adaptive binaryarithmetic coding,CABAC)、基于语法的上下文自适应二进制算术译码(syntax-basedcontext-adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probabilityinterval partitioning entropy,PIPE)译码或其它熵编码方法或技术)或旁路(无压缩)方案应用于量化系数209、帧间预测参数、帧内预测参数、环路滤波参数和/或其它语法元素,以获得可以通过输出单元272以编码码流21等形式输出的编码图像数据21,使得视频解码器30可以接收并使用这些参数进行解码。可以将编码码流21发送到视频解码器30,或者将其存储在存储器汇总,以便随后由视频解码器30发送或检索。
视频编码器20的其它结构变化可以用于编码视频流。例如,对于某些块或帧,基于非变换的编码器20可以在没有变换处理单元206的情况下直接量化残差信号。在另一种实现方式中,编码器20可以将量化单元208和反量化单元210组合成单个单元。
解码器及解码方法
图3为用于实现本申请的技术的视频解码器30的示例。视频解码器30用于接收例如由编码器20编码的编码图像数据21(例如,编码码流21),以获得解码图像331。编码图像数据或码流包括用于对编码图像数据进行解码的信息,例如表示编码视频条带(和/或分块组或分块)的图像块的数据和相关的语法元素。
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲区(decoded picturebuffer,DPB)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或包括运动补偿单元。在一些示例中,视频解码器30可以执行与图2中关于视频编码器100描述的编码通道大体上互逆的解码通道。
如关于编码器20所解释的,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。因此,反量化单元310可以与反量化单元110具有相同的功能,逆变换处理单元312可以与逆变换处理单元212具有相同的功能,重建单元314可以与重建单元214具有相同的功能,环路滤波器320可以与环路滤波器220具有相同的功能,解码图像缓冲区330可以与解码图像缓冲区230具有相同的功能。因此,对视频编码器20的对应单元和功能的解释对应地适用于视频解码器30的相应单元和功能。
熵解码
熵解码单元304用于解析码流21(或通常称为编码图像数据21),并对编码图像数据21进行熵解码,以获取量化系数309和/或解码译码参数(图3中未示出)等,例如帧间预测参数(如参考图像索引和运动矢量)、帧内预测参数(如帧内预测模式或索引)、变换参数、量化参数、环路滤波参数和/或其它语法元素等中的任一者或全部。熵解码单元304可以用于进行对应于编码器20的熵编码单元270所描述的编码方案的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,并向解码器30的其它单元提供其它参数。视频解码器30可以在视频条带级和/或视频块级接收语法元素。除了或作为条带和相应语法元素的替代,可以接收和/或使用分块组和/或分块以及相应语法元素。
反量化
反量化单元310可以用于从编码图像数据21(例如,通过熵解码单元304等解析和/或解码)接收量化参数(quantization parameter,QP)(或通常为与反量化相关的信息)和量化系数,并根据量化参数对解码量化系数309进行反量化,以获得解量化系数311,解量化系数311也可以称为变换系数311。反量化过程可以包括:使用视频编码器20确定的视频条带(或分块或分块组)中的每个视频块的量化参数,以确定应应用的量化程度以及反量化程度。
逆变换
逆变换处理单元312可以用于接收解量化系数311(也称为变换系数311),并对解量化系数311进行变换,以获得样本域中的重建残差块213。重建残差块213也可以称为变换块313。变换可以是逆变换,例如,逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从编码图像数据21接收变换参数或对应的信息(例如,通过解析和/或解码,例如,通过熵解码单元304),以确定要应用于解量化系数311的变换。
重建
重建单元314(例如,加法器或求和器314)可以用于将重建残差块313添加到预测块365,以获得样本域中的重建块315,例如,通过将重建残差块313的样本值添加到预测块365的样本值。
滤波
环路滤波单元320(在译码环路中或译码环路之后)用于对重建块315进行滤波,以获得滤波块321,以平滑像素的突变或提高视频质量。环路滤波单元320可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器(noise suppression filter,NSF)或其任何组合。例如,环路滤波单元220可以包括去块效应滤波器、SAO滤波器和ALF滤波器滤波过程的顺序可以是去块效应滤波、SAO滤波和ALF滤波。在另一个示例中,增加一种称为亮度映射与色度缩放(luma mapping withchroma scaling,LMCS)(即自适应环内整形器)的过程。该过程在去块效应滤波之前执行。在另一个示例中,去块效应滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、子块变换(sub-block transform,SBT)边缘和帧内子划分(intra sub-partition,ISP)边缘。尽管在图3中环路滤波单元320示出为环内滤波器,但在其它配置中,环路滤波单元320可以实现为后环路滤波器。
解码图像缓冲区
之后,将一个图像的解码视频块321存储在解码图像缓冲区330中。解码图像331作为参考图像存储在解码图像缓冲区330中,用于后续对其它图像进行运动补偿和/或后续相应输出以进行显示。
解码器30用于例如通过输出端312输出解码图像311,以呈现给用户或由用户观看。
预测
帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同;帧内预测单元354的功能可以与帧间预测单元254相同,并根据从编码图像数据21接收到的分割和/或预测参数或相应信息(例如,通过熵解码单元304等解析和/或解码)决定划分或分割模式并执行预测。模式应用单元360可以用于根据重建图像、重建块或相应的样本(已滤波的或未滤波的)按块进行预测(帧内预测或帧间预测),以获得预测块365。
当视频条带译码为帧内译码(I)条带时,模式应用单元360的帧内预测单元354用于:根据所指示的帧内预测模式和来自当前图像的之前解码的块的数据来为当前视频条带的图像块生成预测块365。当视频图像译码为帧间译码(即,B或P)条带时,模式应用单元360的帧间预测单元344(例如,运动补偿单元)用于根据从熵解码单元304接收到的运动矢量和其它语法元素生成当前视频条带的视频块的预测块365。对于帧间预测,预测块可以从一个参考图像列表中的一个参考图像中生成。视频解码器30可以根据DPB 330中存储的参考图像通过默认构建技术构建参考帧列表,list0和list1。除了应用于使用条带(例如视频条带)的实施例外,相同或相似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如可以使用I、P或B分块组和/或分块对视频进行译码。
模式应用单元360用于通过解析运动矢量或相关信息和其它语法元素确定当前视频条带的视频块的预测信息,并使用预测信息来生成正在解码的当前视频块的预测块。例如,模式应用单元360使用接收到的一些语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测条带类型(例如,B条带,P条带或GPB条带)、条带的参考图像列表中的一个或多个的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间译码视频块的帧间预测状态,以及其它信息,以对当前视频条带中的视频块进行解码。除了应用于使用条带(例如视频条带)的实施例外,相同或相似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如可以使用I、P或B分块组和/或分块对视频进行译码。
在图3所示的视频解码器30的实施例中,视频解码器30可以用于使用条带(slice)(也称为视频条带)对图像进行分割和/或解码,其中,图像可以使用一个或多个条带(通常是不重叠的条带)进行分割或解码,每个条带可以包括一个或多个块(如CTU)或一个或多个块组(例如H.265/HEVC和VVC标准中的分块(tile)或VVC标准中的砖(brick))。
在图3所示的视频解码器30的实施例中,视频解码器30可以用于使用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码,其中,可以使用一个或多个分块组(通常是不重叠的)对图像进行解码或可以将图像分割为一个或多个条带/分块组,并且每个条带/分块组可以包括一个或多个块(例如CTU)或一个或多个分块,其中,每个分块可以是矩形并且可以包括一个或多个块(例如CTU),例如全部或部分块。
视频解码器30的其它变型可以用于解码编码图像数据21。例如,解码器30可以在没有环路滤波单元320的情况下生成输出视频流。例如,对于某些块或帧,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接量化残差信号。在另一种实现方式中,视频解码器30可以将反量化单元310和逆变换处理单元312组合成单个单元。
应理解,在编码器20和解码器30中,可以针对当前环节的处理结果进行进一步处理,然后输出到下一环节。例如,在插值滤波、运动矢量推导或环路滤波等之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进一步进行限幅(clip)或移位(shift)等操作。
需要说明的是,可以对当前块的推导的运动矢量(包括但不限于仿射模式下的控制点运动矢量、仿射、平面、ATMVP模式下的子块运动矢量、时间运动矢量等)进行进一步操作。例如,根据运动矢量的表示位将该运动矢量的值限制在预定义的范围。如果运动矢量的表示位为bitDepth,则运动矢量的取值范围为-2^(bitDepth-1)至2^(bitDepth-1)-1,其中,“^”符号表示幂次方。例如,如果bitDepth设置为16,则该取值范围为-32768至32767;如果bitDepth设置为18,则该取值范围为-131072至131071。例如,对推导的运动矢量(例如一个8×8块中的四个4×4子块的MV)的值进行限制,使得四个4×4子块MV的整数部分之间的最大差值不超过N个像素,例如不超过1个像素。这里提供了两种根据bitDepth限制运动矢量的方法。
图4为本发明的一个实施例提供的视频译码设备400的示意图。如本文所描述,视频译码设备400适合于实现所公开的实施例。在一个实施例中,视频译码设备400可以是解码器(例如,图1A中的视频解码器30)或编码器(例如,图1A中的视频编码器20)。
视频译码设备400包括:用于接收数据的入端口410(或输入端口410)和接收单元(Rx)420;用于处理数据的处理器、逻辑单元或中央处理器(central processing unit,CPU)430;用于发送数据的发送器单元(Tx)440和出端口450(或输出端口450);以及用于存储数据的存储器460。视频译码设备400还可以包括耦合到入端口410、接收器单元420、发送器单元440和出端口450的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器430通过硬件和软件实现。处理器430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上述公开的实施例。例如,译码模块470实现、处理、准备或提供各种译码操作。因此,包括译码模块470大大提高了视频译码设备400的功能,并影响视频译码设备400到不同状态的转换。或者,译码模块470实现为存储在存储器460中并由处理器430执行的指令。
存储器460可以包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以在选择此类程序用于执行时存储程序,以及存储在程序执行期间读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图5为一个示例性实施例提供的装置500的简化框图,该装置500可以用作图1中的源设备12和目的地设备14中的一者或两者。
装置500中的处理器502可以是中央处理器。或者,处理器502可以是能够操纵或处理现在存在或以后开发的信息的任何其它类型的设备或多个设备。尽管所公开的实现方式可以通过单个处理器(例如处理器502)实施,但是可以通过一个以上的处理器来提高速度和效率。
装置500中的存储器504在一种实现方式中可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。可以使用任何其它合适类型的存储设备作为存储器504。存储器504可以包括由处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,应用程序510包括使处理器502执行本文描述的方法的至少一个程序。例如,应用程序510可以包括应用程序1至N,其还包括执行本文所描述的方法的视频译码应用程序。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是触摸敏感显示器,触摸敏感显示器将显示器与可操作以感测触摸输入的触摸敏感元件相结合。显示器518可以通过总线512耦合到处理器502。
尽管在这里描述为单个总线,但装置500的总线512可以由多个总线组成。此外,辅助存储装置514可以直接耦合到装置500的其它组件,或者可以通过网络存取,并且可以包括单个集成单元(例如存储卡)或多个单元(例如多个存储卡)。因此,可以以多种配置实现装置500。
仿射运动补偿预测
在ITU-T H.265(HEVC)中,运动补偿预测(motion compensation prediction,MCP)仅使用平移运动模型。但是,在现实世界中,有多种运动,如放大/缩小、旋转、透视运动和其它不规则运动。在VTM6中,应用了基于块的仿射变换运动补偿预测。如图6所示,块的仿射运动场通过两个控制点(4参数)或三个控制点(6参数)的运动矢量(control pointmotion vector,CPMV)的运动信息来描述。
计算样本位置(x,y)处的运动矢量的一般公式为:
对于4参数仿射运动模型,样本位置(x,y)处的运动矢量如下推导:
对于6参数仿射运动模型,样本位置(x,y)处的运动矢量如下推导:
其中,(mv0x,mv0y)是左上顶点控制点的运动矢量,(mv1x,mv1y)是右上顶点控制点的运动矢量,(mv2x,mv2y)是左下顶点控制点的运动矢量;其中,W是块的宽度,H是块的高度。
对于使用6参数仿射运动模型的情况:
/>
对于使用4参数仿射运动模型的情况:
dVerX=-dHorY, (1-10)
dVerY=dHorX。 (1-11)
对于平移运动帧间预测,也有两种仿射运动帧间预测模式:仿射融合模式和仿射AMVP模式。
基于块的仿射变换预测
为了简化运动补偿预测,使用了基于块的仿射变换预测。为了推导每个8×8亮度子块的运动矢量,根据上述公式计算如图7所示的每个子块的中心样本的运动矢量,并四舍五入到1/16分数精度。然后,使用运动补偿插值滤波器利用推导的运动矢量来生成每个子块的预测。色度分量的子块尺寸设置为4×4。
增强型双线性插值滤波器
使用增强型双线性插值滤波器(EIF)的滤波可以用于预测块和子块。亮度信号和色度信号的滤波过程相同。滤波过程包括以下步骤:
E1.根据公式(1-1)从CPMV推导基于像素的运动矢量场;
E2.根据推导的运动矢量获取插值样本,对分数偏移使用双线性插值;
E3.使用归一化系数为8的固定的3抽头高通滤波器[-1,10,-1]进行水平滤波,然后进行垂直滤波。
前两个步骤E1和E2是针对(W+2)×(H+2)区域执行的,其中,相应地,W和H是预测块的宽度和高度。从每个边界添加一个像素裕量,以应用第三步骤E3的3抽头滤波器。图8示出了EIF的中间步骤中使用的原始仿射块和对应的(W+2)×(H+2)块。
内存带宽计算
内存带宽计算为参考块区域与当前块区域的比。例如,对于使用具有T个抽头的插值滤波器的8×8双向预测块,参考区域值Sr等于2(8+T-1)(8+T-1),块区域Sb等于8×8。因此,内存带宽为对于ITU-T H.265、VVC和EVC中使用的8抽头离散余弦变换插值滤波器(discrete cosine transform interpolation filter,DCTIF),内存带宽为/>
与ITU-T H.265相比,利用最小子块尺寸8×8的子块仿射运动补偿预测(如EVC中使用的)不会增加内存带宽,因为8×8双向预测块代表了ITU-T H.265在内存带宽计算方面的最坏情况。在使用EIF对仿射块进行运动补偿的情况下,一些仿射运动模型参数的内存带宽可以大于ITU-T H.265的最坏情况。本申请的实施例提供了运动模型约束,其保证EIF的内存带宽不大于ITU-T H.265(8×8双向预测块)的内存带宽计算的最坏情况。此外,还可以获取任何期望的内存带宽最坏情况的仿射运动模型约束。
实施例1
使用EIF时仿射块的内存访问消耗计算
当EIF用于尺寸为W×H的仿射块的运动补偿时,执行以下步骤以进行内存访问消耗计算。
1.推导仿射块的每个顶点样本的位置。
2.推导EIF的步骤3中使用的块(表示为EIF中间块)的每个顶点样本的位置。
3.推导EIF中间块的每个顶点样本的运动矢量。
E4.推导参考图像中的变换块的位置。
E5.推导变换块的边界框尺寸。
E6.根据变换块的尺寸和滤波器长度获取内存访问消耗(EIF使用双线性插值,因此滤波器长度等于2)。
这些步骤的实施细节描述如下。
步骤1:推导仿射块的每个顶点样本的位置
将(x0,y0)表示为仿射块的左上样本的坐标。然后,仿射块的位置可以通过其顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标描述:
步骤2:推导EIF中间块的每个顶点样本的位置
在EIF的步骤E2处,对尺寸为(W+2)×(H+2)的块执行双线性插值(从每个边界添加一个像素裕量)。该块也可以称为(W+2)×(H+2)块。此(W+2)×(H+2)块表示为中间EIF块。中间EIF块顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标为:
图8示出了仿射块和中间EIF块的顶点的坐标。
步骤3:推导EIF中间块的每个顶点样本的运动矢量
运动矢量根据公式(1-1)推导。在一些示例中,运动矢量限幅可用于保证不使用当前图像之外的具有一个CTU尺寸裕量的样本。
步骤4:推导参考图像中的变换块的位置
将矢量Vi的水平部分和垂直部分分别表示为Vix和Viy
参考图像中的变换块的位置可以通过其顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标描述:
步骤5:推导变换块的边界框尺寸
参考图像中变换块的边界框尺寸可以通过以下公式计算,其中,max函数返回参数的最大值,min函数返回参数的最小值:
图9示出了参考图像中的变换块的位置和对应的边界框。
在一个示例中,W′=Ceil(W′),H′=Ceil(H′)在公式(2-5)之后执行。
在另一个示例中,W′=Floor(W′),H'=Floor(H′)在公式(2-5)之后执行。
步骤6:获取内存访问消耗
一个参考图像中仿射块的内存访问消耗可以通过变换块的边界框尺寸和仿射运动块的MC插值滤波器的长度T′(例如2、4、6、8……)来决定:
Mem=(W′+T′-1)*(H′+T′-1) (2-6)
对于EIF,使用双线性插值,因此滤波器长度为2,内存访问消耗为:
Mem=(W′+1)*(H′+1) (2-7)
EIF的仿射运动模型限制
目标最坏情况内存带宽表示为其中,W和H分别是当前块的宽度和高度,Swc是根据目标情况内存带宽的当前块的最大允许内存访问消耗。为了保证EIF内存带宽不大于目标情况内存带宽,仿射块的内存访问消耗应限制为以下条件:
(W′+1)*(H′+1)≤T*W*H (2-8)
(W′+1)*(H′+1)≤Swc
值T可以在编码器和解码器中预定义,也可以在编解码器视频序列的参数集(序列级别参数集、图像级别参数集、条带级别参数集等)中指定。
在一个示例中,如果每个样本的最大允许内存访问消耗定义为4×4块的内存访问消耗,则T可以如下推导,其中,T是插值滤波器的长度:
对于T'等于6,限制如下:
(W′+1)*(H′+1)≤(4+6-1)*(4+6-1) (2-10)
在另一个示例中,如果每个样本的最大允许内存访问消耗定义为8×8块的内存访问消耗,则T可以如下推导,其中,T是插值滤波器的长度:
/>
在另一个示例中,根据当前块的预测方向,每个样本的最大允许内存访问消耗可以不同,即:当对当前块进行单向预测时,使用阈值TUNI,当对当前块进行双向预测时,使用阈值TBI
例如,TUNI定义为4×4块的内存访问消耗,TBI定义为8×4块的内存访问消耗,则:
在另一个示例中,TUNI定义为4×4块的内存访问消耗,TBI定义为8×8块的内存访问消耗,则:
上面示例中的T'是用于平移运动块的运动补偿(motion compensation,MC)插值滤波器的长度,例如2、4、6、8……
T、TUNI和TBI的值可以取决于当前块的宽度和高度。
对于双向预测仿射块,上述约束分别应用于list0和list1。
在另一个示例中,list0和list1的内存访问消耗被计算为Mem0和Mem1,并且这些元素的总和受到限制。例如,如果TBI定义为8×8块的内存访问消耗,则使用以下限制:
Mem0+Mem1≤2*(8+T′-1)*(8+T′-1) (2-16)
如果仿射块的运动矢量不能遵循约束条件(2-8),则块不能使用EIF运动补偿。
在一个示例中,如果仿射块不能使用EIF运动补偿,则使用利用最小子块尺寸8×8的子块运动补偿代替EIF。
在另一个示例中,如果仿射块不能使用EIF运动补偿,则使用利用为仿射块的中心计算的运动矢量的平移运动补偿代替EIF。
在另一个示例中,如果仿射块不能使用EIF运动补偿,则在这些不等式(2-8)成立时,根据W′和H′推导边界框。例如,W′和H′可以计算为:
之后,在EIF中根据公式(1-1)计算MV时,运动矢量的水平部分被限幅到范围[mv0x,mv0x+W′-1],运动矢量的垂直部分被限幅到范围[mv0y,mv0y+H′-1]。在一个示例中,如果块宽高比为k(即,W=kH),则H′通过求解以下公式来计算:
k(H′)2+(k+1)H′+1-TWH=0
执行以下步骤:H′=Floor(H′),W'=kH′。
实施例2
使用EIF时仿射块的内存访问消耗计算
实施例1和实施例2之间的区别在于,在实施例2的上下文中,假定EIF运动补偿是逐个子块执行的,并且子块尺寸为W×H。在一个示例中,W等于H。在一个示例中,W=4,H=4。在一个示例中,W=8,H=8。
内存访问消耗计算的步骤如下。
1.推导W×H子块的每个顶点样本的位置。
2.推导EIF的步骤E3中使用的子块(表示为EIF中间子块)的每个顶点样本的位置。
3.推导EIF中间子块的每个顶点样本的运动矢量。
4.推导参考图像中的变换子块的位置。
5.推导变换子块的边界框尺寸。
6.根据变换子块尺寸和滤波器长度的边界框尺寸获取内存访问消耗(EIF使用双线性插值,因此滤波器长度等于2)。
这些步骤的实施细节描述如下。
步骤1:推导仿射子块的每个顶点样本的位置
将(x0,y0)表示为仿射块的左上样本的坐标。在本实施例中,对于内存访问消耗计算,假设仿射子块的左上样本的坐标为(1,1)。位置(x0,y0)对于内存访问消耗计算没有意义,如果(x0,y0)=(1,1),公式就更简单了。
然后,仿射子块的位置可以通过其顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标描述:
步骤2:推导EIF中间子块的每个顶点样本的位置
由于EIF在步骤E3使用3抽头滤波器,因此在EIF的步骤2对尺寸为(W+2)×(H+2)的子块执行双线性插值(从每个边界添加一个像素裕量)。该子块也可以称为(W+2)×(H+2)子块。这里,W×H是仿射块(仿射子块)尺寸。此(W+2)×(H+2)子块表示为中间EIF子块。中间EIF块顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标为:
图8示出了仿射子块和中间EIF子块的顶点的坐标。EIF中间块的每行长度为(W+2)。
步骤3:推导EIF中间子块的每个顶点样本的运动矢量
初始运动矢量(mv0x,mv0y)对于内存访问消耗计算没有意义,如果(mv0x,mv0y)=(dHorX+dVerX,dHorY+dVerY),则公式就更简单了。
运动矢量根据公式(1-1)推导。
步骤4:推导参考图像中的变换块的位置
参考图像中的变换块的位置可以通过其顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标描述:
步骤5:推导变换子块的边界框尺寸
参考图像中变换子块的边界框尺寸可以通过以下公式计算,其中,max函数返回参数的最大值,min函数返回参数的最小值:
图9示出了参考图像中的变换子块的位置和对应的边界框。
在一个示例中,W′=Ceil(W′),H′=Ceil(H′)在公式(3-5)之后执行。
在另一个示例中,W′=Floor(W′),H′=Floor(H′)在公式(3-5)之后执行。
步骤6:获取内存访问消耗
一个参考图像中仿射子块的内存访问消耗可以通过变换子块尺寸的边界框尺寸和仿射运动块T'的MC插值滤波器的长度(例如2、4、6、8……)来决定:
Mem=(W′+T′-1)*(H′+T′-1)
对于EIF,使用双线性插值,因此滤波器长度为2,内存访问消耗为:
Mem=(W′+1)*(H′+1)
EIF的仿射运动模型限制
目标最坏情况内存带宽表示为其中,W和H分别是当前子块的宽度和高度,Swc是根据目标情况内存带宽的当前子块的最大允许内存访问消耗。为了保证EIF内存带宽不大于目标情况内存带宽,EIF子块的内存访问消耗应限制为以下条件:
(W′+1)*(H′+1)≤T*W*H
(W′+1)*(H′+1)≤Swc
值T可以在编码器和解码器中预定义,也可以在编解码器视频序列的参数集(序列级别参数集、图像级别参数集、条带级别参数集等)中指定。
在一个示例中,如果每个样本的最大允许内存访问消耗定义为4×4块的内存访问消耗,则T可以如下推导,其中,T是插值滤波器的长度:
对于T'等于6,限制如下:
(W′+1)*(H′+1)≤(4+6-1)*(4+6-1) (3-10)
在另一个示例中,如果每个样本的最大允许内存访问消耗定义为8×8块的内存访问消耗,则T可以如下推导,其中,T是插值滤波器的长度:
在另一个示例中,根据当前块的预测方向,每个样本的最大允许内存访问消耗可以不同,即:当对当前块进行单向预测时,使用阈值TUNI,当对当前块进行双向预测时,使用阈值TBI
例如,TUNI定义为4×4块的内存访问消耗,TBI定义为8×4块的内存访问消耗,则:
在另一个示例中,TUNI定义为4×4块的内存访问消耗,TBI定义为8×8块的内存访问消耗,则:
上面示例中的T'是用于平移运动块的运动补偿(motion compensation,MC)插值滤波器的长度,例如2、4、6、8……
T、TUNI和TBI的值可以取决于当前块的宽度和高度。
对于双向预测仿射块,上述约束分别应用于list0和list1。
在另一个示例中,list0和list1的内存访问消耗被计算为Mem0和Mem1,并且这些元素的总和受到限制。例如,如果TBI定义为8×8块的内存访问消耗,则使用以下限制:
Mem0+Mem1≤2*(8+T′-1)*(8+T′-1) (3-16)
在本示例中,如果仿射块的运动矢量不能遵循约束条件(3-8),则块不能使用EIF运动补偿。
在一个示例中,如果仿射块不能使用EIF运动补偿,则使用利用最小子块尺寸8×8的子块运动补偿代替EIF。
在另一个示例中,如果仿射块不能使用EIF运动补偿,则使用利用为仿射块的中心计算的运动矢量的平移运动补偿代替EIF。
在另一个示例中,如果仿射块不能使用EIF运动补偿,则在这些不等式(3-8)成立时,根据W′和H′推导边界框。例如,W′和H′可以计算为:
之后,在EIF中根据公式(1-1)计算MV时,运动矢量的水平部分被限幅到范围[mv0x,mv0x+W′-1],运动矢量的垂直部分被限幅到范围[mv0y,mv0y+H′-1]。在一个示例中,如果块宽高比为k(即,W=kH),则H′通过求解以下公式来计算:
k(H′)2+(k+1)H′+1-TWH=0
执行以下步骤:H′=Floor(H′),W′=kH′。
在MPEG-5/EVC中使用实施例2的示例
在本示例中,EIF子块尺寸等于4×4。dX[0]对应于dHorX,dX[1]对应于dHorY,dY[0]对应于dVerX,dY[1]对应于dVerY。
变量dX[0]、dX[1]、dY[0]、dY[1]的精度为1/512。
……
变量eifSubblockSize设置为4。
变量eifCanBeApplied如下推导:
-eifCanBeApplied设置为TRUE
-数组X[i]、Y[i]如下推导:
-X[0]=0
-X[1]=(eifSubblockSize+1)*(dX[0]+(1<<9))
-X[2]=(eifSubblockSize+1)*dY[0]
-X[3]=X[1]+X[2]
-Y[0]=0
-Y[1]=(eifSubblockSize+1)*dX[1]
-Y[2]=(eifSubblockSize+1)*(dY[1]+(1<<9))
-Y[3]=Y[1]+Y[2]
-变量Xmax设置为X[i]的最大值,其中,i等于0..3
-变量Xmin设置为X[i]的最小值,其中,i等于0..3
-变量Ymax设置为Y[i]的最大值,其中,i等于0..3
-变量Ymin设置为Y[i]的最小值,其中,i等于0..3
-变量W设置为(Xmax-Xmin+(1<<9)-1)>>9
-变量H设置为(Ymax-Ymin+(1<<9)-1)>>9
-如果(W+2)*(H+2)大于81,则变量eifCanBeApplied等于FALSE
……
-如果eifCanBeApplied等于FALSE,则变量sizeSbX和sizeSbY将如下修改:
-sizeSbX=max(8,sizeSbX)
-sizeSbY=max(8,sizeSbY)
图12示出了根据本发明的由译码设备(即编码器或解码器)实现的对视频进行译码的方法。图12中所示的方法是一种在编码器或解码器中实现的用于对视频进行译码的方法,所述编码器或解码器包括用于进行运动补偿的增强插值滤波器(enhancedinterpolation filter,EIF)。图12所示的方法包括:
i)(1601)根据仿射帧间预测确定块的控制点运动矢量(control point motionvector,CPMV),所述块是仿射块或所述仿射块的子块;
ii)(1603)对于预定义子块尺寸,根据所述CPMV的值确定具有所述预定义子块尺寸的子块的参考区域;
iii)(1605)将所述确定的参考区域与预定义阈值进行比较;
iv)(1609)使用EIF进行运动补偿,包括推导所述块的基于像素的运动矢量场;
其中,(1607)如果所述确定的参考区域大于所述阈值,则推导所述块的所述基于像素的运动矢量场还包括运动矢量限幅,
其中,运动矢量限幅范围根据所述块的运动模型和所述块的所述尺寸确定。
图13示出了根据本发明实施例的用于对视频序列进行解码的解码器30。该解码器包括用于进行运动补偿的增强插值滤波器(enhanced interpolation filter,EIF)。该解码器30包括:
第一确定单元3001,用于根据仿射帧间预测确定块的控制点运动矢量(controlpoint motion vector,CPMV),所述块是仿射块或所述仿射块的子块;
第二确定单元3003,用于:对于预定义子块尺寸,根据所述CPMV的值确定具有所述预定义子块尺寸的子块的参考区域;
比较单元3005,用于将所述确定的参考区域与预定义阈值进行比较;
运动补偿单元3007,用于使用EIF进行运动补偿,包括推导所述块的基于像素的运动矢量场;
其中,如果所述确定的参考区域大于所述阈值,则所述运动补偿单元3007用于推导所述块的所述基于像素的运动矢量场还包括运动矢量限幅,
其中,运动矢量限幅范围根据所述块的运动模型和所述块的所述尺寸确定。
图14示出了根据本发明实施例的用于对视频序列进行编码的编码器20。该编码器包括用于进行运动补偿的增强插值滤波器(enhanced interpolation filter,EIF)。该编码器30包括:
第一确定单元2001,用于根据仿射帧间预测确定块的控制点运动矢量(controlpoint motion vector,CPMV),所述块是仿射块或所述仿射块的子块;
第二确定单元2003,用于:对于预定义子块尺寸,根据所述CPMV的值确定具有所述预定义子块尺寸的子块的参考区域;
比较单元2005,用于将所述确定的参考区域与预定义阈值进行比较;
运动补偿单元2007,用于使用EIF进行运动补偿,包括推导所述块的基于像素的运动矢量场;
其中,如果所述确定的参考区域大于所述阈值,则所述运动补偿单元2007用于推导所述块的所述基于像素的运动矢量场还包括运动矢量限幅,
其中,运动矢量限幅范围根据所述块的运动模型和所述块的所述尺寸确定。
下文对上述实施例中所示的编码方法和解码方法的应用以及使用这些方法的系统进行说明。
图10为用于实现内容分发服务的内容供应系统3100的框图。该内容供应系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102与终端设备3106通过通信链路3104进行通信。该通信链路可以包括上述通信信道13。通信链路3104包括但不限于WIFI、以太网、电缆、无线(3G/4G/5G)、USB或者其任何组合等。
捕获设备3102生成数据,并且可以通过如上述实施例所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发给流服务器(图中未示出),服务器对数据进行编码并将编码数据发送给终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备,或它们的任何组合等。例如,捕获设备3102可以包括如以上所描述的源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当数据包括音频(即,语音)时,捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。对于一些实际场景,捕获设备3102通过将编码视频和音频数据复用在一起来进行分发。对于其它实用场景,例如在视频会议系统中,不复用编码音频数据和编码视频数据。捕获设备3102将编码音频数据和编码视频数据分别分发给终端设备3106。
在内容提供系统3100中,终端设备310接收并再现编码数据。终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络录像机(network video recorder,NVR)/数字录像机(digital videorecorder,DVR)3112、TV 3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任何组合,或者能够解码上述编码数据的设备。例如,终端设备3106可以包括如以上所描述的目的地设备14。当编码数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码。当编码数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。
对于带有显示器的终端设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络录像机(network video recorder,NVR)/数字录像机(digital videorecorder,DVR)3112、TV 3114、个人数字助理(personal digital assistant,PDA)3122或车载设备3124,终端设备可以将解码数据馈送到该终端设备的显示器。对于没有显示器的终端设备(例如STB 3116、视频会议系统3118或视频监控系统3120),连接外部显示器3126以接收并显示解码数据。
该系统中的每个设备在进行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。
图11为终端设备3106的一个示例的结构的图。在终端设备3106从捕获设备3102接收流之后,协议处理单元(protocol proceeding unit)3202分析流的传输协议。协议包括但不限于实时流协议(real time streaming protocol,RTSP)、超文本传输协议(hypertext transfer protocol,HTTP)、HTTP直播协议(HTTP live streaming protocol,HLS)、MPEG-DASH、实时传输协议(real-time transport protocol,RTP)、实时消息协议(realtime messaging protocol,RTMP)或其任何组合等。
协议处理单元3202对流进行处理后,生成流文件。将文件输出到解复用单元3204。解复用单元3204可以将复用数据分为编码音频数据和编码视频数据。如以上所描述,对于一些实际场景,例如在视频会议系统中,不复用编码音频数据和编码视频数据。在这种情况下,将编码数据发送到视频解码器3206和音频解码器3208,无需经过解复用单元3204。
通过解复用处理,生成视频基本流(elementary stream,ES)、音频ES和可选的字幕。视频解码器3206包括如上述实施例中所说明的视频解码器30,通过如上述实施例中所示的解码方法对视频ES进行解码以生成视频帧,并将该数据馈送到同步单元3212。音频解码器3208,解码音频ES以生成音频帧,并将该数据馈送到同步单元3212。或者,在将视频帧馈送到同步单元3212之前,可以将该视频帧存储在缓冲区(图Y中未示出)中。类似地,在将音频帧馈送到同步单元3212之前,可以将该音频帧存储在缓冲区(图11中未示出)中。
同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频和音频信息的呈现。可以使用关于译码音频和视频数据的表示的时间戳和关于数据流本身的传递的时间戳在语法中对信息进行译码。
如果流中包括字幕,则字幕解码器3210解码字幕,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以结合到其它系统,例如汽车系统。
数学运算符
本申请中使用的数学运算符与C编程语言中使用的数学运算符类似。但是,这里精确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,如幂次方和实值除法运算。编号和计数规范通常约定从0开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。
算术运算符
以下算术运算符定义如下:
+ 加法
– 减法(用作双参数运算符)或者非运算(用作一元前缀运算符)。
* 乘法,包括矩阵乘法。
xy 幂次方,表示x的y次幂。在其它上下文中,该表示形式也可以用作上标,而不应解释为是幂次方。
/ 向零方向对结果进行截断的整数除法。例如,7/4和-7/-4被截断成1,-7/4和7/-4被截断成-1。
÷ 用来表示数学公式中的除法运算,但没有截断或者四舍五入操作。
用来表示数学公式中的除法运算,但没有截断或者四舍五入操作。
f(i)的和,i取从x到y的所有整数值,包括y。
x%y取模运算,x除y的余数,这里x和y都必须是整数,并且x≥0,y>0。
逻辑运算符
以下逻辑运算符定义如下:
x&&y x和y的布尔逻辑“与”操作
x||y x和y的布尔逻辑“或”操作
! 布尔逻辑“非”
x?y:z 如果x为TRUE或不等于0,则等于y的值;否则,等于z的值。
关系运算符
以下关系运算符定义如下:
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
当关系运算符用于一个已赋值为“na”(不适用)的语法元素或变量时,则将值“na”视为该语法元素或变量的唯一值。值“na”不等于任何其它值。
按位运算符
以下按位运算符的定义如下:
& 按位“与”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它包括的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
| 按位“或”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它包括的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
^ 按位“异或”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它包括的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
x>>y 将x的二的补码整数表示算法右移y个二进制数字。该函数仅针对y的非负整数值定义。右移的结果是移到最高有效位(most significant bit,MSB)的位的值等于移位操作前的x的MSB。
x<<y 将x的二的补码整数表示算法左移y个二进制数字。该函数仅针对y的非负整数值定义。左移的结果是移到最低有效位(least significant bit,LSB)的位的值等于0。
赋值运算符
以下算术运算符定义如下:
= 赋值运算符
++ 递增,即,x++等价于x=x+1;当用于数组索引时,等于递增操作之前变量的值。
-- 递减,即,x--等价于x=x-1;当用于数组索引时,等于递减操作之前变量的值。
+= 按指定数量递增,即,x+=3等价于x=x+3,x+=(-3)等价于x=x+(-3)。
-= 按指定数量递减,即,x-=3等价于x=x-3,x-=(-3)等价于x=x-(-3)。
范围表示法
以下表示法用于指定值的范围:
x=y..z x取从y到z的整数值(包括y和z),其中,x、y和z是整数,并且z大于y。
数学函数
数学函数定义如下:
Asin(x)三角反正弦函数,对参数x进行运算,x在-1.0至1.0的范围内(包括端值),输出值在-π÷2至π÷2的范围内(包括端值),单位为弧度。
Atan(x)三角反正切函数,对参数x运算,输出值在-π÷2至π÷2的范围内(包括端值),单位为弧度。
Ceil(x)表示大于或等于x的最小整数值。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
Cos(x)三角余弦函数,对参数x运算,单位为弧度。
Floor(x)表示小于或等于x的最大整数值。
Ln(x)x的自然对数(以e为底的对数,其中,e是自然对数底数常数2.718281828……)。
Log2(x)以2为底x的对数。
Log10(x)以10为底x的对数。
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Sin(x)三角正弦函数,对参数x进行运算,单位为弧度。
Swap(x,y)=(y,x)
Tan(x)三角正切函数,对参数x进行运算,单位为弧度。
运算优先级顺序
当没有使用括号来显式的表示优先顺序时,则遵循如下规则:
-高优先级的运算在低优先级的运算之前进行。
-相同优先级的运算从左到右依次进行。
下表从最高到最低的顺序说明运算的优先级,在表中的位置越高,优先级也越高。
如果在C编程语言中也使用这些运算符,则本文中采用的优先级顺序与C编程语言中采用的优先级顺序相同。
表:运算优先级从最高(表格顶部)到最低(表格底部)进行排序
逻辑运算的文字描述
文本中,逻辑运算中的语句以数学形式描述如下:
可以通过如下方式进行描述:
……如下/……以下为准:
-如果条件0,则语句0
-否则,如果条件1,则语句1
-……
-否则(剩余条件的提示性说明),则语句n
文本中的每个“如果……否则,如果……否则,……”语句由“……如下”或“……以下为准”(后面紧跟着“如果……”)引入。最后一个条件“如果……否则,如果……否则,……”总有一个“否则,……”。插入的“如果……否则,如果……否则,……”语句可以通过匹配“……如下”或“……以下为准”,以“否则,……”结尾来识别。
文本中,逻辑运算中的语句以数学形式描述如下:
可以通过如下方式进行描述:
……如下/……以下为准:
-如果以下所有条件都为真,则语句0:
-条件0a
-条件0b
-否则,如果以下一个或多个条件为真,则语句1:
-条件1a
-条件1b
-……
-否则,语句n
文本中,逻辑运算中的语句以数学形式描述如下:
可以通过如下方式进行描述:
如果条件0,则语句0
如果条件1,则语句1。
尽管本发明实施例已经主要根据视频译码进行描述,但需要说明的是,译码系统10、编码器20和解码器30(以及对应地,系统10)的实施例以及本文描述的其它实施例也可以用于静止图像处理或译码,即独立于视频译码中任何前面或连续的图像的处理或译码。通常,在图像处理译码限于单个图像17的情况下,可能只有帧间预测单元244(编码器)和344(解码器)不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)可以同样用于静止图像处理,例如残差计算204/304,变换206,量化208,反量化210/310,(逆)变换212/312,分割262/362,帧内预测254/354和/或环路滤波220、320,熵编码270和熵解码304。
编码器20和解码器30等的实施例,以及本文描述的与编码器20和解码器30等有关的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以存储在计算机可读介质中或作为一个或多个指令或代码通过通信介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,对应数据存储介质等有形介质,或包括便于例如根据通信协议将计算机程序从一个地方传输到另一个地方的任何介质的通信介质。在这种方式中,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质或(2)通信介质,例如信号或载波。数据存储介质可以是任何可用介质,可由一个或多个计算机或一个或多个处理器访问以检索用于实现本发明所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存,或可以用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以称为计算机可读介质。例如,如果指令是从网站、服务器或其它远程源通过同轴电缆、光纤电缆、双绞线、数字用户线(digital subscriber line,DSL)或无线技术(例如红外、无线电、微波等)发送的,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外、无线电和微波等)。但是,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它瞬时介质,而是指非瞬时有形存储介质。本文使用的磁盘和光盘包括压缩光盘(compact disc,CD)、激光光盘、光盘、数字通用光盘(digital versatile disc,DVD)、软盘和蓝光光盘,盘通常磁性地再现数据,而光盘则用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(digitalsignal processor,DSP)、通用微处理器、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程逻辑阵列(field programmable logic array,FPGA)或其它等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何上述结构或任何适合于实现本文所描述的技术的任何其它结构。此外,在一些方面中,本文所描述的功能可以在用于编码和解码的专用硬件和/或软件模块中提供,或者结合在组合编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本发明的技术可以在多种设备或装置中实现,包括无线手持电话、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本发明描述各种组件、模块或单元以强调用于执行所公开技术的设备的功能方面,但这些组件、模块或单元不一定要求通过不同的硬件单元实现。相反,如以上所描述,各种单元可以组合在编解码器硬件单元中,或者由包括如以上所描述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。

Claims (27)

1.一种在编码器或解码器中实现的用于对视频进行译码的方法,其特征在于,所述编码器或解码器包括用于进行运动补偿的增强插值滤波器(enhanced interpolationfilter,
EIF),所述方法包括:
i)根据仿射帧间预测确定块的控制点运动矢量(control point motion vector,CPMV),
所述块是仿射块或所述仿射块的子块;
ii)对于所述块的预定义尺寸的子块,根据所述CPMV的值确定所述子块的参考区域;
iii)将所述确定的参考区域的尺寸与预定义阈值进行比较;
iv)使用EIF进行运动补偿,包括从所述CPMV推导所述块的基于像素的运动矢量场;
其中,如果所述确定的参考区域大于所述预定义阈值,则推导所述子块的所述基于像素的运动矢量场还包括运动矢量限幅,
其中,运动矢量限幅范围根据所述子块的运动模型和所述块的所述尺寸确定
其中,使用EIF进行运动补偿还包括:
根据所述推导的运动矢量场,使用T抽头插值滤波器获取参考图像中的插值样本,其中,T是对应于滤波器长度的插值滤波器抽头的数量,其中,T大于零;
将高通滤波器应用于所述插值样本。
2.根据权利要求1所述的方法,其特征在于,使用EIF进行运动补偿还包括:
确定所述块的尺寸;
将所述块的所述尺寸与所述块的所述尺寸的第一阈值进行比较;
其中,当所述块的所述尺寸大于或等于所述块的所述尺寸的所述第一阈值时,对所述块执行基于块的仿射变换预测。
3.根据权利要求2所述的方法,其特征在于,所述块的所述尺寸根据仿射运动模型参数确定。
4.根据权利要求3所述的方法,其特征在于,所述仿射运动模型参数包括所述CPMV的运动矢量差以及所述块的宽度和高度。
5.根据权利要求3或4所述的方法,其特征在于,所述仿射运动模型参数还包括所述CPMV的精度。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述预定义阈值是根据所述预定义尺寸和对应于所述参考图像中的所述子块的所述参考区域与所述子块的区域的预定义比率计算的。
7.根据权利要求6所述的方法,其特征在于,对应于所述参考图像中的所述子块的所述参考区域与所述子块的区域的所述预定义比率对应于所述EIF的内存带宽。
8.根据权利要求6所述的方法,其特征在于,所述预定义阈值是所述块的所述预定义尺寸的最大允许内存访问消耗。
9.根据权利要求3至5中任一项所述的方法,其特征在于,根据所述CPMV的值确定具有所述预定义尺寸的子块的所述参考区域包括:
根据所述高通滤波器的长度,通过从所述子块的每个边界添加像素裕量来确定扩展块;
根据所述CPMV推导所述扩展块的每个顶点的运动矢量;根据所述推导的运动矢量推导所述参考图像中的变换块;
推导所述变换块的边界框;
其中,所述子块的所述参考区域对应于从所述边界框的每个边界扩展(T-1)个像素的边界框,其中,T是对应于滤波器长度的插值滤波器抽头的数量,其中,T大于零。
10.根据权利要求9所述的方法,其特征在于,所述参考图像中的所述变换块的所述边界框的所述尺寸通过以下公式推导,其中,max函数返回参数的最大值,min函数返回参数的最小值:
其中,所述参考图像中的所述变换块的位置通过所述变换块的顶点样本(左上顶点、右上顶点、左下顶点、右下顶点)的坐标描述:
其中,所述W'和H'分别是所述变换块的所述边界框的宽度和高度,W和H分别是所述子块的宽度和高度,dHorX、dHorY、dVerX、dVerY是所述仿射运动模型的水平梯度参数和垂直梯度参数。
11.根据权利要求10所述的方法,其特征在于,
所述边界框的所述尺寸由W'×H'给出;或
所述边界框的所述尺寸由Ceil(W)×Ceil(H)给出;或
所述边界框的所述尺寸由Floor(W)×Floor(H)给出。
12.根据权利要求1-4、7-8、10-11中任一项所述的方法,其特征在于,所述滤波器长度的值是为编码器和解码器预定义的,或在编解码器视频序列的参数集中指定的。
13.根据权利要求12所述的方法,其特征在于,对于4×4子块,所述预定义阈值T由以下公式给出:
其中,T'是用于平移运动块的运动补偿(motion compensation,MC)插值滤波器的长度。
14.根据权利要求13所述的方法,其特征在于,对于8×8子块,所述预定义阈值T由以下公式给出:
其中,T'是用于平移运动块的运动补偿(motion compensation,MC)插值滤波器的长度。
15.根据权利要求14所述的方法,其特征在于,还包括:
计算所述块的中心的运动矢量并执行平移运动补偿。
16.根据权利要求10或11所述的方法,其特征在于,所述增强插值滤波器的所述子块的所述预定义尺寸等于4×4;其中,dX[0]对应于dHorX,dX[1]对应于dHorY,dY[0]对应于dVerX,dY[1]对应于dVerY;其中,根据所述CPMV的值确定具有预定义子块尺寸的子块的参考区域包括:
将变量eifSubblockSize的值设置为4;
如下推导变量eifCanBeApplied:
将eifCanBeApplied的值设置为TRUE;
-如下推导数组X[i]、Y[i]:
-X[0]=0;
-X[1]=(eifSubblockSize+1)*(dX[0]+(1<<9));
-X[2]=(eifSubblockSize+1)*dY[0];
-X[3]=X[1]+X[2];
-Y[0]=0;
-Y[1]=(eifSubblockSize+1)*dX[1];
-Y[2]=(eifSubblockSize+1)*(dY[1]+(1<<9));
-Y[3]=Y[1]+Y[2];
-将变量Xmax的值设置为X[i]的最大值,其中,i等于0..3;
-将变量Xmin的值设置为X[i]的最小值,其中,i等于0..3;
-将变量Ymax的值设置为Y[i]的最大值,其中,i等于0..3;
-将变量Ymin的值设置为Y[i]的最小值,其中,i等于0..3;
-将变量W的值设置为(Xmax-Xmin+(1<<9)-1)>>9的值;
-将变量H的值设置为(Ymax-Ymin+(1<<9)-1)>>9的值。
17.根据权利要求1-4、7-8、10-11、13-15中任一项所述的方法,其特征在于,在所述仿射帧间预测包括双向预测的情况下,约束对称地应用于两个列表。
18.根据权利要求1-4、7-8、10-11、13-15中任一项所述的方法,其特征在于,T等于2,
其中,T是对应于滤波器长度的插值滤波器抽头的数量。
19.根据权利要求1-4、7-8、10-11、13-15中任一项所述的方法,其特征在于,所述预定义阈值等于72。
20.根据权利要求3-4、10-11中任一项所述的方法,其特征在于,运动模型是所述仿射运动模型,运动矢量限幅范围是根据运动模型平均值确定的,所述运动模型平均值是根据所述CPMV确定的。
21.根据权利要求1-4、7-8、10-11、13-15中任一项所述的方法,其特征在于,所述方法还包括:
根据所述参考图像的变换块的边界框的尺寸和所述滤波器长度,确定所述子块的内存访问消耗;
根据所述子块的所述尺寸和所述滤波器长度,确定所述子块的最大允许内存访问消耗;
在满足所述确定的内存访问消耗不大于所述最大允许内存访问消耗的约束时,确定要对所述块执行EIF运动补偿。
22.一种编码器(20),其特征在于,包括处理电路,所述处理电路用于执行根据权利要求1至21中任一项所述的方法。
23.一种解码器(30),其特征在于,包括处理电路,所述处理电路用于执行根据权利要求1至21中任一项所述的方法。
24.一种解码器(30),其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述一个或多个处理器耦合并存储由所述一个或多个处理器执行的指令,其中,当所述一个或多个处理器执行所述指令时,所述指令使所述解码器执行根据权利要求1至21中任一项所述的方法。
25.一种编码器(20),其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述一个或多个处理器耦合并存储由所述一个或多个处理器执行的指令,其中,当所述一个或多个处理器执行所述指令时,所述指令使所述编码器执行根据权利要求1至21中任一项所述的方法。
26.一种非瞬时性计算机可读介质,其特征在于,所述非瞬时性计算机可读介质携带程序代码,当计算机设备执行所述程序代码时,所述程序代码使所述计算机设备执行根据权利要求1至21中任一项所述的方法。
27.一种用于对视频序列进行译码的解码器(30)或编码器(20),其特征在于,包括用于进行运动补偿的增强插值滤波器(enhanced interpolation filter,EIF),所述解码器(30)或编码器(20)分别包括:
第一确定单元(3001,2001),用于根据仿射帧间预测确定块的控制点运动矢量(control point motion vector,CPMV),所述块是仿射块或所述仿射块的子块;
第二确定单元(3003,2003),用于:对于所述块的预定义尺寸的子块,根据所述CPMV的值确定所述子块的参考区域;
比较单元(3005,2005),用于将所述确定的参考区域的尺寸与预定义阈值进行比较;
运动补偿单元(3007,2007),用于使用EIF进行运动补偿,包括从所述CPMV推导所述块的基于像素的运动矢量场;
其中,如果所述确定的参考区域大于所述阈值,则所述运动补偿单元(3007,2007)用于推导所述子块的所述基于像素的运动矢量场还包括运动矢量限幅,
其中,运动矢量限幅范围根据所述块的运动模型和所述子块的所述尺寸确定;
其中,使用EIF进行运动补偿还包括:
根据所述推导的运动矢量场,使用T抽头插值滤波器获取参考图像中的插值样本,其中,T是对应于滤波器长度的插值滤波器抽头的数量,其中,T大于零;
将高通滤波器应用于所述插值样本。
CN202080067504.9A 2019-09-30 2020-09-30 用于减小增强插值滤波器的内存带宽的仿射运动模型限制 Active CN114450958B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
RU2019000691 2019-09-30
RUPCT/RU2019/000691 2019-09-30
US202062958291P 2020-01-07 2020-01-07
US62/958,291 2020-01-07
PCT/RU2020/050258 WO2020256600A2 (en) 2019-09-30 2020-09-30 Affine motion model restrictions for memory bandwidth reduction of enhanced interpolation filter

Publications (2)

Publication Number Publication Date
CN114450958A CN114450958A (zh) 2022-05-06
CN114450958B true CN114450958B (zh) 2023-08-22

Family

ID=74040945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080067504.9A Active CN114450958B (zh) 2019-09-30 2020-09-30 用于减小增强插值滤波器的内存带宽的仿射运动模型限制

Country Status (6)

Country Link
US (1) US20220174326A1 (zh)
EP (1) EP4026333A4 (zh)
JP (1) JP7414127B2 (zh)
CN (1) CN114450958B (zh)
BR (1) BR112022005406A2 (zh)
WO (1) WO2020256600A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220065879A (ko) * 2019-09-30 2022-05-20 후아웨이 테크놀러지 컴퍼니 리미티드 Dct 기반 보간 필터의 사용
US20240098299A1 (en) * 2022-09-21 2024-03-21 Tencent America LLC Method and apparatus for motion vector prediction based on subblock motion vector

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108781284A (zh) * 2016-03-15 2018-11-09 联发科技股份有限公司 具有仿射运动补偿的视频编解码的方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
WO2019013217A1 (ja) * 2017-07-12 2019-01-17 シャープ株式会社 補正装置、撮像装置、補正装置の制御方法、および制御プログラム
US10609384B2 (en) * 2017-09-21 2020-03-31 Futurewei Technologies, Inc. Restriction on sub-block size derivation for affine inter prediction
WO2019069601A1 (ja) * 2017-10-03 2019-04-11 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム
US11172229B2 (en) * 2018-01-12 2021-11-09 Qualcomm Incorporated Affine motion compensation with low bandwidth
KR20210016472A (ko) * 2018-06-25 2021-02-15 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 화면내 예측 방법 및 장치
JP7146086B2 (ja) 2018-11-12 2022-10-03 北京字節跳動網絡技術有限公司 インター予測のためのバンド幅制御方法
US11317111B2 (en) 2019-09-29 2022-04-26 Qualcomm Incorporated Affine coding with vector clipping

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108781284A (zh) * 2016-03-15 2018-11-09 联发科技股份有限公司 具有仿射运动补偿的视频编解码的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
视频编码的技术基础及发展方向;周建同等;《电信科学》;20170820(第08期);全文 *

Also Published As

Publication number Publication date
WO2020256600A2 (en) 2020-12-24
JP2022550032A (ja) 2022-11-30
EP4026333A4 (en) 2022-11-02
BR112022005406A2 (pt) 2022-11-29
US20220174326A1 (en) 2022-06-02
EP4026333A2 (en) 2022-07-13
CN114450958A (zh) 2022-05-06
WO2020256600A3 (en) 2021-03-04
JP7414127B2 (ja) 2024-01-16

Similar Documents

Publication Publication Date Title
AU2020265960A1 (en) An encoder, a decoder and corresponding methods of intra prediction
CN113597761A (zh) 帧内预测方法和装置
CN114450958B (zh) 用于减小增强插值滤波器的内存带宽的仿射运动模型限制
CN114830665B (zh) 仿射运动模型限制
AU2024201152A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
CN113170118B (zh) 视频译码中进行色度帧内预测的方法及装置
CN117896521A (zh) 编码器、解码器及色度帧内模式推导的对应方法
CN114679583A (zh) 视频编码器、视频解码器及对应方法
CN115349257B (zh) 基于dct的内插滤波器的使用
CN114503558B (zh) 插值滤波器在仿射运动补偿中的适应性使用
CN113228632B (zh) 用于局部亮度补偿的编码器、解码器、以及对应方法
CN112868233B (zh) 编码器、解码器及相应的帧间预测方法
CN114930840A (zh) 增强型插值滤波器的运动矢量范围的推导
CN113692740A (zh) 用于无除法帧内预测的方法和装置
CN114424554B (zh) 色度qp偏移表指示和推导的方法和装置
CN114900702B (zh) 降低平面模式的帧内预测的复杂度的编解码器和对应方法
WO2021006773A1 (en) Motion field storage optimization for the line buffer
CN116708797A (zh) 运动信息存储方法及装置
CN114830652A (zh) 用于方向性帧内预测的参考样本插值滤波的方法及装置

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