CN116708780A - 视频图像编码和解码的方法、装置及设备 - Google Patents
视频图像编码和解码的方法、装置及设备 Download PDFInfo
- Publication number
- CN116708780A CN116708780A CN202310699831.1A CN202310699831A CN116708780A CN 116708780 A CN116708780 A CN 116708780A CN 202310699831 A CN202310699831 A CN 202310699831A CN 116708780 A CN116708780 A CN 116708780A
- Authority
- CN
- China
- Prior art keywords
- image block
- length
- affine
- motion compensation
- compensation 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 166
- 230000033001 locomotion Effects 0.000 claims abstract description 1185
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 1055
- 239000013598 vector Substances 0.000 claims abstract description 544
- 230000003247 decreasing effect Effects 0.000 claims description 33
- 230000009466 transformation Effects 0.000 description 82
- 238000012545 processing Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000007906 compression Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/527—Global motion vector estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种视频图像解码的方法,其根据运动矢量差异、运动矢量精度、仿射图像块中的控制点之间的距离以及仿射图像块的尺寸,确定仿射图像块内的仿射运动补偿子图像块的尺寸,其中,所述尺寸包括水平方向的长度,以及竖直方向的长度,以使仿射图像块的在水平/竖直方向的长度为仿射运动补偿子图像块的在水平/竖直方向的长度的整数倍,最后,根据所述仿射运动补偿子图像块的尺寸,对所述仿射图像块进行解码处理。该方法能够根据仿射图像块自身的属性自适应性的将其仿射运动补偿子图像块大小调整到最佳尺寸,即能保证解码的质量,同时能够降低解码的复杂度,有效提升解码效率。
Description
技术领域
本发明涉及视频图像处理领域,尤其涉及视频图像编码和解码的方法、编码装置和解码装置、编码设备和解码设备。
背景技术
随着互联网科技的迅猛发展以及人们物质精神文化的日益丰富,在互联网中针对视频的应用需求尤其是针对高清视频的应用需求越来越多,而高清视频的数据量非常大,要想高清视频能在带宽有限的互联网中传输,必须首先解决的问题就是高清视频压缩编码问题。目前,国际上有两个国际组织专门进行视频编码标准的制定工作,即国际标准化组织(International Organization for Standardization,简称为“ISO”)/国际电工委员会(International Electrotechnical Commission,简称为“IEC”)下的运动图像专家组(Motion Picture Experts Group,简称为“MPEG”)和国际电信联盟电信标准化组(International Telecommunication Union-Telecommunication standardizationsector,简称为“ITU-T”)的视频编码专家组(Video Coding Experts Group,简称为“VCEG”)。成立于1986年的MPEG专门负责制定多媒体领域内的相关标准,主要应用于存储、广播电视、因特网或无线网上的流媒体等。ITU-T则主要制定面向实时视频通信领域的视频编码标准,如视频电话、视频会议等应用。
在过去的几十年里,国际上已经成功制定了面向各种应用的视频编码标准,主要包括:用于影音光碟(Video Compact Disc,简称为“VCD”)的MPEG-1标准,用于竖直多功能光盘(Digital Video Disc,简称为“DVD”)和数字视频广播(Digital VideoBroadcasting,简称为“DVB”)的MPEG-2标准,用于视频会议的H.261标准以及H.263标准、H.264标准,允许对任意形状的对象编码的MPEG-4标准,以及最新的高性能视频编码(HighEfficiency Video Coding,简称为“HEVC”)标准。
当前广泛使用的视频编码标准H.264以及最新的视频编码标准HEVC,均以图像块为基本单元进行各种类型的编码操作,例如基于块的预测、变换、熵编码等等。图像块指一个二维采样点阵列,可以是正方形阵列,也可以是矩形阵列,例如一个4x4大小的图像块可看做4x4共16个采样点构成的方形采样点阵列,如图1所示,其中图像块可以记作B。图像块信号指图像块中采样点的采样值,可以表示为B(x,y),x,y=0...3,其中(x,y)表示图像块中每个采样点的坐标。类似的,图像也可以表示为一个二维采样点阵列,采用与图像块类似的方法标记。此外,采样点还可以称为像素,在本发明文件中将不加区分的使用。
视频序列是由一帧一帧的图像排列组成,通常情况下,产生连续图像的时间间隔很短,图像之间的变化很小,导致连续图像之间的差值很少。因此,可以利用连续图像在时间上的相关性,只编码当前图像与参考图像之间的差值,参考图像通常为时间上邻近的已编码重建图像。从而减少待编码的信息量,达到信号压缩的效果。在视频编码技术中,这类方法称为帧间预测编码技术,该技术被当前视频编码标准广泛采用。图2表示帧间预测编码架构,输入待编码图像,通常为视频中每幅/每帧图像,被划分成不相互重叠的图像块,编码器通过运动估计获得图像块的运动矢量,编码器利用图像块的运动矢量通过运动补偿获得该图像块的运动补偿预测信号。接着使用图像块的原始信号减去运动补偿预测信号,得到预测残差信号。预测残差信号经过变换、量化和熵编码写入码流中。在该编码过程中,获得的图像块的运动补偿预测信号越准确,所得到的预测残差信号就会越小,所需要的编码比特数就越少,图像块的压缩率就越高。
上述运动估计是指使用当前图像块B在参考图像中搜索到一个同样大小且最匹配的图像块B',图像块B相对于B'在空间上的位置偏移称为图像块B的运动矢量。运动补偿是指根据图像块B的运动矢量,从参考图像中获得预测信号的过程。获得的信号称为运动补偿预测信号。
在解码端,对图像块的预测残差信号进行反量化、反变换得到重建残差信号,再根据图像块的运动矢量,通过运动补偿预测从参考图像获取运动补偿预测信号,将图像块的运动补偿预测信号与重建的残差信号相加即可得到图像块的重建信号。
图3表示图像块的划分以及图像块与运动矢量的关系,t时刻的图像A(t)被划分成不同大小且不相重叠的图像块,每个图像块内的箭头示意性的表示编码端所确定的运动矢量,长度和方向表示当前图像块运动的剧烈程度和方向。每个图像块的运动矢量将应用于该图像块中的所有采样点,即图像块中所有采样点将在指定参考图像中根据该运动矢量表示的位置偏移获取其预测信号。
基于块结构的运动补偿预测便于软硬件实现,复杂度低,在计算资源受限的情况下可以提供较好的压缩效率,但是同时也存在一些不足。例如,该方法中用一个运动矢量表示图像块内所有像素点的运动情况,当所有像素点的运动方向和大小都相同时,即平动运动,该方法可以很好表示;当图像块内像素点的运动方向或者大小有不同时,例如缩放和旋转运动,该方法就无法准确表示所有像素点的运动,从而不能得到准确的预测信号,降低压缩性能。
为了改善现有运动补偿预测技术的不足,一种基于线性变化的运动矢量场的运动补偿预测技术被提出来。运动矢量场是指图像块的运动矢量场,图像块被划分成更细致的子单元,子单元可以小到为一个像素点,每个子单元有一个运动矢量,图像块内所有子单元的运动矢量组成了图像块的运动矢量场。图像块的运动矢量场可以是线性变化的,也可以是非线性变化的。图像块的运动矢量场是线性变化的是指图像块内相邻子单元的运动矢量是均匀变化的。若图像块内相邻单元的运动矢量变化不均匀,则图像块的运动矢量场为非线性变化的。本文主要强调基于线性变换的运动矢量场的运动补偿预测技术。在由NaZhang;Xiaopeng Fan;Debin Zhao;Wen Gao,提出的名为"Motion vector derivation ofdeformable block,"Image Processing(ICIP),2012 19th IEEE InternationalConference on,vol.,no.,pp.1549,1552,Sept.30 2012-Oct.3 2012,文献中,提出使用图像块的四个顶点作为控制点,对四个控制点的运动矢量使用双线性插值的方法获得图像块内部每个4x4单元的的运动矢量。图像块四个顶点的运动矢量是根据周围图像块的运动矢量获得的,各个4x4单元的运动矢量组成了图像块的运动矢量场。再根据该运动矢量场,从参考图像中获得图像块的运动补偿预测信号。基于运动矢量场的运动补偿预测技术减小了具有独立运动矢量的单元的大小,可以更准确地表示非平动运动,例如旋转和缩放,可以获得更好的运动补偿预测信号。上述提到的运动矢量场是通过对控制点的运动矢量进行双线性插值得到的,运动矢量场是满足双线性模型的。所述双线性插值是数学上的插值方法,参照图4,具体插值方法介绍如下:
假设需要求解函数f在P=(x,y)的值,已知函数f在点Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),及Q22=(x2,y2)四个点的值。首先在x方向进行线性插值,得到,
然后在y方向进行线性插值,得到,
将公式(1)中的结果代入公式(2)中,即可得到P点的值。根据控制点的运动矢量,使用该插值方法,可以得到图像块内所有点的运动矢量。
该方法中控制点的运动矢量是从周围图像块的运动矢量中选取的,而选取的运动矢量可能不准确,若通过运动估计搜索获得控制点的运动矢量,则需要将控制点的运动矢量写入到码流中,此时就需要更高效的方法,例如用仿射变换模型来表示图像块的运动矢量场,从而提出了基于仿射变换的运动补偿预测技术。
仿射变换表示的是两个空间的映射关系,常见的仿射变换有旋转、缩放和平移。通过仿射变换模型获得的图像块的运动矢量场是线性变化的,且该运动矢量场满足仿射变换。常见的6参数的仿射变换模型可以表示上述三种运动。具体如公式(3)所示,其中(x,y)为像素点P在当前图像中的坐标,(x′,y′)为像素点P在参考图像中匹配的像素点P'的坐标,a,b,c,d,e,f为仿射变换的参数。若已知仿射参数,即可求得像素点(x,y)在参考图像中的位置(x′,y′),从而可以从参考图像中获得像素点的预测信号。
一般仿射参数根据图像块中部分像素点的运动矢量计算得到,运动矢量可表示为公式(4)
将公式(3)代入到(4)中可得,
利用多组已知的运动矢量,例如3组已知的运动矢量,代入上述公式(5)中即可求得各个仿射变换参数的具体值,从而利用公式(3)及公式(4)便能求得图像块内所有点的运动矢量。在实践中,通常是通过运动估计先获得图像块角点(控制点)的运动矢量,再根据角点运动矢量求得仿射变换参数,从而求得图像块内所有像素点的运动矢量。角点的运动矢量如图5所示,(a)表示图像块X,图像块的宽度是w,高度是h,左上角点的坐标为(0,0),运动矢量为右上角点的坐标为(w,0),运动矢量为/>左下角点的坐标为(0,h),运动矢量为/>将上述三个运动矢量/>分别代入到公式5中即可得到如下的6参数仿射变换模型:
图像块三个顶点的运动矢量可以不同,如图(b),图像块在参考图像中的映射关系如虚线所示。在求得图像块内所有点的运动矢量后,根据运动补偿预测获得图像块内所有点的运动补偿预测信号。
上述内容以6参数的仿射变换模型为例,但仿射变换不限于6参数模型,可以是4参数的仿射变换模型-参考公式(7)、(8),2参数的缩放模型-参考公式(9),等等。若图像块选用4参数的仿射变换模型来做运动补偿预测,那么仿射模型未知的参数有4个,使用两组运动矢量即可获得该模型的参数。两组运动矢量可以是图像块某两个角点的运动矢量,也可以是图像块内某两个点的运动矢量。
将公式(3)代入到(7)中可得,
左上角点的坐标为(0,0),运动矢量为右上角点的坐标为(w,0),运动矢量为/>代入到公式(10),则可以得到以左上角和右上角为控制点的运动模型公式:
左上角点的坐标为(0,0),运动矢量为左下角点的坐标为(0,h),运动矢量为/>代入到公式(10),则可以得到以左上角和左下角为控制点的运动模型公式:
相比于最新的视频编码标准HEVC,对于包含旋转、缩放运动的视频帧/图像序列,基于线性变化的运动矢量场的运动补偿预测技术可以显著提高编码性能,如上所述线性变化的运动矢量场包括使用仿射变换产生的运动矢量场,以及使用双线性模型产生的运动矢量场等。以基于仿射变换的运动补偿预测技术为例,在获得图像块的仿射变换参数后,要计算图像块内每个点的运动矢量,根据每个点的运动矢量做运动补偿预测,从而获取每个点的运动补偿预测信号。由于图像块内每个像素点的运动矢量都可能不同,需要根据运动矢量为每个像素点进行不同的操作。基于像素点的运动补偿预测复杂度很高,为了降低编解码的复杂度,相关技术尝试在图像块内再划分子图像块,求得每个子图像块的运动矢量,再获得每个子图像块的运动补偿预测信号。
但是,相关技术中的子图像块的大小是固定的,子图像块的尺寸过小会导致较高的编解码的复杂度,子图像块的尺寸过大会降低编解码性能,从而导致这种高效的编码方法在实践应用中面临极大的限制。
发明内容
本发明提供了一种视频图像解码、编码的方法、解码装置、编码装置、解码设备和编码设备,可以通过选取合适大小的子图像块,以使得整使图像块被划分成多个尺寸相同的子图像块进行处理,从而降低编解码的复杂度,提升编解码性能。
第一方面,提供了一种视频图像解码方法,其包括,确定仿射图像块的运动矢量差异;确定所述仿射图像块的运动矢量精度;根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的水平方向的长度的整数倍,且该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;根据所述仿射运动补偿子图像块的尺寸,对所述仿射图像块进行解码处理。
本发明第一方面提出的视频图像解码方法中,通过所确定的两个参数,即运动矢量差异、该运动矢量精度,结合该仿射图像块中的控制点之间的距离以及该仿射图像的尺寸,自适应地确定出仿射运动补偿子图像块尺寸,使得仿射图像块能够被划分为多个尺寸相同的仿射运动补偿子图像块,从而能够大幅度的降低解码端的复杂度,并提升解码的效率。
基于本发明的第一方面,确定并调整仿射运动补偿子图像块尺寸的过程具体可以是,根据该运动矢量精度与运动矢量差异的第一分量/第二分量的比例对该第一水平/竖直距离进行等比例调整得到该仿射运动补偿子图像块的水平/竖直方向的长度,确定该仿射图像块的水平/竖直方向的长度是否是该仿射运动补偿子图像块的水平/竖直方向的长度的整数倍,若否,则调整该仿射运动补偿子图像块的水平/竖直方向的长度以使该仿射图像块的水平/竖直方向的长度为该仿射运动补偿子图像块的调整后的水平/竖直方向的长度的整数倍。该具体实现方式中,通过该运动矢量精度与运动矢量差异的第一分量/第二分量的比例关系,来调整控制点之间的第一水平/竖直距离从而得到仿射运动补偿子图像块的水平/竖直方向的长度,从而使得仿射运动补偿子图像块的尺寸能够与仿射图像块的运动矢量的精度匹配,在保证解码质量的同时,降低了解码复杂度。
基于本发明的第一方面,调整该仿射运动补偿子图像块的水平/竖直方向的长度以使该仿射图像块的水平/竖直方向的长度为该仿射运动补偿子图像块的调整后的水平/竖直方向的长度的整数倍具体可以是通过则对该仿射运动补偿子图像块的水平/竖直的长度做增加/减少一个或者多个单位长度的调整,接着循环执行上述的方案直至该仿射图像块的水平/竖直方向的长度是该仿射运动补偿子图像块的水平/竖直方向的调整后的长度的整数倍。其中,上述单位长度通常是一个单位像素,即,对该仿射运动补偿子图像块的水平方向的长度做加一/减一的调整。此外,上述调整也可以是对该仿射运动补偿子图像块的水平/竖直方向的长度按照固定的步长做增加/减少的调整,所述的步长为调整值,即,每个循环内对仿射运动补偿子图像块的水平/竖直方向的长度进行调整的基本单位。该步长可以为任意值,通常为上述的一个单位像素,也可以是其他的值2.5个单位像素等。可选地,上述调整中所采用的步长/调整值也可以根据该仿射运动补偿子图像块的水平/竖直的初始长度(即未经过调整的长度)的奇偶性变化,例如,当仿射运动补偿子图像块的水平方向的初始长度为奇数,选择奇数步长,例如,以奇数个单位长度,如一个单位长度为步长进行调整,当仿射运动补偿子图像块的水平方向的初始长度为偶数时,则选择偶数步长,例如,偶数个单位长度的步长。该实施方式能够保证该仿射运动补偿子图像块的水平/竖直的长度能够快速的逼近整除所述仿射图像的水平/竖直的长度的值,从而进一步的降低复杂度。
为了提高效率,节省运算时间,在本发明第一方面提出的解码方法中,可以将该仿射运动补偿子图像块的水平/竖直方向的长度朝向最接近整除该仿射图像块的水平/竖直方向的长度的方向调整;若,该仿射运动补偿子图像块的水平/竖直方向的长度距离与邻近且可整除该仿射图像块的水平/竖直方向的长度的两个相邻的值的距离相等,可以根据编解码端的需求选择朝某一方向调整,例如,如果是要求低延时,此时可以选择朝增加的方向调整,如果要求高质量,则选择朝减小的方向调整。
当确定该仿射图像块的水平/竖直方向的长度不是该仿射运动补偿子图像块的水平/竖直方向的长度的整数倍时,为了更进一步的简化算法,可以在编解码端分别建立相同的表格,以允许的最小整除数,如,2N为起始值,将仿射图像块水平/竖直方向的可能的最大长度划分为多个区间,区间的跨度为2N+i,i∈(0,(log2W max)-1),Wmax为仿射图像块水平/竖直方向的可能的最大长度。确定该仿射运动补偿子图像块的水平/竖直方向的长度所在的区间,以该仿射运动补偿子图像块的水平/竖直方向的长度所在的区间的下限值或者上限值为最终确定的所述仿射运动补偿子图像块的水平/竖直方向的长度。其上下限值的获取规则可以参照编解码两端约定,可以通过码流明示,或者可以通过四舍五入的方式选择临近的区间上限值或者下限值。通过以上的表格,可以采用根据仿射运动补偿子图像块的水平/竖直方向的初始长度采用查表的方式来确定该仿射运动补偿子图像块的水平/竖直方向的最终长度,从而降低***复杂度并节省及计时间。
可选地,为了进一步降低该方案的计算复杂度,在本发明第一方面提出的解码方法中,除了确定仿射图像块的水平/竖直方向的长度是该仿射运动补偿子图像块的水平/竖直方向的长度的整数倍,还需要确定该仿射运动补偿子图像块的水平/竖直方向的长度是否是便于计算的预定长度S的整数倍,即,确定该仿射运动补偿子图像块的水平/竖直方向的长度是否满足以下两个条件:
(1)仿射图像块的水平/竖直方向的长度是该仿射运动补偿子图像块的水平/竖直方向的长度的整数倍,且
(2)该仿射运动补偿子图像块的水平/竖直方向的长度是预定长度S的整数倍;
若不满足,则调整该仿射运动补偿子图像块的水平/竖直方向的长度以使其满足上述的条件(1)和条件(2),即,该仿射图像块的水平/竖直方向的长度为该仿射运动补偿子图像块的调整后的水平/竖直方向的长度的整数倍,且该仿射运动补偿子图像块的调整后的水平/竖直方向的长度是该预设长度的整数倍。预设长度S通常取4,也可以取8、16、32等数值,或者,S等于2n,n为零或者正整数,需要说明的是S的取值不应大于仿射图像块自身的尺寸。本方案对于任意形状的仿射图像块均适用,若仿射图像块是采用四叉树(Qual Tree)规则划分模式下的情况下,或者仿射图像块的尺寸为2Nx2N,即正方形,由于上述判断条件(1)(2)中任一个条件的满足即可以同时满足另外一个条件,因此,仅需要保留一其中一个判定条件即可。上述条件(1)以及条件(2)是否满足的判断顺序以及依据判断结果对仿射运动补偿子图像块的水平/竖直方向的长度进行调整的顺序可以任意交换。
在本发明第一方面提出的解码方法中,为了避免出现该仿射运动补偿子图像块尺寸非法,即小于允许的最小尺寸,而大于仿射图像块自身的尺寸,可以选择对上述方式确定的该仿射运动补偿子图像块的水平/竖直方向的长度需要进行限幅操作,即通过比较的方式使的该仿射运动补偿子图像块的水平/竖直方向的长度位于下限Tm/Tn以及上限W/H之间,Tm/Tn为预设值,通常为4,W/H为仿射图像块的在水平/竖直方向的长度。
进一步的,发明第一方面提出的解码方法中适用于三控制点的仿射变换模型以及两控制点的仿射变换模型,在三控制点的仿射变换模型中,其需要独立获取该仿射运动补偿子图像块的竖直以及水平方向的长度,并对其进行独立的调整,对应的,在两控制点的仿射变换模型中,其仅需要其需要独立获取该仿射运动补偿子图像块的水平或竖直方向的长度,进而推到另外一个方向上的长度,并需要时对两个方向上的长度进行独立的调整。当仿射图像块的尺寸为2Nx2N的规则方形时,因为其水平方向和竖直方向的长度相同,则只需要对其水平或者竖直方向长度中的一个进行确定及调整即可。
第二方面,提供了一种视频图像编码方法,其主要包括:确定仿射图像块的运动矢量差异;确定所述仿射图像块的运动矢量精度;根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的水平方向的长度的整数倍,且该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;根据所述仿射运动补偿子图像块的尺寸,对所述仿射图像块进行编码处理。
本发明第二方面提供的视频图像编码方法,通过所确定的两个参数,即,该运动矢量差异、该运动矢量精度,结合该仿射图像块中的控制点之间的距离以及该仿射图像的尺寸,自适应地确定出仿射运动补偿子图像块尺寸,使得仿射图像块能够被划分为多个尺寸相同的仿射运动补偿子图像块,从而能够大幅度的降低编码端的复杂度,并提升编码的效率。本发明第二方面的视频图像编码方法与本发明第一方面的视频图像解码方法除了最后一个步骤不同之外,其核心步骤,即确定仿射运动补偿子图像块尺寸以及调整仿射运动补偿子图像块尺寸的方法步骤完全相同,因此,本第一方面的视频图像解码方法中的方案可以完全适用于本发明第二方面的视频图像编码方法,具体请参照前述对第一方面的视频图像解码方法的介绍。
第三方面,提供了一种视频图像解码装置,其主要包括:运动矢量差异确定模块,用于确定仿射图像块的运动矢量差异;运动矢量精度确定模块,用于确定所述仿射图像块的运动矢量精度;子图像块尺寸确定模块,用于根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的水平方向的长度的整数倍,且该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;解码模块,用于根据所述仿射运动补偿子图像块的尺寸,对所述仿射图像块进行解码处理。
本发明第三方面提供的一种视频图像解码装置与本发明第一方面提供的视频图像解码方法对应,具备实现发明第一方面提供的视频图像解码方法中的所有步骤的功能,且能够具有同样的技术效果,即大幅度的降低解码端的复杂度,并提升解码的效率。
第四方面,提供了一种视频图像编码装置,其主要包括:运动矢量差异确定模块,用于确定仿射图像块的运动矢量差异;运动矢量精度确定模块,用于确定所述仿射图像块的运动矢量精度;子图像块尺寸确定模块,用于根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的水平方向的长度的整数倍,且该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;编码模块,用于根据所述仿射运动补偿子图像块的尺寸,对所述仿射图像块进行编码处理。
本发明第四方面提供的一种视频图像编码装置与本发明第二方面提供的视频图像编码方法对应,具备实现发明第二方面提供的视频图像编码方法中的所有步骤的功能,且能够具有同样的技术效果,即大幅度的降低编码端的复杂度,并提升编码的效率。
第五方面,提供了一种视频图像解码设备,其包括处理器以及非易失性存储器,所述处理器调用存储在所述存储器中的程序代码以实现本发明第一方面提供的所述的解码方法。
第六方面,提供了一种视频图像编码设备,其包括处理器以及非易失性存储器,所述处理器调用存储在所述存储器中的程序代码以实现第二方面提供的所述的编码方法。
于上述技术方案,本发明实施例的视频图像编码和解码的方法、编码装置和解码装置、编码设备和解码设备,通过所确定的两个参数,即,该运动矢量差异、该运动矢量精度,并结合该仿射图像块中的控制点之间的距离以及该仿射图像的尺寸,自适应地确定出仿射运动补偿子图像块尺寸,从而使得仿射图像块能够被划分为多个尺寸相同的仿射运动补偿子图像块,降低编解码的复杂度,提升编解码性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是为视频图像编码过程中的图像块示意图;
图2是为视频图像编码的基本流程示意图;
图3是为视频图像编码过程中图像块的划分以及图像块与运动矢量的关系示意图;
图4是采用双线性插值获取图像块的运动矢量场的示意图;
图5是采用仿射变换模型获取图像块的运动矢量场的示意图;
图6是实施本发明实施例提供的解码方法的视频解码器的框架示意图;
图7是根据本发明实施例的视频图像解码方法的示意性流程图;
图8是根据本发明实施例的仿射图像块及控制点的示意图;
图9是根据本发明实施例的仿射图像块及控制点的另一示意图;
图10是根据本发明实施例的仿射图像块中三个不重合像素点的示意图;
图11是根据本发明实施例的仿射图像块的再一示意图;
图12是根据本发明实施例的视频图像解码方法的另一示意性流程图;
图13是根据本发明实施例的视频图像解码方法的再一示意性流程图;
图14是根据本发明实施例的视频图像编码方法的示意性流程图;
图15是根据本发明实施例的视频图像编码方法的另一示意性流程图;
图16是根据本发明实施例的视频图像编码的方法的再一示意性流程图;
图17是根据本发明实施例的解码装置的示意性框图;
图18是根据本发明实施例的编码装置的示意性框图;
图19是根据本发明实施例的解码设备的示意性框图;
图20是根据本发明实施例的编码设备的示意性框图。
具体实施方式
本发明的目的在于能够保持仿射变换运动补偿预测性能的前提下,降低编解码复杂度,使得该方法可以有效的投入到实际应用中。本文中将独立具有仿射变换参数的图像块称为仿射图像块,即Affine块。把仿射图像块内部划分出来进行运动补偿预测的子图像块称为仿射运动补偿子图像(Affine Motion Compensation,简称为“Affine-MC”),记为Affine-MC块。本发明提出的技术方案是将Affine块根据编码/解码需求自适应的划分多个具有相同尺寸Affine-MC块,具体方法是根据Affine块的运动矢量精度,Affine块的运动矢量、以及Affine块的控制点之间的距离,自适应的将Affine块划分成满足要求的Affine-MC块。
以下以解码端为例,通过具体的实施例来说明本发明的方案。
解码端通常以解码器作为实施解码方法主体对已编码视频码流进行解码重建,解码器的基本逻辑结构如图6所示,视频解码器60包含熵解码单元650、预测处理单元652、逆量化单元654、逆变换处理单元656、重建单元658、滤波器单元659及解码图像缓冲器660。预测处理单元652包含运动补偿单元662及帧内预测处理单元664。熵解码单元650包含规则CABAC编解码引擎666及旁通编解码引擎668。在其它实例中,视频解码器60可包含更多、更少或不同的功能组件。
视频解码器60的基本工作流程为,在接收到已编码的视频码流(下文简称码流)之后,熵解码单元650解析所述码流以从所述码流中提取语法元素,其中,作为解析码流的一部分,熵解码单元650可解析码流中的经熵编码后的语法元素。预测处理单元652、逆量化单元654、逆变换处理单元656、重建单元658及滤波器单元659可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。语法元素可包含经规则CABAC编解码二进制码字及经旁通编解码二进制码字。熵解码单元650可使用规则CABAC编解码引擎666来解码经规则CABAC编解码二进制码字,且可使用旁通编解码引擎668来解码经旁通编解码二进制码字。
预测处理单元652包括了运动补偿单元662以及帧内预测处理单元664。当待解码的图像块使用帧间预测编码,运动补偿单元662可根据待解码的图像块运动信息来确定一个或多个参考块,并根据参考块来产生待解码的图像块的预测性像素块。当待解码的图像块使用帧内预测编码,则由帧内预测处理单元664执行帧内预测以产生图像块的预测性像素块。帧内预测处理单元664可使用帧内预测模式以基于空间相邻图像块的像素产生待解码图像块的预测性像素块。
经过预测处理单元652所获取的预测性像素块与经过逆量化单元654以及逆变换处理单元656处理的待解码图像块的残差数据在重建单元658处重建,从而得到待解码的图像块的重建图像块,将由多个图像块构成的一帧图像在滤波器单元659内进行滤波之后存储在解码图像缓冲器660内从而完成对已编码视频码流的解码,存储在解码图像缓冲器660内的解码图像可以直接输出至显示设备进行显示,也可以用于作为后续码流的解码过程中的参考图像。
本发明的技术方案是应用于运动补偿单元662进行运动补偿预测解码过程中,示例性的解码流程如图7所示。需要说明的是本发明中的解码方法和编码方法总体一致,解码方法是编码方法的逆过程,虽然下述以解码方法为例,但是该方法除了明确说明以外和编码方法基本相同。因此,在下述描述的解码过程中,出现编码相关的解释说明并不构成方案的冲突或者不一致。
图7示出了根据本发明实施例的视频图像编码的方法的示意性流程图,具体地,如图7所示,方法700包括:
S710,确定仿射图像块的运动矢量差异;
S720,确定该仿射图像块的运动矢量精度;
S730,根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的水平方向的长度的整数倍,且该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;
S740,根据该仿射运动补偿子图像块的尺寸,对该述仿射图像块进行解码处理。
具体而言,解码/编码设备根据确定的控制点,确定仿射图像块的运动矢量差异,并确定该仿射图像块的运动矢量精度,根据确定的运动矢量差异、运动矢量精度和控制点之间的距离以及仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该仿射运动补偿子图像块的尺寸即为该仿射图像块的划分尺寸;基于该划分尺寸,所述仿射图像块被划分为多个具有相同尺寸的仿射运动补偿子图像块,然后基于该仿射运动补偿子图像块对所述仿射图像块进行解码。需要说明的是,通常情况下仿射图像块为规则的矩形或者正方形,而对应的仿射运动补偿子图像块也为规则的矩形或者正方形,因此,当确定了仿射运动补偿子图像在水平方向的长度以及竖直方向的长度之后,即能确定该仿射运动补偿子图像的整体尺寸。其中,水平方向以及竖直方向为本领域惯常采用的用于定位视频图像中的图像块/仿射图像块的位置的参考坐标系,其中水平方向通常代表规则的长方形视频图像的长边所在方向,而竖直方向通常代表规则的长方形视频图像的短边所在的方向,其中水平方向与竖直方向相互垂直;为了不失通用性,所述的水平方向可以用第一方向替代,而竖直方向可以用垂直于第一方向的第二方向替代,但是为了说明的简便起见,本文中采用水平方向以及竖直方向来描述。此外,本文中解码方法中所提到的“解码仿射图像块”指的是从码流中解析编码数据并以仿射图像块为基本单元对编码图像进行重建及恢复的过程,并不能因为使用“解码仿射图像块”而认为该仿射图像块已经重建完成。
运动补偿单元662通过运行本发明实施例的视频图像解码的方法,利用确定的仿射图像块的运动矢量差异、运动矢量精度和控制点之间的距离以及仿射图像块的尺寸,确定仿射运动补偿子图像块的尺寸,根据该仿射运动补偿子图像块的尺寸将该仿射图像块划分成多个大小一致的仿射运动补偿子图像之后进行解码处理,由此,在解码过程中能够根据上述参数的变化而自适应的选取合适大小的仿射运动补偿子图像块,降低解码的复杂度并提高了性能。
应理解,在本发明实施例中,该仿射图像(Affine)块为图像块内所有单元的运动矢量符合相同的仿射模型,例如,同一个仿射模型,并可以用相同的参数,又或者是同一组参数来表示的图像块。其中单元是指一组像素,例如,可以是一个像素点,也可以是1×3,2×4等的块结构,本发明对此不作限定。此外,在本发明实施例中,可以选择任意不重合的像素点作为控制点来确定Affine块的运动矢量差异,本发明对此不作限定。
优选地,S710包括:
根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量;和/或
根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量;
其中,该第一控制点与该第二控制点之间具有第一水平距离,该第三控制点与该第四控制点之间具有第一竖直距离。需要说明的是,上述步骤S710中所包含的方案中的“和/或”具体表示了如下三种不同的技术方案:
方案1:基于三控制点的仿射图像块的运动矢量差异确定方法;其包括:
根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量,以及,根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量。
方案2:基于水平方向两控制点的仿射图像块的运动矢量差异确定方法;其包括:根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量。
方案3:基于竖直方向两控制点的仿射图像块的运动矢量差异确定方法:其包括:根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量。
应理解,在本发明实施例中,该运动矢量差异的第一分量指该运动矢量差异的水平分量,该运动矢量差异的第二分量指该运动矢量差异的竖直分量,在方案1中,该运动矢量差异的第一分量和该运动矢量差异的第二分量共同体现仿射图像块的运动矢量差异,而在方案2及方案3中,该运动矢量差异的第一分量及该运动矢量差异的第二分量分别独立的体现仿射图像块的运动矢量差异。换句话说,即,在方案1种,仿射图像块的运动矢量差异包括运动矢量差异的第一分量和该运动矢量差异的第二分量;在方案2中,仿射图像块的运动矢量差异包括运动矢量差异的第一分量;在方案3中,仿射图像块的运动矢量差异包括运动矢量差异的第二分量。还应理解,在本发明实施例中,第一、第二、第三和第四只是为了区分像素点,而不应该对本发明的保护范围构成任何限定,例如,第一控制点也可以称为第二控制点,第二控制点可以成为第一控制点等。
在本发明实施例中,可选地,该第一控制点和该第三控制点为同一个像素点,也就是说,选取的控制点的个数为3个,并且3个控制点中的一个控制点与其他2个控制点中的一个控制点位于同一水平线上,与其他2个控制点中的另一个控制点位于同一竖直线上。
在本发明实施例中,可选地,该第一控制点、该第二控制点、该第三控制点和该第四控制点为该Affine块的顶点,假设一个Affine块的4个顶点分别标记为左上角顶点、左下角顶点、右上角顶点和右下角顶点,则:
在前述方案1中,可以选择位于两个正交方向上的任意三个顶点来确定该Affine块的运动矢量差异,例如,可以选择左上角顶点、左下角顶点和右上角顶点,可以选择左上角顶点、右上角顶点和右下角顶点;
在前述方案2中,可以选择位于同一水平线上的任意两个顶点来确定该Affine块的运动矢量差异,例如,可以选择左上角顶点和右上角顶点,或者选择左下角顶点和右下角顶点;
在前述方案3中,可以选择位于同一竖直线上的任意两个顶点来确定该Affine块的运动矢量差异,例如,可以选择左上角顶点和左下角顶点,或者选择右上角顶点和右下角顶点;本发明对此不作限定。
在本发明实施例中,可选地,可以将第一控制点与第二控制点的运动矢量的两个方向(水平方向、竖直方向,或者成为,x方向,y方向)上的分量中任意一个方向上的分量的差值确定为该Affine块的运动矢量差异的第一分量,可以将第三控制点与第四控制点的运动矢量的两个方向上的分量中任意一个方向上的分量的差值确定为该Affine块的运动矢量差异的第二分量,该运动矢量差异的确定方式适用于前述的方案1、2、3;还可以根据实际对编码复杂度和编码性能的要求,选择介于第一控制点与第二控制点的运动矢量的两个方向上的分量的两个差值之间的数值确定为该第一分量,选择介于第三控制点与第四控制点的运动矢量的两个方向上的分量的两个差值之间的数值确定为该第二分量,本发明对此不作限定。
通常,第一控制点至第四控制点中的每一个控制点的运动矢量均包含有两分量,即水平分量及竖直分量,因此,前述步骤中,根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量,以及,根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量,具体可以通过以下的方式来实现:
确定该第一控制点与该第二控制点的运动矢量的第一水平分量差值和第一竖直分量差值,将该第一水平分量差值和该第一竖直分量差值中的最大值确定为该运动矢量差异的第一分量;
相应的,确定该第三控制点与该第四控制点的运动矢量的第二水平分量差值和第二竖直分量差值,将该第二水平分量差值和该第二竖直分量差值中的最大值确定为该运动矢量差异的第二分量。
也就是说,如果用vx(x,y)和vy(x,y)表示位置为(x,y)的像素点的运动矢量的水平分量和竖直分量,则可以根据公式(13)和(14)确定Affine块的运动矢量差异:
Δmvhor=max(|vs(w,y)-vx(0,y)|,|vy(W,y)-vy(0,y)|) (13)
Δmvver=max(|vx(x,H)-vx(x,0)|,|vy(x,H)-vy(x,0)|) (14)
其中,max表示取最大值,△mvhor表示Affine块的运动矢量差异的水平分量,△mvver表示Affine块的运动矢量差异的竖直分量,W表示第一控制点与第二控制点的第一水平距离,H表示第三控制点与第四控制点的第一竖直距离。参考图8,公式(13)表示,运动矢量水平差值Δmvhor为在同一水平方向的两个控制点的运动矢量的各分量的最大变化,即运动矢量差值的绝对值最大,例如可以选用顶点0和1或顶点2和3作为控制点来计算Δmvhor;公式(14)表示,运动矢量竖直差值Δmvver为在同一竖直方向的两个控制点的运动矢量的各分量的最大变化,即运动矢量差值的绝对值最大,例如可以选用顶点0和2或顶点1和3作为控制点来计算Δmvver。可以理解,上述公式(13)和(14)适用前述方案1、2、3中的任意一种方案,具体地:
在前述方案1中,基于三控制点确定仿射图像块的运动矢量差异,该运动矢量差异包括第一分量以及第二分量,因此,其采用公式(13)以及公式(14)的组合来获取仿射图像块的运动矢量差异;
在前述方案2中,基于水平方向两控制点确定仿射图像块的运动矢量差异,该运动矢量差异仅包括第一分量,因此,其采用公式(13)来获取仿射图像块的运动矢量差异。以图8为例,多数情况下,Affine块的顶点的运动矢量已知,在这种情况下,可直接根据Affine块顶点的运动矢量计算运动矢量差值。
若图8中Affine块顶点的运动矢量和/>已知,则有:
Δmvhor=max(|vx1-vx0|,|vy1-vy0|) (15)
若图8中Affine块顶点的运动矢量和/>已知,则有:
Δmvhor=max(|vx3-vx2|,|vy3-vy2|) (16)
也可以选择其他已知运动矢量的组合,本发明不做限制。
上述方案中使用的控制点的运动矢量可以根据仿射变换模型得到,例如,当采用4参数仿射变换模型,并以仿射图像块的左上角位置(0,0)和右上角位置(W,0)作为控制点,则模型公式为
其中(vx0,vy0)和(vx1,vy1)分别为左上角和右上角控制点的运动矢量。将左下角和右下角控制点坐标(0,h)和(w,h)代入公式,则可以得到(vx2,vy2)和(vx3,vy3);
在前述方案3中,基于竖直方向两控制点确定仿射图像块的运动矢量差异,该运动矢量差异仅包括第二分量,因此,其采用公式(14)来获取仿射图像块的运动矢量差异。以图8为例,多数情况下,Affine块的顶点的运动矢量已知,在这种情况下,可直接根据Affine块顶点的运动矢量计算运动矢量差值。
若已知图8中Affine块顶点的运动矢量和/>则有:
Δmvver=max(|vx2-vx0|,|vy2-vy0|) (18)
若已知图8中Affine块顶点的运动矢量和/>则有:
Δmvver=max(|vx3-vx1|,|vy3-vy1|) (19)
也可以选择其他已知运动矢量的组合,本发明不做限制。
上述方案中使用的控制点的运动矢量可以根据仿射变换模型得到,例如,当采用4参数仿射变换模型,并以左上角位置(0,0)和左下角位置(0,H)作为控制点,则模型公式为
其中(vx0,vy0)和(vx2,vy2)分别为左上角和左下角控制点的运动矢量。将右上角和右下角控制点坐标(w,0)和(w,h)代入公式,则可以得到(vx1,vy1)和(vx3,vy3)。
在本发明实施例中,可选地,根据仿射模型来获得上述的运动矢量差值,即通过确定该仿射图像块内的像素点的仿射变换参数来获取运动矢量的差值,需要说明的是,该仿射图像块内的像素点具有相同的仿射变换参数;
相应地,前述步骤中,确定该第一控制点与该第二控制点的运动矢量的第一水平分量差值和第一竖直分量差值,具体为:根据该仿射变换参数和该第一水平距离,确定该第一水平分量差值和该第一竖直分量差值;前述步骤中,确定该第三控制点与该第四控制点的运动矢量的第二水平分量差值和第二竖直分量差值,具体为:根据该仿射变换参数和该第一竖直距离,确定该第二水平分量差值和该第二竖直分量差值。
应理解,前述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明实施例中,可选地,仿射变换模型可以采用现有技术中的6参数仿射变换模型,也可以采用4参数或2参数仿射变换模型,6参数仿射变换模型主要应用于前述方案1中的3控制点的场景中,4参数仿射变换模型主要应用于前述方案2及3中的两控制点的场景中。以下分别以6参数仿射变换模型以及4参数仿射变换模型为例来介绍根据仿射变换参数获取运动矢量的差值的过程。
在6参数仿射变换模型中,假设(x,y)为像素点P在当前图像中的坐标,(x′,y′)为像素点P在参考图像中匹配的像素点P'的坐标,a,b,c,d,e,f为仿射变换参数。若已知仿射变换参数,即可求得像素点(x,y)在参考图像中的位置(x′,y′),从而可以从参考图像中获得像素点的预测信号:
x′=ax+by+e (21)
y′=cx+dy+f (22)
通常情况下,仿射变换参数可以根据仿射图像块中部分像素点的运动矢量计算得到,运动矢量的水平分量和竖直分量可分别表示为公式(23)和(24):
vx=x-x' (23)
vy=y-y' (24)
将公式(21)带入公式(23)中,将公式(22)带入公式(24)中,得到坐标为(x,y)的像素点的运动矢量的水平分量和竖直分量分别为公式(25)和(26):
vx=(1-a)x-by-e (25)
vy=(1-d)y-cx-f (26)
将公式(25)带入公式(13)中,将公式(26)带入公式(14)中,公式(13)和(14)分别转变为公式(27)和(28):
Δmvhor=max(|(1-a)W|,|-cW|) (27)
Δmvver=max(|-BH|,|(1-d)H|) (28)
通过确定仿射变换参数a、b、c和d,以及控制点之间的距离就可以确定Affine块的运动矢量差异的第一分量和第二分量。
在4参数仿射变换模型中,假设(x,y)为像素点P在当前图像中的坐标,(x′,y′)为像素点P在参考图像中匹配的像素点P'的坐标,a,b,e,f为仿射变换参数。若已知仿射变换参数,即可求得像素点(x,y)在参考图像中的位置(x′,y′),从而可以从参考图像中获得像素点的预测信号:
其中,公式(29)对应于前述方案2中,基于水平方向两控制点确定仿射图像块的运动矢量差异的场景中。公式(30)对应于前述方案3中,基于竖直方向两控制点确定仿射图像块的运动矢量差异的场景中。
通常情况下,仿射变换参数可以根据图像块中部分像素点的运动矢量计算得到,运动矢量的水平分量和竖直分量可参考前述公式(23)和(24)。将公式(29)及(30)分别带入公式(23)(24)中,得到坐标为(x,y)的像素点的运动矢量的水平分量和竖直分量分别为公式(31)和(32):
将公式(31)(32)带入公式(13)(14)中,公式(13)和(14)分别转变为公式(33)和(34):
ΔMvhor=max(|(1-a)W|,|bW|) (33)
Δmvver=max(|bH|,|(1-a)H|) (34)
通过确定仿射变换参数a和b,以及控制点之间的距离即可确定在前述的方2及方案3场景中Affine块的运动矢量差异的第一分量或者第二分量。
应理解,2参数仿射变换模型时,确定运动矢量差异的方法和采用6参数及4参数仿射变换模型时的确定方法本质上是相同的,为了简便,在此不再赘述。
在本发明实施例中,可选地,在解码过程中,仿射变换参数可以通过对各个参数进行迭代计算得到,比如将参数a加1,判断在该模型下运动补偿预测信号是否是最优。仿射变换参数也可以是根据邻近Affine块的仿射变换参数推导得到的。但本发明并不限于此。
在本发明实施例中,可选地,可以通过确定该第一控制点的运动矢量、该第二控制点的运动矢量、该第三控制点的运动矢量和该第四控制点的运动矢量,从而来确定仿射图像块的运动矢量差异;
相应地,在前述方案1的场景中,将该第一控制点的运动矢量的水平分量与该第二控制点的运动矢量的水平分量的差值确定为该第一水平分量差值;将该第一控制点的运动矢量的竖直分量和该第二控制点的运动矢量的竖直分量的差值,确定为该第一竖直分量差值;将该第三控制点的运动矢量的水平分量与该第四控制点的运动矢量的水平分量的差值确定为该第二水平分量差值;将该第三控制点的运动矢量的竖直分量和该第四控制点的运动矢量的竖直分量的差值,确定为该第二竖直分量差值。
在前述方案2的场景中,将该第一控制点的运动矢量的水平分量与该第二控制点的运动矢量的水平分量的差值确定为该第一水平分量差值;将该第一控制点的运动矢量的竖直分量和该第二控制点的运动矢量的竖直分量的差值,确定为该第一竖直分量差值。
在前述方案3的场景中,将该第三控制点的运动矢量的水平分量与该第四控制点的运动矢量的水平分量的差值确定为该第二水平分量差值;将该第三控制点的运动矢量的竖直分量和该第四控制点的运动矢量的竖直分量的差值,确定为该第二竖直分量差值。
具体而言,可以直接确定出控制点的运动矢量,通过将运动矢量的各分量分别作差,就可以直接得到Affine块的运动矢量差异的第一分量和第二分量。
例如,图9是根据本发明实施例的仿射图像块及控制点的示意图。其中两个控制点A和B在同一水平线上,距离为w,两个控制点C和D在同一竖直线上,距离为h,如果已知控制点A、B、C和D点的运动矢量,则可以根据公式(11)和(12)确定Affine块的运动矢量差异的第一分量和第二分量:
△mvhor=max(vxB-vxA,vyB-vyA) (35)
△mvver=max(vxC-vxD,vyC-vyD) (36)
在本发明实施例中,可选地,控制点A和C可以为同一个像素点。
在本发明实施例中,可选地,控制点A、B、C和D可以为Affine块的顶点,此时,控制点A和B的距离为Affine块的宽度W,控制点C和D的间距为Affine块的高度H。
在本发明实施例中,可选地,该第一控制点与该第二控制点为相邻的两个像素点,该第三控制点与该第四控制点为相邻的两个像素点,即控制点并不一定选在仿射图像块的四个角点,又叫顶点上,而是可以根据编解码端共同设置的,或者在码流中以信令的方式明示的,或者根据周边仿射图像块的控制点估计或者是复制得到的位于该仿射图像块内任意位置点,在此情况下;确定第一水平、竖直分量差值,以及第二水平、竖直分量差值具体为:
确定第一像素点的运动矢量、第二像素点的运动矢量和第三像素点的运动矢量,该第一像素点、该第二像素点和该第三像素点为互相不重合的像素点;确定该第一像素点与该第二像素点之间的第二水平距离和第二竖直距离;确定该第一像素点与该第三像素点之间的第三水平距离和第三竖直距离;根据该第一像素点的运动矢量、该第二像素点的运动矢量、该第三像素点的运动矢量、该第二水平距离、该第二竖直距离、该第三水平距离和该第三竖直距离,确定该第一水平分量差值、该第一竖直分量差值、该第二水平分量差值和该第二竖直分量差值。以上是以前述的方案1的三控制点为例,当采用前述方案2或方案3中的两控制点与方案1的三控制点的区别在于,仅取方案1中的第一分量差值或者第二分量差值作为二控制点仿射图像的运动矢量差异。
具体而言,假设A、B和C是图像块中任意互相不重合的三个像素点,三个像素点的位置如图10所示,三个点的运动矢量分别为(vxA,vyA)、(vxB,vyB)和(vxC,vyC)。点A与点B在水平方向的距离是w1,竖直方向的距离是h1,点A与点C在水平方向的距离是w2,竖直方向的距离是h2,点B与点C的在水平方向的距离为w2-w1,竖直方向的距离是h1+h2。假设在水平方向上相邻的两个像素点的运动矢量在水平方向的各分量的差异分别为△mvxhor和△mvyhor,在竖直方向上相邻的两个像素点的运动矢量在竖直方向的各分量的差异分别为△mvxver和△mvyver,由于图像块内运动矢量是线性变化的,则可以通过确定A、B和C点的运动矢量确定△mvxhor、△mvyhor、△mvxver和△mvyver,从而可以确定图像块的相邻像素点的运动矢量差异。具体可以根据公式(37)~(40)确定:
vxB=vxA+w1·△mvxhor+h1·△mvxver (37)
vyB=vyA+w1·△mvyhor+h1·△mvyver (38)
vxC=vxA+w2·△mvxhor+h2·△mvxver (39)
vyC=vyA+w2·△mvyhor+h2·△mvyver (40)
还可以根据公式(37)和(38)以及公式(41)和(42)确定:
vxC=vxB+(w2-w1)·△mvxhor+(h2+h1)·△mvxver (41)
vyC=vyB+(w2-w1)·△mvyhor+(h2+h1)·△mvyver (42)
在本发明实施例中,可选地,解码设备可以从通过运动估计搜索得到所有控制点的运动矢量;可以从周围图像块获得所有控制点的运动矢量;可以根据仿射变换模型计算出所有控制点的运动矢量;可以通过运动估计搜索得到部分控制点的运动矢量,从邻近图像块获得其他控制点的运动矢量;可以通过仿射运动估计搜索得到部分控制点的运动矢量,根据仿射变换模型计算得到其他控制点的运动矢量;可以从邻近图像块获得部分控制点的运动矢量,根据仿射变换模型计算出其他控制点的运动矢量;但本发明并不限于此。
可选地,在S720中,可以将第一预设值确定为该仿射图像块的运动矢量精度;或根据该仿射图像块的邻近图像块的特性确定该仿射图像块的运动矢量精度,该邻近图像块为与该仿射图像块在空间上和/或时间上相邻的图像块。
具体而言,Affine块的运动矢量的值可以是整数,此时称运动矢量是整像素精度,即像素精度为1;运动矢量的值也可以是非整数的,此时称运动矢量是亚像素精度,包括1/2、1/4、1/8等精度。图11所示的是一个4×4的图像块,其中x表示的是整像素位置的像素,采集得到的图像只有整像素位置的像素。O表示的是1/2精度位置的像素,需要通过整像素位置的像素进行插值来得到。其他精度位置的像素值需要使用整像素精度像素或1/2精度像素进一步插值来获得。若当前像素点的运动矢量是整数,则指向参考图像中×所在的位置,若当前像素点的运动矢量是1/2精度,则指向参考图像中O所在的位置。
Affine块的运动矢量精度指Affine块内所有像素点的运动矢量的最高精度。Affine块的运动矢量精度可以是预先设定好的,例如整像素精度、1/2、1/4、1/8、1/16等精度。也可以是根据图Affine块邻近图像块的特性来确定,例如若周围的图像较为平滑,可以预测当前Affine块也较为平滑,则可以选用较高的运动矢量精度,例如1/8、1/16精度等,反之选用较低的运动矢量精度,例如整像素精度、1/2精度等。获得的精度用MvAc来表示。
可选地,如图12所示,S730具体包括:
S1201,根据该运动矢量精度与该运动矢量差异的第一分量的比例对该第一水平距离进行等比例调整得到该仿射运动补偿子图像块的水平方向的长度,确定该仿射图像块的水平方向的长度是否是该仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整该仿射运动补偿子图像块的水平方向的长度以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的调整后的水平方向的长度的整数倍。
具体地,该运动矢量精度与运动矢量差异的第一分量的比例为该运动矢量精度与运动矢量差异的第一分量的比值,该比值与该第一水平距离的乘积则为该仿射运动补偿子图像块的水平方向的长度,也可以称之为水平方向的初始长度;可以理解,该仿射运动补偿子图像块的水平方向的初始长度在某些情况下可能为非整数,此时需要对该初始长度取整,为保证精度,通常是向下取整,即,直接丢弃小部分,例如,初始长度值为8.35(即,8.35个单位像素的长度),且直接取8作为仿射运动补偿子图像块的水平方向的长度;当然,也可以采用四舍五入的取整原则,即小数部分小于5则向下取整,小数部分大于5,则向上取整,例如当计算得出的长度为8.86时,取9作为其长度,为了保证效率,初始长度的最小值应该不小于预设的值,例如不能小于2、4、8或者2N等预设的值,该预设值通常设置为4,也不应大于仿射变换图像块的在水平方向的长度。该水平方向的初始长度或者水平方向的取整后的初始长度是否合适,取决于其是否能够将仿射图像块在水平方向的长度整除,若能整数,则说明仿射图像块在水平方向是否能够以该水平方向的初始长度或者水平方向取整后的初始长度为单位被划分成整数个子块。通常其调整方式是采用逐步递增/递减该水平方向的初始长度或者水平方向取整后的初始长度的方法,即,若确定该仿射图像块的水平方向的长度不是该仿射运动补偿子图像块的水平方向的长度的整数倍,则对该仿射运动补偿子图像块的水平方向的长度做增加/减少一个或者多个单位长度的调整,接着循环执行上述的方案直至该仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的调整后的长度的整数倍。其中,上述单位长度通常是一个单位像素,即,对该仿射运动补偿子图像块的水平方向的长度做加一/减一的调整,为不失通用性,也可以说是,对该仿射运动补偿子图像块的水平方向的长度按照固定的步长做增加/减少的调整,所述的步长为调整值,即,每个循环内对该仿射运动补偿子图像块的水平方向的长度进行调整的基本单位或者叫幅度;该步长通常为上述的一个单位像素,也可以是其他的值,如两个像素单位等。可选地,上述调整中所采用的步长/调整值也可以根据该仿射运动补偿子图像块的水平方向的初始长度的奇偶性变化,例如,当仿射运动补偿子图像块的水平方向的初始长度为奇数,选择奇数步长,例如,以奇数个单位长度,如一个单位长度为步长进行调整,当仿射运动补偿子图像块的水平方向的初始长度为偶数时,则选择偶数步长,例如,偶数个单位长度的步长。
此外,所述调整是增加还是减少可以根据解码端以及编码端共同约定来选择,也可以由编码端在码流中明示,解码端参照选择,也可以通过周边相邻的块运动矢量精度值来推导,或者根据仿射图像块与该仿射运动补偿子图像块的水平方向的长度之间的比值关系来确定,例如比值小于阈值则选择减少,否则选择增加。
为了简化算法,同时兼顾编解码效率,确定该仿射图像块的水平方向的长度不是该仿射运动补偿子图像块的水平方向的长度的整数倍时,则对该仿射运动补偿子图像块的水平方向的长度做增加一个预设单位长度的调整,接着循环执行上述的方案直至该仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的调整后的长度的整数倍。
此外,为了提高效率,节省运算时间,也可以将该仿射运动补偿子图像块的水平方向的长度朝向最接近整除该仿射图像块的水平方向的长度的值的方向调整,例如,该仿射运动补偿子图像块的水平方向的长度为7,而仿射图像块的水平方向的长度为16,此时,对仿射运动补偿子图像块的水平方向的长度加1变成8,从而能整除16;同理,该仿射运动补偿子图像块的水平方向的长度为5,此时,对仿射运动补偿子图像块的水平方向的长度减1变成4,从而能整除16。若,该仿射运动补偿子图像块的水平方向的长度距离与邻近且可整除该仿射图像块的水平方向的长度的两个相邻的值的距离相等,例如,该仿射运动补偿子图像块的水平方向的长度为6,仿射图像块的水平方向的长度为16,邻近长度6且可整除16的两个相邻的值分别为4和8,此时,可以根据编解码端的需求选择朝某一方向调整,例如,如果是要求低延时,此时可以选择朝增加的方向调整,如果要求高质量,则选择朝减小的方向调整,对此,本发明不做限制。
此外,上述步骤S1201中的,当确定该仿射图像块的水平方向的长度不是该仿射运动补偿子图像块的水平方向的长度的整数倍时,为了更进一步的简化算法,可以在编解码端分别建立相同的表格,以允许的最小整除数,如,2N为起始值,将仿射图像块水平方向的可能的最大长度划分为多个区间,区间的跨度为2N+i,i∈(0,(log2W max)-1),Wmax为仿射图像块水平方向的可能的最大长度。确定该仿射运动补偿子图像块的水平方向的长度所在的区间,以该仿射运动补偿子图像块的水平方向的长度所在的区间的下限值或者上限值为最终确定的所述仿射运动补偿子图像块的水平方向的长度。其上下限值的获取规则可以参照编解码两端约定,可以通过码流明示,或者可以通过四舍五入的方式选择临近的区间上限值或者下限值。通过以上的表格,可以采用根据仿射运动补偿子图像块的水平方向的初始长度采用查表的方式来确定该仿射运动补偿子图像块的水平方向的最终长度,从而可以替换前述步骤S1201中调整该仿射运动补偿子图像块的水平方向的长度的步骤,以降低***复杂度并减少计算时间。
可选地,为了进一步降低该方案的计算复杂度,在步骤S1201中的,除了确定仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的长度的整数倍,还需要确定该仿射运动补偿子图像块的水平方向的长度是否是便于计算的预定长度S的整数倍,即,确定该仿射运动补偿子图像块的水平方向的长度是否满足条件:
(1)仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的长度的整数倍,且(2)该仿射运动补偿子图像块的水平方向的长度是预定长度S的整数倍;
若不满足,则调整该仿射运动补偿子图像块的水平方向的长度以使其满足上述的条件(1)和条件(2),即,该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的调整后的水平方向的长度的整数倍,且该仿射运动补偿子图像块的调整后的水平方向的长度是该预设长度的整数倍。预设长度S通常取4,也可以取8、16、32等数值,或者说S=2n,n为零或者正整数。本方案对于任意形状的仿射图像块均适用,若仿射图像块是采用四叉树(QualTree)的规则划分的情况下,由于上述判断条件(1)(2)中任一个条件的满足即可以满足另外一个条件,因此,仅需要保留一其中一个判定条件即可。上述条件(1)以及条件(2)是否满足的判断顺序以及依据判断结果对仿射运动补偿子图像块的水平方向的长度进行调整的顺序可以任意交换,为了区别,可以将第一次调整叫做首次调整,而第二次调整(如果需要)叫做二次调整。
可选地,通过上述方式确定的该仿射运动补偿子图像块的水平方向的长度需要进行限幅操作,即通过比较的方式使的M位于下限Tm以及上限W之间,Tm为预设值,通常为4,W为仿射图像块的在水平方向的长度。
S1203,根据该运动矢量精度与该运动矢量差异的第二分量的比例对该第一竖直距离进行等比例调整得到该仿射运动补偿子图像块的竖直方向的长度,确定该仿射图像块的竖直方向的长度是否是该仿射运动补偿子图像块的竖直向的长度的整数倍,若否,则调整该仿射运动补偿子图像块的竖直方向的长度以使该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
具体地,该运动矢量精度与运动矢量差异的第二分量的比例为该运动矢量精度与运动矢量差异的第二分量的比值,该比值与该第一竖直距离乘积则为该仿射运动补偿子图像块的竖直方向的长度,也可以称之为竖直方向的初始长度;可以理解,该仿射运动补偿子图像块的竖直方向的初始长度在某些情况下可能为非整数,此时需要对该初始长度取整,为保证精度,通常是向下取整,即,直接丢弃小部分,例如,初始长度值为8.35(即,8.35个单位像素的长度),且直接取8作为仿射运动补偿子图像块的竖直方向的长度;当然,也可以采用四舍五入的取整原则,即小数部分小于5则向下取整,小数部分大于5,则向上取整,例如当计算得出的长度为8.86时,取9作为其长度,为了保证效率,初始长度的最小值应该不小于预设的值,例如不能小于2、4、8或者2N等预设的值,该预设值通常设置为4,也不应大于仿射变换图像块的在竖直方向的长度。该竖直方向的初始长度或者竖直方向的取整后的初始长度是否合适,取决于其是否能够将仿射图像块在竖直方向的长度整除,若能整数,则说明仿射图像块在竖直方向是否能够以该竖直方向的初始长度或者竖直方向取整后的初始长度为单位被划分成整数个子块。通常其调整方式是采用逐步递增/递减该竖直方向的初始长度或者竖直方向取整后的初始长度的方法,即,若确定该仿射图像块的竖直方向的长度不是该仿射运动补偿子图像块的竖直方向的长度的整数倍,则对该仿射运动补偿子图像块的竖直方向的长度做增加/减少一个或者多个单位长度的调整,接着循环执行上述的方案直至该仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的调整后的长度的整数倍。其中,上述单位长度通常是一个单位像素,即,对该仿射运动补偿子图像块的竖直方向的长度做加一/减一的调整。为了不失通用性,也可以说是对该仿射运动补偿子图像块的竖直方向的长度按照固定的步长做增加/减少的调整,所述的步长为调整值,即,每个循环内对仿射运动补偿子图像块的竖直方向的长度进行基本单位或者幅度;该步长通常为上述的一个单位像素,也可以是其他的值,如两个像素单位等。可选地,上述调整中所采用的步长/调整值也可以根据该仿射运动补偿子图像块的竖直方向的初始长度的奇偶性变化,例如,当仿射运动补偿子图像块的竖直方向的初始长度为奇数,选择奇数步长,例如,以奇数个单位长度,如一个单位长度为步长进行调整,当仿射运动补偿子图像块的竖直方向的初始长度为偶数时,则选择偶数步长,例如,偶数个单位长度的步长。
此外,所述调整是增加还是减少可以根据解码端以及编码端共同约定来选择,也可以由编码端在码流明示,解码端参照选择,也可以通过周边相邻的块运动矢量精度值来推导,或者根据仿射图像块与该仿射运动补偿子图像块的竖直方向的长度之间的比值关系来确定,例如比值小于阈值则选择减少,否则选择增加。
为了简化算法,同时兼顾编解码效率,确定该仿射图像块的竖直方向的长度不是该仿射运动补偿子图像块的竖直方向的长度的整数倍,则对该仿射运动补偿子图像块的竖直方向的长度做增加一个预设单位长度的调整,接着循环执行上述的方案直至该仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的调整后的长度的整数倍。
此外,为了提高效率,节省运算时间,也可以将该仿射运动补偿子图像块的竖直方向的长度朝向最接近整除该仿射图像块的竖直方向的长度的方向调整,例如,该仿射运动补偿子图像块的竖直方向的长度为7,而仿射图像块的竖直方向的长度为16,此时,对仿射运动补偿子图像块的竖直方向的长度加1变成8,从而能整除16;同理,该仿射运动补偿子图像块的竖直方向的长度为5,此时,对仿射运动补偿子图像块的竖直方向的长度减1变成4,从而能整除16。若,该仿射运动补偿子图像块的竖直方向的长度距离与邻近且可整除该仿射图像块的竖直方向的长度的两个相邻的值的距离相等,例如,该仿射运动补偿子图像块的竖直方向的长度为6,仿射图像块的竖直方向的长度为16,邻近长度6且可整除16的两个相邻的值分别为4和8,此时,可以根据编解码端的需求选择朝某一方向调整,例如,如果是要求低延时,此时可以选择朝增加的方向调整,如果要求高质量,则选择朝减小的方向调整,对此,本发明不做限制。
此外,上述步骤S1203中的,当确定该仿射图像块的竖直方向的长度不是该仿射运动补偿子图像块的竖直方向的长度的整数倍时,为了更进一步的简化算法,可以在编解码端分别建立相同的表格,以允许的最小整除数,如,2N为起始值,将仿射图像块竖直方向的可能的最大长度划分为多个区间,区间的跨度为2N+i,i∈(0,(log2Wmax)-1),Wmax为仿射图像块竖直方向的可能的最大长度。确定该仿射运动补偿子图像块的竖直方向的长度所在的区间,以该仿射运动补偿子图像块的竖直方向的长度所在的区间的下限值或者上限值为最终确定的所述仿射运动补偿子图像块的竖直方向的长度。其上下限值的获取规则可以参照编解码两端约定,可以通过码流明示,或者可以通过四舍五入的方式选择临近的区间上限值或者下限值。通过以上的表格,可以采用根据仿射运动补偿子图像块的竖直方向的初始长度采用查表的方式来确定该仿射运动补偿子图像块的竖直方向的最终长度,从而可以替换前述步骤S1203中调整该仿射运动补偿子图像块的竖直方向的长度的步骤降低***复杂度以及计算时间。
可选地,为了进一步降低该方案的计算复杂度,在步骤S1203中的,除了确定,仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的长度的整数倍,还需要确定该仿射运动补偿子图像块的竖直方向的长度是否是便于计算的预定长度S的整数倍,即,确定该仿射运动补偿子图像块的竖直方向的长度是否满足条件:
(1)仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的长度的整数倍,且(2)该仿射运动补偿子图像块的竖直方向的长度是预定长度S的整数倍;
若不满足,则调整该仿射运动补偿子图像块的竖直方向的长度以使其满足上述的条件(1)和条件(2),即,该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍,且该仿射运动补偿子图像块的调整后的竖直方向的长度是该预设长度的整数倍。预设长度S通常取4,也可以取8、16、32等数值,或者说S=2n,n为零或者正整数。本方案对于任意形状的仿射图像块均适用,若仿射图像块是采用四叉树(QualTree)的规则划分的情况下,由于上述判断条件(1)(2)中任一个条件的满足即可以满足另外一个条件,因此,仅需要保留一其中一个判定条件即可。上述条件(1)以及条件(2)是否满足的判断顺序以及依据判断结果对仿射运动补偿子图像块的水平方向的长度进行调整的顺序可以任意交换,为了区别,可以将第一次调整叫做首次调整,而第二次调整(如果需要)叫做二次调整。
上述步骤S1201以及S1203适用于前述的方案1中三控制点场景中,在三控制点场景中,对于该仿射运动补偿子图像块在水平方向以及竖直方向的长度分别计算。而对于前述方案2以及方案3中的两控制点场景,可仅采用步骤S1201或者S1203来单独计算该仿射运动补偿子图像块在水平方向的长度或者该仿射运动补偿子图像块在竖直方向的长度,之后以该仿射运动补偿子图像块在水平/竖直方向的长度或者该仿射运动补偿子图像块在水平/竖直方向的调整后长度作为该仿射运动补偿子图像块在另一个方向,即竖直/水平方向的初始长度,并分别进行上述判断,即,
判断仿射图像块的竖直/水平方向的长度是否是该仿射运动补偿子图像块的竖直方向的长度的整数倍;
或者,
判断仿射图像块的竖直/水平方向的长度是否是该仿射运动补偿子图像块的竖直方向的长度的整数倍,以及确定该仿射运动补偿子图像块的竖直/水平方向的长度是否是预定长度S的整数倍。
在前述方案2及方案3的量控制点场景中,可以根据需求仅采用上述方案3中对于该仿射运动补偿子图像块在水平方的向长度的计算,或者对于该仿射运动补偿子图像块在竖直方向的长度的计算,并以所得到的仿射运动补偿子图像块的一个尺寸分量,即水平方向的长度或则竖直方向的长度为基础,来推导或计算另外一个尺寸分量。可以理解的是当仿射图像块的尺寸为2Nx2N的规则方形时,因为其水平方向和竖直方向的长度相同,则只需要对其水平或者竖直方向长度中的一个进行确定即可。
可选地,通过上述方式确定的该仿射运动补偿子图像块的竖直方向的长度需要进行限幅操作,即通过比较的方式使的M位于下限Tm以及上限W之间,Tm为预设值,通常为4,W为仿射图像块的在竖直方向的长度。
具体而言,通常获得的运动矢量差异△mvhor和△mvver较小,表示每个像素点的运动矢量的精度过高,例如1/32,1/64等。过高的运动矢量精度对视频的压缩性能贡献不大,且会带来巨大的计算量。因此,根据之前获得的期望的运动矢量精度MvAc,来对Affine块进行划分,划分成多个Affine-MC块,保证每个Affine-MC块的运动矢量精度达到MvAc,其中,△mvhor和△mvver的最小值不小于MvAc。
在本发明实施例中,可选地,假设第一控制点与第二控制点之间的水平距离为W,第三控制点与第四控制点之间的竖直距离为H,假设Affine-MC块的宽度为aMcW,或记为M,高度为aMcH,或记为N;
在前述的方案1场景中,基于三控制点确定的仿射图像块的运动矢量差异,并获取仿射运动补偿子图像块的尺寸可以通过以下公式(43)来实现,即根据公式(43)确定M和N:
或
等同于:
在前述的方案2场景中,基于水平方向的两控制点确定的仿射图像块的运动矢量差异,并获取仿射运动补偿子图像块的尺寸可以通过以下公式(46)来实现,即根据公式(46)确定M和N:
等同于:
在前述的方案3场景中,基于竖直方向的两控制点确定的仿射图像块的运动矢量差异,并获取仿射运动补偿子图像块的尺寸可以通过以下公式(48)来实现,即根据公式(48)确定M和N:
等同于:
根据公式(45)、(47)以及(49)计算得到M和N后,为了简化算法,需要进一步判断M,N是否便于运算,即,是否能够将宽度为W,高度为H的仿射图像块均匀划分为整数个仿射运动补偿子图像块,也即,判断W是否能被M整除,H是否能被N整除,如果不能整除,则对不能整除的值,即M和/或N进行调整,以使W能被M整除,H能被N整除,并且在限制范围Tm≤M≤W,Tn≤N≤H之内。
调整方法可以为:
1)当W不能被M整除时,逐步减小/增减M,直至W能被M整除;当H不能被N整除时,逐步减小/增加N,直至H能被N整除。在M=N的情况下,仅需要调整其中一个即可。
可选地,对M和N的上下限做一个限制,使得Tm≤M≤W,Tn≤N≤H,Tm和Tn一般设置为4。
2)通过查表的方式:在已构建好的二维表中,输入W和M,输出满足条件的M;输入H和N,输出满足条件的N。
可选地,根据公式(45)、(47)以及(49)计算得到M和N后,再进一步调整,使得W能被M整除,H能被N整除,并且M和N为S的倍数,并且在限制范围Tm≤M≤W,Tn≤N≤H之内。
调整方法可以为:
1)当W不能被M整除或者M不为S的倍数时,逐步减小M,直至W能被M整除并且为S的倍数;当H不能被N整除或者N不为S的倍数时,逐步减小N,直至H能被N整除并且为S的倍数。S通常设置为4。在M=N的情况下,仅需要调整其中一个即可。
可选地,对M和N的上下限做一个限制,使得Tm≤M≤W,Tn≤N≤H,Tm和Tn一般设置为4。
2)通过查表的方式:在已构建好的二维表中,输入W和M,输出满足条件的M,输入H和N,输出满足条件的N。
具体的上述方案可以通过以下表-1中实例性的算法代码来实现。
表-1
/>
因此,本发明实施例的视频图像解码的方法,解码设备通过确定的仿射图像块的运动矢量差异、运动矢量精度和控制点之间的距离以及仿射图像块的尺寸,确定仿射运动补偿子图像块的尺寸,使得仿射图像块可被均匀的划分为多个尺寸相同仿射运动补偿子图像块,从而便于该方法的硬件/软件实现,同时降低复杂度。通过实验验证,本发明可以使得编码端复杂度降低50%,解码端复杂度降低70%,同时保持了90~95%的性能,这可以使得基于Affine模型的运动补偿预测技术可以有效地投入到实际应用中。
可选地,如图13所示,S740包括:
S1301,确定该仿射运动补偿子图像块中每个仿射运动补偿子图像块的运动矢量;
S1303,根据该每个仿射运动补偿子图像块的运动矢量,确定该每个仿射运动补偿子图像块的运动补偿预测信号;
S1305,根据该每个仿射运动补偿子图像块的运动补偿预测信号对该每个仿射运动补偿子图像块进行解码。
应理解,在本发明实施例中,每个Affine-MC块可能包含多个像素点,需要从每个Affine-MC中选取一个像素点的运动矢量作为该Affine-MC块的运动矢量。
可选地,在S1301中,可以选取Affine-MC块的中心位置处的像素点的运动矢量作为该Affine-MC块的运动矢量,可以将Affine-MC块内所有像素点的运动矢量的平均值作为该Affine-MC块的运动矢量,可以选取位于Affine-MC块的左上角的像素点的运动矢量作为该Affine-MC块的运动矢量,但本发明并不限于此。
在本发明实施例中,可选地,对该每个仿射运动补偿子图像块的边界像素点的信号进行滤波,该边界像素点为位于每个仿射运动补偿子图像块的边界的一行或多行像素点。
在本发明实施例中,可选地,该边界像素点的信号包括运动补偿预测信号和/或重建信号,该重建信号为运动补偿预测信号与重建的残差信号之和。
具体而言,如图11所示,粗实线块表示Affine块,细实线块表示Affine-MC块,虚线框表示相邻的Affine-MC块的边界的像素,交叉点表示像素。其中,图11中虚线框的区域包含相邻Affine-MC块各自在边界的两行或者两列像素,也可以包含各自边界的一行或一列,三行或三列等。由于相邻的Affine-MC块的运动矢量可能不同,那么从参考图像中取得的预测信号在参考图像中不相邻,这会导致相邻Affine-MC块边界的预测信号之间的不连续,从而导致残差的不连续,影响残差的图像编码/解码性能,因此考虑对Affine-MC块边界处的运动补偿预测信号进行滤波。
重建信号一般是将运动补偿预测信号与重建的残差信号相加而得到。残差信号一般使用有损编码,这会导致重建的残差信号与原始的残差信号之间存在失真。相邻Affine-MC块的边界处的像素的失真方向可能不一致,例如第一个Affine-MC块右边的像素由于失真变大,右边相邻的Affine-MC块左边的像素由于失真变小,这会导致在Affine-MC块的重建像素的边界处像素值不连续,影响主观和客观的效果。因此需要对重建信号进行滤波。
在本发明实施例中,可选地,可以通过低通滤波器进行滤波,使得边界区域的像素值变化的更平缓,例如使用高斯滤波器进行滤波,但本发明并不限于此。
在本发明实施例中,可选地,可以采用重叠分块运动补偿(Overlapped blockmotion compensation,简称为“OBMC”方法进行滤波。对待滤波的像素使用其邻近的Affine-MC块的运动矢量做运动补偿预测,将获得的运动补偿预测信号与使用待滤波像素自己的运动矢量获得的运动补偿预测信号进行加权平均,得到最终的运动补偿预测信号。
本发明实施例的视频图像解码的方法,解码设备通过确定的仿射图像块的运动矢量差异、运动矢量精度和控制点之间的距离,确定仿射运动补偿子图像块的尺寸,并根据仿射图像块尺寸与仿射运动补偿子图像块的尺寸关系来进一步调整使得仿射运动补偿子图像块的尺寸更便于实现,同时降低复杂度。通过实验验证,本发明可以使得编码端复杂度降低50%,解码端复杂度降低70%,同时保持了90~95%的性能,这可以使得基于Affine模型的运动补偿预测技术可以有效地投入到实际应用中。
可选地,可选地,本发明中解码方法也可以是:
解析码流,以获取仿射图像块的运动矢量差异以及该仿射图像块的运动矢量精度,其中,该仿射图像块内的像素点具有相同的仿射变换参数;
根据该运动矢量差异、该运动矢量精度和该仿射图像块中的控制点之间的距离,确定该仿射图像块中的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的在水平方向的长度为该仿射运动补偿子图像块的在水平方向的长度整数倍,且该仿射图像块在竖直方向的长度为该仿射运动补偿子图像块的在竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;
根据该仿射运动补偿子图像块的尺寸,对该仿射图像块进行解码处理。
或者;
解析码流,获取仿射图像块信息;
根据该仿射图像块信息确定该仿射图像块中的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,且该仿射图像块的在水平方向的长度为该仿射运动补偿子图像块的在水平方向的长度整数倍,且该仿射图像块在竖直方向的长度为该仿射运动补偿子图像块的在竖直方向的长度的整数倍;
根据该仿射运动补偿子图像块的尺寸,对该仿射图像块进行解码处理。
通过这种方式解码端可以无需重新计算,而直接用编码端传至解码端的参数来确定仿射运动补偿子图像块的尺寸,从而进一步降低计算的复杂度。
以上结合图1至图13详细描述了根据本发明实施例的视频图像解码的方法,前面已经说明本方案在解码端以及编码端的实现方式基本相同,为了更加清楚的说明这一点,下面将结合图14至图16描述根据本发明实施例的视频图像编码的方法。应注意,因为编码端的有关操作本质上与解码端的一致,为了避免重复,在此不再赘述各实现细节。
图14示出了根据本发明实施例的视频图像解码的方法的示意性流程图。
图14所示的方法可以由编码设备执行,例如编码器类似于解码器通常包括有预测处理单元、残余产生单元、变换处理单元、量化单元、逆量化单元、逆变换处理单元、重建单元、滤波器单元、解码图片缓冲器及熵编码单元。熵编码单元包含规则CABAC编解码引擎及旁通编解码引擎。预测处理单元包含帧间预测处理单元及帧内预测处理单元。帧间预测处理单元包含运动估计单元及运动补偿单元。在其它实例中,编码器可包含更多、更少或不同的功能组件。类似于解码器,本发明的编码方法主要应用在帧间预测处理单元进行帧间预测的过程中,编码器的各个功能单元的详细结构可以参照现有技术如H.265标准中的规定及描述,本发明再次不展开描述,本发明仅通过以下实施例来说明本发明实施例的方法中如何实现自适应地确定仿射运动补偿子图像块的尺寸并进行编码的基本过程。
具体地,如图14所示,方法1400包括:
S1410,确定仿射图像块的运动矢量差异;
S1430,确定该仿射图像块的运动矢量精度;
S1450,根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的在水平方向的长度为该仿射运动补偿子图像块的在水平方向的长度整数倍,且该仿射图像块在竖直方向的长度为该仿射运动补偿子图像块的在竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;
S1470,根据该仿射运动补偿子图像块的尺寸,对该述仿射图像块进行编码处理。
具体而言,解码设备根据确定的控制点,确定仿射图像块的运动矢量差异,并确定该仿射图像块的运动矢量精度,根据确定的运动矢量差异、运动矢量精度和控制点之间的距离以及仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该仿射运动补偿子图像块的尺寸即为该仿射图像块的划分尺寸;基于该划分尺寸,所述仿射图像块被划分为多个具有相同尺寸的仿射运动补偿子图像块,然后基于该仿射运动补偿子图像块对所述仿射图像块进行编码。
因此,帧间预测处理单元通过运行本发明实施例的视频图像编码的方法,利用确定的仿射图像块的运动矢量差异、运动矢量精度和控制点之间的距离以及仿射图像块的尺寸,确定仿射运动补偿子图像块的尺寸,根据该仿射运动补偿子图像块的尺寸将该仿射图像块划分成多个大小一致的仿射运动补偿子图像之后进行编码处理,由此,在编码过程中能够根据上述参数的变化自适应的选取合适大小的仿射运动补偿子图像块,降低编码的复杂度并提高编码性能即压缩效率。
优选地,S1410包括:
根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量;和/或
根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量;
其中,该第一控制点与该第二控制点之间具有第一水平距离,该第三控制点与该第四控制点之间具有第一竖直距离。需要说明的是,上述步骤S1410中所包含的方案中的“和/或”具体表示了如下三种不同的技术方案:
方案1:基于三控制点的仿射图像块的运动矢量差异确定方法;其包括:
根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量,以及,根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量。
方案2:基于水平方向两控制点的仿射图像块的运动矢量差异确定方法;其包括:根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量。
方案3:基于竖直方向两控制点的仿射图像块的运动矢量差异确定方法:其包括:根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量。
应理解,在本发明实施例中,该运动矢量差异的第一分量指该运动矢量差异的水平分量,该运动矢量差异的第二分量指该运动矢量差异的竖直分量,在方案1中,该运动矢量差异的第一分量和该运动矢量差异的第二分量共同体现仿射图像块的运动矢量差异,而在方案2及方案3中,该运动矢量差异的第一分量及该运动矢量差异的第二分量分别独立的体现仿射图像块的运动矢量差异。换句话说,即,在方案1种,仿射图像块的运动矢量差异包括运动矢量差异的第一分量和该运动矢量差异的第二分量;在方案2中,仿射图像块的运动矢量差异包括运动矢量差异的第一分量;在方案3中,仿射图像块的运动矢量差异包括运动矢量差异的第三分量。还应理解,在本发明实施例中,第一、第二、第三和第四只是为了区分像素点,而不应该对本发明的保护范围构成任何限定,例如,第一控制点也可以称为第二控制点,第二控制点可以成为第一控制点等。
在本发明实施例中,可选地,该第一控制点和该第三控制点为同一个像素点,也就是说,选取的控制点的个数为3个,并且3个控制点中的一个控制点与其他2个控制点中的一个控制点位于同一水平线上,与其他2个控制点中的另一个控制点位于同一竖直线上。
在本发明实施例中,可选地,该第一控制点、该第二控制点、该第三控制点和该第四控制点为该Affine块的顶点,假设一个Affine块的4个顶点分别标记为左上角顶点、左下角顶点、右上角顶点和右下角顶点,则:
在前述方案1中,可以选择位于两个正交方向上的任意三个顶点来确定该Affine块的运动矢量差异,例如,可以选择左上角顶点、左下角顶点和右上角顶点,可以选择左上角顶点、右上角顶点和右下角顶点;
在前述方案2中,可以选择位于同一水平线上的任意两个顶点来确定该Affine块的运动矢量差异,例如,可以选择左上角顶点和右上角顶点,或者选择左下角顶点和右下角顶点;
在前述方案3中,可以选择位于同一竖直线上的任意两个顶点来确定该Affine块的运动矢量差异,例如,可以选择左上角顶点和左下角顶点,或者选择右上角顶点和右下角顶点;本发明对此不作限定。
在本发明实施例中,可选地,可以将第一控制点与第二控制点的运动矢量的两个方向(水平方向、竖直方向,或者成为,x方向,y方向)上的分量中任意一个方向上的分量的差值确定为该Affine块的运动矢量差异的第一分量,可以将第三控制点与第四控制点的运动矢量的两个方向上的分量中任意一个方向上的分量的差值确定为该Affine块的运动矢量差异的第二分量,该运动矢量差异的确定方式适用于前述的方案1、2、3;还可以根据实际对编码复杂度和编码性能的要求,选择介于第一控制点与第二控制点的运动矢量的两个方向上的分量的两个差值之间的数值确定为该第一分量,选择介于第三控制点与第四控制点的运动矢量的两个方向上的分量的两个差值之间的数值确定为该第二分量,本发明对此不作限定。
通常,第一控制点至第四控制点中的每一个控制点的运动矢量均包含有两分量,即水平分量及竖直分量,因此,前述步骤中,根据位于同一水平线上的第一控制点与第二控制点的运动矢量的差值,确定该运动矢量差异的第一分量,以及,根据位于同一竖直线上的第三控制点与第四控制点的运动矢量的差值,确定该运动矢量差异的第二分量,具体可以通过以下的方式来实现:
确定该第一控制点与该第二控制点的运动矢量的第一水平分量差值和第一竖直分量差值,将该第一水平分量差值和该第一竖直分量差值中的最大值确定为该运动矢量差异的第一分量;
相应的,确定该第三控制点与该第四控制点的运动矢量的第二水平分量差值和第二竖直分量差值,将该第二水平分量差值和该第二竖直分量差值中的最大值确定为该运动矢量差异的第二分量。
在本发明实施例中,可选地,根据仿射模型来获得上述的运动矢量差值,即通过确定该仿射图像块内的像素点的仿射变换参数来获取运动矢量的差值,需要说明的是,该仿射图像块内的像素点具有相同的仿射变换参数;
相应地,前述步骤中,确定该第一控制点与该第二控制点的运动矢量的第一水平分量差值和第一竖直分量差值,具体为:根据该仿射变换参数和该第一水平距离,确定该第一水平分量差值和该第一竖直分量差值;前述步骤中,确定该第三控制点与该第四控制点的运动矢量的第二水平分量差值和第二竖直分量差值,具体为:根据该仿射变换参数和该第一竖直距离,确定该第二水平分量差值和该第二竖直分量差值。
应理解,前述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明实施例中,可选地,仿射变换模型可以采用现有技术中的6参数仿射变换模型,也可以采用4参数或2参数仿射变换模型,6参数仿射变换模型主要应用于前述方案1中的3控制点的场景中,4参数仿射变换模型主要应用于前述方案2及3中的两控制点的场景中,具体内容请参照本文在介绍解码方法中的描述。
在本发明实施例中,可选地,可以通过确定该第一控制点的运动矢量、该第二控制点的运动矢量、该第三控制点的运动矢量和该第四控制点的运动矢量,从而来确定仿射图像块的运动矢量差异;
相应地,在前述方案1的场景中,将该第一控制点的运动矢量的水平分量与该第二控制点的运动矢量的水平分量的差值确定为该第一水平分量差值;将该第一控制点的运动矢量的竖直分量和该第二控制点的运动矢量的竖直分量的差值,确定为该第一竖直分量差值;将该第三控制点的运动矢量的水平分量与该第四控制点的运动矢量的水平分量的差值确定为该第二水平分量差值;将该第三控制点的运动矢量的竖直分量和该第四控制点的运动矢量的竖直分量的差值,确定为该第二竖直分量差值。
在前述方案2的场景中,将该第一控制点的运动矢量的水平分量与该第二控制点的运动矢量的水平分量的差值确定为该第一水平分量差值;将该第一控制点的运动矢量的竖直分量和该第二控制点的运动矢量的竖直分量的差值,确定为该第一竖直分量差值。
在前述方案3的场景中,将该第三控制点的运动矢量的水平分量与该第四控制点的运动矢量的水平分量的差值确定为该第二水平分量差值;将该第三控制点的运动矢量的竖直分量和该第四控制点的运动矢量的竖直分量的差值,确定为该第二竖直分量差值。
具体而言,可以直接确定出控制点的运动矢量,通过将运动矢量的各分量分别作差,就可以直接得到Affine块的运动矢量差异的第一分量和第二分量。
在本发明实施例中,可选地,该第一控制点与该第二控制点为相邻的两个像素点,该第三控制点与该第四控制点为相邻的两个像素点,即控制点并不一定选在仿射图像块的四个角点,又叫顶点上,而是可以根据编解码端共同设置的,或者在码流中以信令的方式明示的,或者根据周边仿射图像块的控制点估计或者是复制得到的位于该仿射图像块内任意位置点,在此情况下;确定第一水平、竖直分量差值,以及第二水平、竖直分量差值具体为:
确定第一像素点的运动矢量、第二像素点的运动矢量和第三像素点的运动矢量,该第一像素点、该第二像素点和该第三像素点为互相不重合的像素点;确定该第一像素点与该第二像素点之间的第二水平距离和第二竖直距离;确定该第一像素点与该第三像素点之间的第三水平距离和第三竖直距离;根据该第一像素点的运动矢量、该第二像素点的运动矢量、该第三像素点的运动矢量、该第二水平距离、该第二竖直距离、该第三水平距离和该第三竖直距离,确定该第一水平分量差值、该第一竖直分量差值、该第二水平分量差值和该第二竖直分量差值。以上是以前述的方案1的三控制点为例,根据前面的示例可以,当采用前述方案2或方案3中的两控制点与方案1的三控制点的区别在于,仅取方案1中的第一分量差值或者第二分量差值作为二控制点仿射图像的运动矢量差异。
在本发明实施例中,可选地,编码设备可以从通过运动估计搜索得到所有控制点的运动矢量;可以从周围图像块获得所有控制点的运动矢量;可以根据仿射变换模型计算出所有控制点的运动矢量;可以通过运动估计搜索得到部分控制点的运动矢量,从邻近图像块获得其他控制点的运动矢量;可以通过仿射运动估计搜索得到部分控制点的运动矢量,根据仿射变换模型计算得到其他控制点的运动矢量;可以从邻近图像块获得部分控制点的运动矢量,根据仿射变换模型计算出其他控制点的运动矢量;但本发明并不限于此。
可选地,在S1430中,可以将第一预设值确定为该仿射图像块的运动矢量精度;或根据该仿射图像块的邻近图像块的特性确定该仿射图像块的运动矢量精度,该邻近图像块为与该仿射图像块在空间上和/或时间上相邻的图像块。
可选地,如图15所示,S1450具体包括:
S1501,根据该运动矢量精度与该运动矢量差异的第一分量的比例对该第一水平距离进行等比例调整得到该仿射运动补偿子图像块的水平方向的长度,确定该仿射图像块的水平方向的长度是否是该仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整该仿射运动补偿子图像块的水平方向的长度以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的调整后的水平方向的长度的整数倍。
具体地,该运动矢量精度与运动矢量差异的第一分量的比例为该运动矢量精度与运动矢量差异的第一分量的比值,该比值与该第一水平距离的乘积则为该仿射运动补偿子图像块的水平方向的长度,也可以称之为水平方向的初始长度;可以理解,该仿射运动补偿子图像块的水平方向的初始长度在某些情况下可能为非整数,此时需要对该初始长度取整,为保证精度,通常是向下取整,即,直接丢弃小部分,例如,初始长度值为8.35(即,8.35个单位像素的长度),且直接取8作为仿射运动补偿子图像块的水平方向的长度;当然,也可以采用四舍五入的取整原则,即小数部分小于5则向下取整,小数部分大于5,则向上取整,例如当计算得出的长度为8.86时,取9作为其长度,为了保证效率,初始长度的最小值应该不小于预设的值,例如不能小于2、4、8或者2N等预设的值,该预设值通常设置为4,也不应大于仿射变换图像块的在水平方向的长度。该水平方向的初始长度或者水平方向的取整后的初始长度是否合适,取决于其是否能够将仿射图像块在水平方向的长度整除,若能整数,则说明仿射图像块在水平方向是否能够以该水平方向的初始长度或者水平方向取整后的初始长度为单位被划分成整数个子块。通常其调整方式是采用逐步递增/递减该水平方向的初始长度或者水平方向取整后的初始长度的方法,即,若确定该仿射图像块的水平方向的长度不是该仿射运动补偿子图像块的水平方向的长度的整数倍,则对该仿射运动补偿子图像块的水平方向的长度做增加/减少一个或者多个单位长度的调整,接着循环执行上述的方案直至该仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的调整后的长度的整数倍。其中,上述单位长度通常是一个单位像素,即,对该仿射运动补偿子图像块的水平方向的长度做加一/减一的调整,为了不失通用性,也可以说是对该仿射运动补偿子图像块的竖直方向的长度按照固定的步长做增加/减少的调整,所述的步长为调整值,即,每个循环内对仿射运动补偿子图像块的竖直方向的长度进行基本单位或者幅度;该步长通常为上述的一个单位像素,也可以是其他的值,如两个像素单位等。可选地,上述调整中所采用的步长/调整值也可以根据该仿射运动补偿子图像块的水平方向的初始长度的奇偶性变化,例如,当仿射运动补偿子图像块的水平方向的初始长度为奇数,选择奇数步长,例如,以奇数个单位长度,如一个单位长度为步长进行调整,当仿射运动补偿子图像块的水平方向的初始长度为偶数时,则选择偶数步长,例如,偶数个单位长度的步长。
此外,所述调整是增加还是减少可以根据解码端以及编码端共同约定来选择,也可以在编码端在码流明示,解码端参照选择,也可以通过周边相邻的块运动矢量精度值来推导,或者根据仿射图像块与该仿射运动补偿子图像块的水平方向的长度之间的比值关系来确定,例如比值小于阈值则选择减少,否则选择增加。
为了简化算法,同时兼顾编解码效率,确定该仿射图像块的水平方向的长度不是该仿射运动补偿子图像块的水平方向的长度的整数倍,则对该仿射运动补偿子图像块的水平方向的长度做增加一个预设单位长度的调整,接着循环执行上述的方案直至该仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的调整后的长度的整数倍。
此外,为了提高效率,节省运算时间,也可以将该仿射运动补偿子图像块的水平方向的长度朝向最接近整除该仿射图像块的水平方向的长度的方向调整,例如,该仿射运动补偿子图像块的水平方向的长度为7,而仿射图像块的水平方向的长度为16,此时,对仿射运动补偿子图像块的水平方向的长度加1变成8,从而能整除16;同理,该仿射运动补偿子图像块的水平方向的长度为5,此时,对仿射运动补偿子图像块的水平方向的长度减1变成4,从而能整除16。若,该仿射运动补偿子图像块的水平方向的长度距离与邻近且可整除该仿射图像块的水平方向的长度的两个相邻的值的距离相等,例如,该仿射运动补偿子图像块的水平方向的长度为6,仿射图像块的水平方向的长度为16,邻近长度6且可整除16的两个相邻的值分别为4和8,此时,可以根据编解码端的需求选择朝某一方向调整,例如,如果是要求低延时,此时可以选择朝增加的方向调整,如果要求高质量,则选择朝减小的方向调整,对此,本发明不做限制。
此外,上述步骤S1201中的,当确定该仿射图像块的水平方向的长度不是该仿射运动补偿子图像块的水平方向的长度的整数倍时,为了更进一步的简化算法,可以在编解码端分别建立相同的表格,以允许的最小整除数,如,2N为起始值,将仿射图像块水平方向的可能的最大长度划分为多个区间,区间的跨度为2N+i,i∈(0,(log2Wmax)-1),Wmax为仿射图像块水平方向的可能的最大长度。确定该仿射运动补偿子图像块的水平方向的长度所在的区间,以该仿射运动补偿子图像块的水平方向的长度所在的区间的下限值或者上限值为最终确定的所述仿射运动补偿子图像块的水平方向的长度。其上下限值的获取规则可以参照编解码两端约定,可以通过码流明示,或者可以通过四舍五入的方式选择临近的区间上限值或者下限值。通过以上的表格,可以采用根据仿射运动补偿子图像块的水平方向的初始长度采用查表的方式来确定该仿射运动补偿子图像块的水平方向的最终长度,从而可以替换前述步骤S1501中调整该仿射运动补偿子图像块的水平方向的长度的步骤降低***复杂度以及计算时间。
可选地,为了进一步降低该方案的计算复杂度,在步骤S1501中的,除了确定仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的长度的整数倍,还需要确定该仿射运动补偿子图像块的水平方向的长度是否是便于计算的预定长度S的整数倍,即,确定该仿射运动补偿子图像块的水平方向的长度是否满足条件:
(1)仿射图像块的水平方向的长度是该仿射运动补偿子图像块的水平方向的长度的整数倍,且(2)该仿射运动补偿子图像块的水平方向的长度是预定长度S的整数倍;
若不满足,则调整该仿射运动补偿子图像块的水平方向的长度以使其满足上述的条件(1)和条件(2),即,该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的调整后的水平方向的长度的整数倍,且该仿射运动补偿子图像块的调整后的水平方向的长度是该预设长度的整数倍。预设长度S通常取4,也可以取8、16、32等数值,或者说S=2n,n为零或者正整数。本方案对于任意形状的仿射图像块均适用,若仿射图像块是采用四叉树(QualTree)的规则划分的情况下,由于上述判断条件(1)(2)中任一个条件的满足即可以满足另外一个条件,因此,仅需要保留一其中一个判定条件即可。
可选地,通过上述方式确定的该仿射运动补偿子图像块的水平方向的长度需要进行限幅操作,即通过比较的方式使的M位于下限Tm以及上限W之间,Tm为预设值,通常为4,W为仿射图像块的在水平方向的长度。
S1503,根据该运动矢量精度与该运动矢量差异的第二分量的比例对该第一竖直距离进行等比例调整得到该仿射运动补偿子图像块的竖直方向的长度,确定该仿射图像块的竖直方向的长度是否是该仿射运动补偿子图像块的竖直向的长度的整数倍,若否,则调整该仿射运动补偿子图像块的水平方向的长度以使该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
具体地,该运动矢量精度与运动矢量差异的第二分量的比例为该运动矢量精度与运动矢量差异的第二分量的比值,该比值与该第一竖直距离乘积则为该仿射运动补偿子图像块的竖直方向的长度,也可以称之为竖直方向的初始长度;可以理解,该仿射运动补偿子图像块的竖直方向的初始长度在某些情况下可能为非整数,此时需要对该初始长度取整,为保证精度,通常是向下取整,即,直接丢弃小部分,例如,初始长度值为8.35(即,8.35个单位像素的长度),且直接取8作为仿射运动补偿子图像块的竖直方向的长度;当然,也可以采用四舍五入的取整原则,即小数部分小于5则向下取整,小数部分大于5,则向上取整,例如当计算得出的长度为8.86时,取9作为其长度,为了保证效率,初始长度的最小值应该不小于预设的值,例如不能小于2、4、8或者2N等预设的值,该预设值通常设置为4,也不应大于仿射变换图像块的在竖直方向的长度。该竖直方向的初始长度或者竖直方向的取整后的初始长度是否合适,取决于其是否能够将仿射图像块在竖直方向的长度整除,若能整数,则说明仿射图像块在竖直方向是否能够以该竖直方向的初始长度或者竖直方向取整后的初始长度为单位被划分成整数个子块。通常其调整方式是采用逐步递增/递减该竖直方向的初始长度或者竖直方向取整后的初始长度的方法,即,若确定该仿射图像块的竖直方向的长度不是该仿射运动补偿子图像块的竖直方向的长度的整数倍,则对该仿射运动补偿子图像块的竖直方向的长度做增加/减少一个或者多个单位长度的调整,接着循环执行上述的方案直至该仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的调整后的长度的整数倍。其中,上述单位长度通常是一个单位像素,即,对该仿射运动补偿子图像块的竖直方向的长度做加一/减一的调整,为了不失通用性,也可以说是对该仿射运动补偿子图像块的竖直方向的长度按照固定的步长做增加/减少的调整,所述的步长为调整值,即,每个循环内对仿射运动补偿子图像块的竖直方向的长度进行基本单位或者幅度;该步长通常为上述的一个单位像素,也可以是其他的值,如两个像素单位等。可选地,上述调整中所采用的步长/调整值也可以根据该仿射运动补偿子图像块的竖直方向的初始长度的奇偶性变化,例如,当仿射运动补偿子图像块的竖直方向的初始长度为奇数,选择奇数步长,例如,以奇数个单位长度,如一个单位长度为步长进行调整,当仿射运动补偿子图像块的竖直方向的初始长度为偶数时,则选择偶数步长,例如,偶数个单位长度的步长。
此外,所述调整是增加还是减少可以根据解码端以及编码端共同约定来选择,也可以由编码端在码流明示,解码端参照选择,也可以通过周边相邻的块运动矢量精度值来推导,或者根据仿射图像块与该仿射运动补偿子图像块的竖直方向的长度之间的比值关系来确定,例如比值小于阈值则选择减少,否则选择增加。
为了简化算法,同时兼顾编解码效率,确定该仿射图像块的竖直方向的长度不是该仿射运动补偿子图像块的竖直方向的长度的整数倍,则对该仿射运动补偿子图像块的竖直方向的长度做增加一个预设单位长度的调整,接着循环执行上述的方案直至该仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的调整后的长度的整数倍。
此外,为了提高效率,节省运算时间,也可以将该仿射运动补偿子图像块的竖直方向的长度朝向最接近整除该仿射图像块的竖直方向的长度的方向调整,例如,该仿射运动补偿子图像块的竖直方向的长度为7,而仿射图像块的竖直方向的长度为16,此时,对仿射运动补偿子图像块的竖直方向的长度加1变成8,从而能整除16;同理,该仿射运动补偿子图像块的竖直方向的长度为5,此时,对仿射运动补偿子图像块的竖直方向的长度减1变成4,从而能整除16。若,该仿射运动补偿子图像块的竖直方向的长度距离与邻近且可整除该仿射图像块的竖直方向的长度的两个相邻的值的距离相等,例如,该仿射运动补偿子图像块的竖直方向的长度为6,仿射图像块的竖直方向的长度为16,邻近长度6且可整除16的两个相邻的值分别为4和8,此时,可以根据编解码端的需求选择朝某一方向调整,例如,如果是要求低延时,此时可以选择朝增加的方向调整,如果要求高质量,则选择朝减小的方向调整,对此,本发明不做限制。
此外,上述步骤S1503中的,当确定该仿射图像块的竖直方向的长度不是该仿射运动补偿子图像块的竖直方向的长度的整数倍时,为了更进一步的简化算法,可以在编解码端分别建立相同的表格,以允许的最小整除数,如,2N为起始值,将仿射图像块竖直方向的可能的最大长度划分为多个区间,区间的跨度为2N+i,i∈(0,(log2Wmax)-1),Wmax为仿射图像块竖直方向的可能的最大长度。确定该仿射运动补偿子图像块的竖直方向的长度所在的区间,以该仿射运动补偿子图像块的竖直方向的长度所在的区间的下限值或者上限值为最终确定的所述仿射运动补偿子图像块的竖直方向的长度。其上下限值的获取规则可以参照编解码两端约定,可以通过码流明示,或者可以通过四舍五入的方式选择临近的区间上限值或者下限值。通过以上的表格,可以采用根据仿射运动补偿子图像块的竖直方向的初始长度采用查表的方式来确定该仿射运动补偿子图像块的竖直方向的最终长度,从而可以替换前述步骤S1503中调整该仿射运动补偿子图像块的竖直方向的长度的步骤降低***复杂度以及计算时间。
可选地,为了进一步降低该方案的计算复杂度,在步骤S1503中的,除了确定,仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的长度的整数倍,还需要确定该仿射运动补偿子图像块的竖直方向的长度是否是便于计算的预定长度S的整数倍,即,确定该仿射运动补偿子图像块的竖直方向的长度是否满足条件:
(1)仿射图像块的竖直方向的长度是该仿射运动补偿子图像块的竖直方向的长度的整数倍,且(2)该仿射运动补偿子图像块的竖直方向的长度是预定长度S的整数倍;
若不满足,则调整该仿射运动补偿子图像块的竖直方向的长度以使其满足上述的条件(1)和条件(2),即,该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍,且该仿射运动补偿子图像块的调整后的竖直方向的长度是该预设长度的整数倍。预设长度S通常取4,也可以取8、16、32等数值,或者说S=2n,n为零或者正整数。本方案对于任意形状的仿射图像块均适用,若仿射图像块是采用四叉树(QualTree)的规则划分的情况下,由于上述判断条件(1)(2)中任一个条件的满足即可以满足另外一个条件,因此,仅需要保留一其中一个判定条件即可。
可选地,通过上述方式确定的该仿射运动补偿子图像块的竖直方向的长度需要进行限幅操作,即通过比较的方式使的M位于下限Tm以及上限W之间,Tm为预设值,通常为4,W为仿射图像块的在竖直方向的长度。
上述确定以及调整仿射运动补偿子图像块的尺寸的具体实现方式请参照本文中对解码方法中的具体描述。
因此,本发明实施例的视频图像编码的方法,编码设备通过确定的仿射图像块的运动矢量差异、运动矢量精度和控制点之间的距离,确定仿射运动补偿子图像块的尺寸,并根据仿射图像块尺寸与仿射运动补偿子图像块的尺寸关系来进一步调整使得仿射运动补偿子图像块的尺寸更便于实现,同时降低复杂度。通过实验验证,本发明可以使得编码端复杂度降低50%,解码端复杂度降低70%,同时保持了90~95%的性能,这可以使得基于Affine模型的运动补偿预测技术可以有效地投入到实际应用中。
可选地,如图16所示,S1470包括:
S1601,确定该仿射运动补偿子图像块中每个仿射运动补偿子图像块的运动矢量;
S1603,根据该每个仿射运动补偿子图像块的运动矢量,确定该每个仿射运动补偿子图像块的运动补偿预测信号;
S1605,根据该每个仿射运动补偿子图像块的运动补偿预测信号对该每个仿射运动补偿子图像块进行编码。
应理解,在本发明实施例中,每个Affine-MC块可能包含多个像素点,需要从每个Affine-MC中选取一个像素点的运动矢量作为该Affine-MC块的运动矢量。
可选地,在S1601中,可以选取Affine-MC块的中心位置处的像素点的运动矢量作为该Affine-MC块的运动矢量,可以将Affine-MC块内所有像素点的运动矢量的平均值作为该Affine-MC块的运动矢量,可以选取位于Affine-MC块的左上角的像素点的运动矢量作为该Affine-MC块的运动矢量,但本发明并不限于此。
在本发明实施例中,可选地,对该每个仿射运动补偿子图像块的边界像素点的信号进行滤波,该边界像素点为位于每个仿射运动补偿子图像块的边界的一行或多行像素点。
在本发明实施例中,可选地,该边界像素点的信号包括运动补偿预测信号和/或重建信号,该重建信号为运动补偿预测信号与重建的残差信号之和。
重建信号一般是将运动补偿预测信号与重建的残差信号相加而得到。残差信号一般使用有损编码,这会导致重建的残差信号与原始的残差信号之间存在失真。相邻Affine-MC块的边界处的像素的失真方向可能不一致,例如第一个Affine-MC块右边的像素由于失真变大,右边相邻的Affine-MC块左边的像素由于失真变小,这会导致在Affine-MC块的重建像素的边界处像素值不连续,影响主观和客观的效果。因此需要对重建信号进行滤波。
在本发明实施例中,可选地,可以通过低通滤波器进行滤波,使得边界区域的像素值变化的更平缓,例如使用高斯滤波器进行滤波,但本发明并不限于此。
在本发明实施例中,可选地,可以采用重叠分块运动补偿(Overlapped blockmotion compensation,简称为“OBMC”方法进行滤波。对待滤波的像素使用其邻近的Affine-MC块的运动矢量做运动补偿预测,将获得的运动补偿预测信号与使用待滤波像素自己的运动矢量获得的运动补偿预测信号进行加权平均,得到最终的运动补偿预测信号。
本发明实施例的视频图像解码的方法,解码设备通过确定的仿射图像块的运动矢量差异、运动矢量精度和控制点之间的距离,确定仿射运动补偿子图像块的尺寸,并根据仿射图像块尺寸与仿射运动补偿子图像块的尺寸关系来进一步调整使得仿射运动补偿子图像块的尺寸更便于实现,同时降低复杂度。通过实验验证,本发明可以使得编码端复杂度降低50%,解码端复杂度降低70%,同时保持了90~95%的性能,这可以使得基于Affine模型的运动补偿预测技术可以有效地投入到实际应用中。
下面将结合图17介绍用于实施本发明的解码装置1700,该解码装置1700包括:
运动矢量差异确定模块1710,用于确定仿射图像块的运动矢量差异;
运动矢量精度确定模块1730,用于确定该仿射图像块的运动矢量精度;
子图像块尺寸确定模块1750,用于根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的水平方向的长度的整数倍,且该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;以及,
解码模块1770,用于根据所述仿射运动补偿子图像块的尺寸,对所述仿射图像块进行解码处理。
具体而言,解码装置根据确定的控制点,确定仿射图像块的运动矢量差异,并确定该仿射图像块的运动矢量精度,根据确定的运动矢量差异、运动矢量精度、控制点之间的距离以及仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该仿射运动补偿子图像块的尺寸即为该仿射图像块的划分尺寸;基于该划分尺寸,所述仿射图像块被划分为多个具有相同尺寸的仿射运动补偿子图像块,然后基于该仿射运动补偿子图像块对所述仿射图像块进行解码。该解码装置中的各个模块为实现本发明解码方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本发明解码方法中各个方法步骤,如S710至S740中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见本文中对解码方法的介绍,为简洁起见,本文将不再赘述。
下面将结合图18详细描述本发明实施例的编码装置,该编码装置1800包括:
运动矢量差异确定模块1810,用于确定仿射图像块的运动矢量差异;
运动矢量精度确定模块1830,用于确定该仿射图像块的运动矢量精度;
子图像块尺寸确定模块1850,用于根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的在水平方向的长度为该仿射运动补偿子图像块的在水平方向的长度整数倍,且该仿射图像块在竖直方向的长度为该仿射运动补偿子图像块的在竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;
编码模块1870,用于根据该仿射运动补偿子图像块的尺寸,对该述仿射图像块进行编码处理。
具体而言,编码装置根据确定的控制点,确定仿射图像块的运动矢量差异,并确定该仿射图像块的运动矢量精度,根据确定的运动矢量差异、运动矢量精度、控制点之间的距离以及仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该仿射运动补偿子图像块的尺寸即为该仿射图像块的划分尺寸;基于该划分尺寸,所述仿射图像块被划分为多个具有相同尺寸的仿射运动补偿子图像块,然后基于该仿射运动补偿子图像块对所述仿射图像块进行编码。该编码装置中的各个模块为实现本发明解码方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本发明解码方法中各个方法步骤,如S1410至S1470中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见本文中对解码方法的介绍,为简洁起见,本文将不再赘述。
如图19所示,本发明实施例还提供了一种解码设备1900,包括处理器1910、存储器1930和总线***1950。其中,处理器和存储器通过总线***相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令。编码设备的存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行本发明解码方法700中的所有步骤以及其扩展,即,从图7至图13中所描述的所有方法。
例如,所述处理器可以调用存储器中存储的程序代码完整的执行本发明解码方法中的操作:
确定仿射图像块的运动矢量差异;
确定该仿射图像块的运动矢量精度;
根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的水平方向的长度为该仿射运动补偿子图像块的水平方向的长度的整数倍,且该仿射图像块的竖直方向的长度为该仿射运动补偿子图像块的竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;以及
根据该仿射运动补偿子图像块的尺寸,对该述仿射图像块进行解码处理。
在该解码过程,由于能够选取合适大小的子图像块,并通过对子图像块的尺寸进行调整使得所述仿射图像块被划分为多个具有相同尺寸的仿射运动补偿子图像块,从而降低解码的复杂度,提高解码性能。
应理解,在本发明实施例中,该处理器1910可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器1910还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1930可以包括只读存储器和随机存取存储器,并向处理器1910提供指令和数据。存储器32的一部分还可以包括非易失性随机存取存储器。例如,存储器1930还可以存储设备类型的信息。
该总线***1950除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***1950。
在实现过程中,上述方法的各步骤可以通过处理器1910中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1930,处理器1910读取存储器1930中的信息,结合其硬件完成上述方法的步骤。
如图20所示,本发明实施例还提供了一种编码设备2000,包括处理器2010、存储器2030和总线***2050。其中,处理器2010和存储器2030通过总线***2050相连,该存储器2030用于存储指令,该处理器2010用于执行该存储器2030存储的指令。编码设备2000的存储器2030存储程序代码,且处理器2010可以调用存储器2030中存储的程序代码执用于执行本发明解码方法1400中的所有步骤以及其扩展,即,从图14至图16中所反映的所有方法步骤。例如,处理器2010可以调用存储器2030中存储的程序代码执用于:
确定仿射图像块的运动矢量差异;
确定该仿射图像块的运动矢量精度;
根据该运动矢量差异、该运动矢量精度、该仿射图像块中的控制点之间的距离以及该仿射图像块的尺寸,确定该仿射图像块内的仿射运动补偿子图像块的尺寸,该尺寸包括水平方向的长度,以及竖直方向的长度,以使该仿射图像块的在水平方向的长度为该仿射运动补偿子图像块的在水平方向的长度整数倍,且该仿射图像块在竖直方向的长度为该仿射运动补偿子图像块的在竖直方向的长度的整数倍,其中,该控制点为用于确定该运动矢量差异的像素点;以及
根据该仿射运动补偿子图像块的尺寸,对该述仿射图像块进行编码处理。
在该编码过程,由于能够选取合适大小的子图像块,并通过对子图像块的尺寸进行调整使得所述仿射图像块被划分为多个具有相同尺寸的仿射运动补偿子图像块,从而降低编码的复杂度,提高编码性能。
应理解,在本发明实施例中,该处理器2010可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器2010还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器2030可以包括只读存储器和随机存取存储器,并向处理器2010提供指令和数据。存储器2030的一部分还可以包括非易失性随机存取存储器。例如,存储器2030还可以存储设备类型的信息。
该总线***2050除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***2050。
在实现过程中,上述方法的各步骤可以通过处理器2010中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2030,处理器2010读取存储器2030中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
Claims (20)
1.一种视频图像解码的方法,其特征在于,包括:
确定仿射图像块的运动矢量差异;
确定所述仿射图像块的运动矢量精度;确定所述仿射图像块内的仿射运动补偿子图像块的运动矢量,其中,所述仿射运动补偿子图像块的尺寸根据所述运动矢量差异、所述运动矢量精度、所述仿射图像块中的控制点之间的距离以及所述仿射图像块的尺寸确定,所述尺寸包括水平方向的长度,以及竖直方向的长度,以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的水平方向的长度的整数倍,且所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的竖直方向的长度的整数倍,且所述仿射运动补偿子图像块的水平方向的长度为预定长度S的整数倍,所述仿射运动补偿子图像块的竖直方向的长度为所述预定长度S的整数倍,S等于2n,n为零或者正整数;其中,所述控制点为用于确定所述运动矢量差异的像素点;
根据所述仿射运动补偿子图像块的运动矢量,确定所述仿射运动补偿子图像块的运动补偿预测信号;
根据所述仿射运动补偿子图像块的运动补偿预测信号对所述仿射运动补偿子图像块进行解码。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据所述运动矢量精度与所述运动矢量差异的第一分量的比例对所述第一水平距离进行等比例调整得到所述仿射运动补偿子图像块的水平方向的长度及竖直方向的长度,其中,所述仿射运动补偿子图像块的水平方向和竖直方向的长度均为整数;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的竖直方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
3.根据权利要求1所述的方法,其特征在于,还包括:
根据所述运动矢量精度与所述运动矢量差异的第二分量的比例对所述第一竖直距离进行等比例调整得到所述仿射运动补偿子图像块的竖直方向的长度和水平方向的长度,其中,所述仿射运动补偿子图像块的竖直方向和水平方向的长度均为整数;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的竖直向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据所述运动矢量精度与所述运动矢量差异的第一分量的比例对所述第一水平距离进行等比例调整得到所述仿射运动补偿子图像块的水平方向的长度,其中,所述仿射运动补偿子图像块的水平方向的长度为整数;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
根据所述运动矢量精度与所述运动矢量差异的第二分量的比例对所述第一竖直距离进行等比例调整得到所述仿射运动补偿子图像块的竖直方向的长度,其中,所述仿射运动补偿子图像块的竖直方向的长度为整数;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的竖直向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
5.根据权利要求2至4任意一项所述的方法,其特征在于,
所述调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍包括:
对所述仿射运动补偿子图像块的水平方向的长度做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
所述调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍包括:
对所述仿射运动补偿子图像块的竖直方向的长度做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
6.根据权利要求2至4任意一项所述的方法,其特征在于,
所述调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍包括:
对所述仿射图像块的水平方向的长度朝最接近整除所述仿射图像块的水平方向的长度的数值的方向做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的水平方向长度是否是所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
所述调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍包括:
对所述仿射图像块的竖直方向的长度朝最接近整除所述仿射图像块的竖直方向的长度的数值的方向做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
7.根据权利要求2至6任意一项所述的方法,其特征在于,所述方法还包括:
确定所述仿射运动补偿子图像块的调整后的水平方向的长度是否为所述预定长度S的整数倍;
若否,对所述仿射运动补偿子图像块的调整后的水平方向的长度做增加/减少一个或者多个单位长度的二次调整,直至所述仿射运动补偿子图像块的二次调整后的水平方向的长度为所述预定长度S的整数倍;
确定所述仿射运动补偿子图像块的调整后的竖直方向的长度是否为所述预定长度S的整数倍;
若否,对所述仿射运动补偿子图像块的调整后的竖直方向的长度做增加/减少一个或者多个单位长度的二次调整,直至所述仿射运动补偿子图像块的二次调整后的竖直方向的长度为所述预定长度S的整数倍。
8.根据权利要求1所述的方法,其特征在于,还包括:
根据所述运动矢量差异、所述运动矢量精度、所述仿射图像块中的控制点之间的距离以及所述仿射图像块的尺寸在预设的尺寸表中通过查表确定所述仿射图像块内的所述仿射运动补偿子图像块的尺寸,所述预设的尺寸表存储有依据运动矢量差异、所述运动矢量精度、所述仿射图像块中的控制点之间的距离及所述仿射图像块的尺寸预先确定的仿射运动补偿子图像块的尺寸,所述预先确定的仿射运动补偿子图像块的尺寸满足,所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的水平方向的长度的整数倍,且所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的竖直方向的长度的整数倍。
9.根据权利要求8所述的方法,其特征在于,其中,所述预先确定的仿射运动补偿子图像块的尺寸还满足,所述仿射运动补偿子图像块的水平方向的长度为所述预定长度S的整数倍,且所述仿射运动补偿子图像块的竖直方向的长度为所述预定长度S的整数倍。
10.一种视频图像编码的方法,其特征在于,包括:
确定仿射图像块的运动矢量差异;
确定所述仿射图像块的运动矢量精度;
确定所述仿射图像块内的仿射运动补偿子图像块的运动矢量,其中,所述仿射运动补偿子图像块的尺寸根据所述运动矢量差异、所述运动矢量精度、所述仿射图像块中的控制点之间的距离以及所述仿射图像块的尺寸确定,所述尺寸包括水平方向的长度,以及竖直方向的长度,以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的水平方向的长度的整数倍,且所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的竖直方向的长度的整数倍,且所述仿射运动补偿子图像块的水平方向的长度为预定长度S的整数倍,所述仿射运动补偿子图像块的竖直方向的长度为所述预定长度S的整数倍,S等于2n,n为零或者正整数;其中,所述控制点为用于确定所述运动矢量差异的像素点;
根据所述仿射运动补偿子图像块的运动矢量,确定所述仿射运动补偿子图像块的运动补偿预测信号;
根据所述仿射运动补偿子图像块的运动补偿预测信号对所述仿射运动补偿子图像块进行编码。
11.根据权利要求10所述的方法,其特征在于,还包括:
根据所述运动矢量精度与所述运动矢量差异的第一分量的比例对所述第一水平距离进行等比例调整得到所述仿射运动补偿子图像块的水平方向的长度及竖直方向的长度,其中,所述仿射运动补偿子图像块的水平方向和竖直方向的长度均为整数;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的竖直方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
12.根据权利要求10所述的方法,其特征在于,还包括:
根据所述运动矢量精度与所述运动矢量差异的第二分量的比例对所述第一竖直距离进行等比例调整得到所述仿射运动补偿子图像块的竖直方向的长度和水平方向的长度,其中,所述仿射运动补偿子图像块的竖直方向和水平方向的长度均为整数;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的竖直向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍。
13.根据权利要求10所述的方法,其特征在于,还包括:
根据所述运动矢量精度与所述运动矢量差异的第一分量的比例对所述第一水平距离进行等比例调整得到所述仿射运动补偿子图像块的水平方向的长度,其中,所述仿射运动补偿子图像块的水平方向的长度为整数;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的水平方向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
根据所述运动矢量精度与所述运动矢量差异的第二分量的比例对所述第一竖直距离进行等比例调整得到所述仿射运动补偿子图像块的竖直方向的长度,其中,所述仿射运动补偿子图像块的竖直方向的长度为整数;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的竖直向的长度的整数倍,若否,则调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
14.根据权利要求11至13任意一项所述的方法,其特征在于,
所述调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍包括:
对所述仿射运动补偿子图像块的水平方向的长度做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的水平方向的长度是否是所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
所述调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍包括:
对所述仿射运动补偿子图像块的竖直方向的长度做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
15.根据权利要求11至13任意一项所述的方法,其特征在于,
所述调整所述仿射运动补偿子图像块的水平方向的长度以使所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍包括:
对所述仿射图像块的水平方向的长度朝最接近整除所述仿射图像块的水平方向的长度的数值的方向做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的水平方向长度是否是所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的调整后的水平方向的长度的整数倍;
所述调整所述仿射运动补偿子图像块的竖直方向的长度以使所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍包括:
对所述仿射图像块的竖直方向的长度朝最接近整除所述仿射图像块的竖直方向的长度的数值的方向做增加/减少一个或者多个单位长度的调整;
确定所述仿射图像块的竖直方向的长度是否是所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍,若否,重复所述调整及确定步骤直至所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的调整后的竖直方向的长度的整数倍。
16.根据权利要求11至15任意一项所述的方法,其特征在于,所述方法还包括:
确定所述仿射运动补偿子图像块的调整后的水平方向的长度是否为所述预定长度S的整数倍;
若否,对所述仿射运动补偿子图像块的调整后的水平方向的长度做增加/减少一个或者多个单位长度的二次调整,直至所述仿射运动补偿子图像块的二次调整后的水平方向的长度为预定长度S的整数倍;
确定所述仿射运动补偿子图像块的调整后的竖直方向的长度是否为所述预定长度S的整数倍;
若否,对所述仿射运动补偿子图像块的调整后的竖直方向的长度做增加/减少一个或者多个单位长度的二次调整,直至所述仿射运动补偿子图像块的二次调整后的竖直方向的长度为所述预定长度S的整数倍。
17.根据权利要求10所述的方法,其特征在于,还包括:
根据所述运动矢量差异、所述运动矢量精度、所述仿射图像块中的控制点之间的距离以及所述仿射图像块的尺寸在预设的尺寸表中通过查表确定所述仿射图像块内的所述仿射运动补偿子图像块的尺寸,所述预设的尺寸表存储有依据运动矢量差异、所述运动矢量精度、所述仿射图像块中的控制点之间的距离及所述仿射图像块的尺寸预先确定的仿射运动补偿子图像块的尺寸,所述预先确定的仿射运动补偿子图像块的尺寸能够满足,所述仿射图像块的水平方向的长度为所述仿射运动补偿子图像块的水平方向的长度的整数倍,且所述仿射图像块的竖直方向的长度为所述仿射运动补偿子图像块的竖直方向的长度的整数倍。
18.根据权利要求17所述的方法,其特征在于,其中,所述预先确定的仿射运动补偿子图像块的尺寸还满足,所述仿射运动补偿子图像块的水平方向的长度为所述预定长度S的整数倍,且所述仿射运动补偿子图像块的竖直方向的长度为所述预定长度S的整数倍。
19.一种解码设备,其包括处理器以及非易失性存储器,所述处理器调用存储在所述存储器中的程序代码以实现如权利要求1至9任意一项所述的解码方法。
20.一种编码设备,其包括处理器以及非易失性存储器,所述处理器调用存储在所述存储器中的程序代码以实现如权利要求10至18任意一项所述的编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310699831.1A CN116708780A (zh) | 2017-08-11 | 2017-08-11 | 视频图像编码和解码的方法、装置及设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710687117.5A CN109391814B (zh) | 2017-08-11 | 2017-08-11 | 视频图像编码和解码的方法、装置及设备 |
CN202310699831.1A CN116708780A (zh) | 2017-08-11 | 2017-08-11 | 视频图像编码和解码的方法、装置及设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710687117.5A Division CN109391814B (zh) | 2017-08-11 | 2017-08-11 | 视频图像编码和解码的方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116708780A true CN116708780A (zh) | 2023-09-05 |
Family
ID=65270850
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310699831.1A Pending CN116708780A (zh) | 2017-08-11 | 2017-08-11 | 视频图像编码和解码的方法、装置及设备 |
CN201710687117.5A Active CN109391814B (zh) | 2017-08-11 | 2017-08-11 | 视频图像编码和解码的方法、装置及设备 |
CN201880052255.9A Pending CN110999302A (zh) | 2017-08-11 | 2018-08-09 | 视频图像编码和解码的方法、装置及设备 |
CN202010734355.9A Active CN111935482B (zh) | 2017-08-11 | 2018-08-09 | 视频图像编码和解码的方法、装置及设备 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710687117.5A Active CN109391814B (zh) | 2017-08-11 | 2017-08-11 | 视频图像编码和解码的方法、装置及设备 |
CN201880052255.9A Pending CN110999302A (zh) | 2017-08-11 | 2018-08-09 | 视频图像编码和解码的方法、装置及设备 |
CN202010734355.9A Active CN111935482B (zh) | 2017-08-11 | 2018-08-09 | 视频图像编码和解码的方法、装置及设备 |
Country Status (13)
Country | Link |
---|---|
US (2) | US11039127B2 (zh) |
EP (1) | EP3664452A1 (zh) |
JP (1) | JP2020529811A (zh) |
KR (1) | KR102357575B1 (zh) |
CN (4) | CN116708780A (zh) |
AU (1) | AU2018315106B2 (zh) |
BR (1) | BR112020002656A2 (zh) |
CA (1) | CA3072712A1 (zh) |
MX (1) | MX2020001646A (zh) |
PH (1) | PH12020500307A1 (zh) |
SG (1) | SG11202001199QA (zh) |
TW (1) | TWI692247B (zh) |
WO (1) | WO2019029590A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111247806B (zh) * | 2017-10-27 | 2023-11-14 | 松下电器(美国)知识产权公司 | 解码装置和解码方法 |
GB2589221B (en) | 2018-06-19 | 2023-03-22 | Beijing Bytedance Network Tech Co Ltd | Mode dependent MVD precision set |
US10999596B2 (en) * | 2018-06-19 | 2021-05-04 | Qualcomm Incorporated | Unification of affine motion field derivation and affine motion compensation |
WO2020047132A1 (en) * | 2018-08-29 | 2020-03-05 | Vid Scale, Inc. | Adaptive motion vector precision for affine motion model based video coding |
WO2020058886A1 (en) * | 2018-09-19 | 2020-03-26 | Beijing Bytedance Network Technology Co., Ltd. | Fast algorithms for adaptive motion vector resolution in affine mode |
WO2020098803A1 (en) * | 2018-11-15 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Harmonization between affine mode and other inter coding tools |
US11102476B2 (en) * | 2018-12-28 | 2021-08-24 | Qualcomm Incorporated | Subblock based affine motion model |
CN113412623A (zh) | 2019-01-31 | 2021-09-17 | 北京字节跳动网络技术有限公司 | 记录仿射模式自适应运动矢量分辨率的上下文 |
CN111247804B (zh) * | 2019-03-12 | 2023-10-13 | 北京大学 | 图像处理的方法与装置 |
CN111567044A (zh) * | 2019-03-13 | 2020-08-21 | 北京大学 | 一种视频处理方法、装置、编码设备及解码设备 |
JP7381615B2 (ja) * | 2019-06-25 | 2023-11-15 | オッポ広東移動通信有限公司 | 動き補償処理方法、エンコーダ、デコーダ、記憶媒体 |
CN110636301B (zh) * | 2019-09-18 | 2021-08-03 | 浙江大华技术股份有限公司 | 仿射预测方法、计算机设备和计算机可读存储介质 |
CN112204973A (zh) * | 2019-09-24 | 2021-01-08 | 北京大学 | 视频编解码的方法与装置 |
CN112135127B (zh) * | 2019-11-05 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置、设备及机器可读存储介质 |
US20240040141A1 (en) * | 2022-07-18 | 2024-02-01 | Tencent America LLC | Method for affine motion refinement |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2129133A3 (en) * | 1995-08-29 | 2012-02-15 | Sharp Kabushiki Kaisha | Video coding device and video decoding device with a motion compensated interframe prediction |
KR100359115B1 (ko) | 2000-05-24 | 2002-11-04 | 삼성전자 주식회사 | 영상 코딩 방법 |
JP3681342B2 (ja) | 2000-05-24 | 2005-08-10 | 三星電子株式会社 | 映像コーディング方法 |
KR100571920B1 (ko) * | 2003-12-30 | 2006-04-17 | 삼성전자주식회사 | 움직임 모델을 이용한 매쉬 기반의 움직임 보상방법을제공하는 영상의 부호화 방법 및 그 부호화 장치 |
KR100631777B1 (ko) * | 2004-03-31 | 2006-10-12 | 삼성전자주식회사 | 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치 |
DE102009026983A1 (de) * | 2009-06-16 | 2010-12-30 | Trident Microsystems (Far East) Ltd. | Bildverarbeitungsverfahren mit einer Bewegungsschätzung und Bildverarbeitungsanordnung |
CN107046644B (zh) | 2010-04-09 | 2020-03-24 | 三菱电机株式会社 | 运动图像编码装置以及运动图像解码装置 |
CN102611884B (zh) | 2011-01-19 | 2014-07-09 | 华为技术有限公司 | 图像编解码方法及编解码设备 |
CN112087630B (zh) * | 2014-09-30 | 2022-04-08 | 华为技术有限公司 | 图像预测方法、装置、解码器及存储介质 |
CN109005407B (zh) * | 2015-05-15 | 2023-09-01 | 华为技术有限公司 | 视频图像编码和解码的方法、编码设备和解码设备 |
US10560712B2 (en) * | 2016-05-16 | 2020-02-11 | Qualcomm Incorporated | Affine motion prediction for video coding |
US10448010B2 (en) * | 2016-10-05 | 2019-10-15 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
US10701390B2 (en) * | 2017-03-14 | 2020-06-30 | Qualcomm Incorporated | Affine motion information derivation |
-
2017
- 2017-08-11 CN CN202310699831.1A patent/CN116708780A/zh active Pending
- 2017-08-11 CN CN201710687117.5A patent/CN109391814B/zh active Active
-
2018
- 2018-08-09 AU AU2018315106A patent/AU2018315106B2/en active Active
- 2018-08-09 SG SG11202001199QA patent/SG11202001199QA/en unknown
- 2018-08-09 KR KR1020207006267A patent/KR102357575B1/ko active IP Right Grant
- 2018-08-09 CN CN201880052255.9A patent/CN110999302A/zh active Pending
- 2018-08-09 CN CN202010734355.9A patent/CN111935482B/zh active Active
- 2018-08-09 JP JP2020507658A patent/JP2020529811A/ja active Pending
- 2018-08-09 BR BR112020002656-5A patent/BR112020002656A2/pt unknown
- 2018-08-09 CA CA3072712A patent/CA3072712A1/en not_active Abandoned
- 2018-08-09 EP EP18843177.9A patent/EP3664452A1/en not_active Withdrawn
- 2018-08-09 WO PCT/CN2018/099512 patent/WO2019029590A1/zh unknown
- 2018-08-09 MX MX2020001646A patent/MX2020001646A/es unknown
- 2018-08-13 TW TW107128135A patent/TWI692247B/zh active
-
2020
- 2020-02-10 US US16/786,660 patent/US11039127B2/en active Active
- 2020-02-11 PH PH12020500307A patent/PH12020500307A1/en unknown
-
2021
- 2021-04-20 US US17/234,976 patent/US11496732B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN110999302A (zh) | 2020-04-10 |
KR20200033331A (ko) | 2020-03-27 |
KR102357575B1 (ko) | 2022-02-08 |
US20210243432A1 (en) | 2021-08-05 |
EP3664452A4 (en) | 2020-06-10 |
TW201919402A (zh) | 2019-05-16 |
CA3072712A1 (en) | 2019-02-14 |
BR112020002656A2 (pt) | 2020-08-18 |
AU2018315106B2 (en) | 2022-10-06 |
CN111935482B (zh) | 2023-04-11 |
WO2019029590A1 (zh) | 2019-02-14 |
CN109391814A (zh) | 2019-02-26 |
EP3664452A1 (en) | 2020-06-10 |
CN111935482A (zh) | 2020-11-13 |
US11039127B2 (en) | 2021-06-15 |
MX2020001646A (es) | 2020-08-03 |
AU2018315106A1 (en) | 2020-03-12 |
CN109391814B (zh) | 2023-06-06 |
TWI692247B (zh) | 2020-04-21 |
SG11202001199QA (en) | 2020-03-30 |
JP2020529811A (ja) | 2020-10-08 |
RU2020110025A (ru) | 2021-09-14 |
US20200177877A1 (en) | 2020-06-04 |
RU2020110025A3 (zh) | 2021-11-03 |
PH12020500307A1 (en) | 2021-02-08 |
US11496732B2 (en) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391814B (zh) | 视频图像编码和解码的方法、装置及设备 | |
US20200260108A1 (en) | Adaptive Interpolation Filter | |
US10382781B2 (en) | Interpolation filters for intra prediction in video coding | |
CN109005407B (zh) | 视频图像编码和解码的方法、编码设备和解码设备 | |
TW202101989A (zh) | 用於視訊寫碼之參考圖像重採樣及框間寫碼工具 | |
CN113923455B (zh) | 一种双向帧间预测方法及装置 | |
US11632563B2 (en) | Motion vector derivation in video coding | |
US11606571B2 (en) | Spatial varying transform for video coding | |
WO2019201232A1 (en) | Intra-prediction using cross-component linear model | |
TW202106021A (zh) | 使用非矩形預測模式減少視訊資料之預測之運動場儲存 | |
TW202019173A (zh) | 用於視訊寫碼中之適應性運動向量差解析度及增加的運動向量儲存精確度的運動向量捨位 | |
CN114375582A (zh) | 处理亮度和色度信号的方法和*** | |
TW202029774A (zh) | 藉由轉換域濾波之量化假影抑制及信號恢復 | |
CN114868393A (zh) | 执行环绕运动补偿的方法 | |
CN115398906A (zh) | 用信号通知视频编码数据的方法 | |
TW202002654A (zh) | 具有群組分流位元子之係數寫碼 | |
CN113068026A (zh) | 解码预测方法、装置及计算机存储介质 | |
CN111758255A (zh) | 用于视频编解码的位置相关空间变化变换 | |
RU2771955C2 (ru) | Устройство, оборудование, способ кодирования и декодирования видеоизображений | |
TW202041024A (zh) | 用於視訊寫碼中具有運動向量差之合併模式之信令傳輸 | |
TW202038611A (zh) | 用於視訊寫碼之三角運動資訊 | |
CN115804095A (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 |