CN115550664A - 获取运动矢量的方法和装置 - Google Patents

获取运动矢量的方法和装置 Download PDF

Info

Publication number
CN115550664A
CN115550664A CN202211020629.3A CN202211020629A CN115550664A CN 115550664 A CN115550664 A CN 115550664A CN 202211020629 A CN202211020629 A CN 202211020629A CN 115550664 A CN115550664 A CN 115550664A
Authority
CN
China
Prior art keywords
block
processed
motion vector
sub
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211020629.3A
Other languages
English (en)
Other versions
CN115550664B (zh
Inventor
陈焕浜
赵寅
杨海涛
陈建乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211020629.3A priority Critical patent/CN115550664B/zh
Publication of CN115550664A publication Critical patent/CN115550664A/zh
Application granted granted Critical
Publication of CN115550664B publication Critical patent/CN115550664B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/567Motion estimation based on rate distortion criteria

Abstract

本申请提供了一种获取运动矢量的方法和装置。该方法包括:确定第一取值区间和第二取值区间;确定待处理块的目标偏移矢量和目标图像的标识信息,其中,待处理块包含至少一个待处理子块,目标偏移矢量在第一方向上的分量的取值在第一取值区间内,目标偏移矢量在第二方向上的分量的取值在第二取值区间内,第一方向和第二方向呈正交关系;根据待处理子块的位置和目标偏移矢量,在目标图像中确定待处理子块的对应子块;根据对应子块的运动矢量确定待处理子块的运动矢量。本申请通过限制目标偏移矢量的范围,能够在获取对应子块的运动矢量时,减少内存读取次数。

Description

获取运动矢量的方法和装置
技术领域
本申请是分案申请,原申请的申请号是201810564560.8,原申请日是2018年06月04日,原申请的全部内容通过引用结合在本申请中。原申请涉及视频编解码技术领域,并且更具体地,涉及一种获取运动矢量的方法和装置。
背景技术
数字视频能力可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(personal digital assistant,PDA)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话″)、视频电话会议装置、视频流式传输装置及其类似者。数字视频装置实施视频压缩技术,例如,在由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分高级视频编码(AVC)定义的标准、视频编码标准H.265/高效视频编码(high efficiency video coding,HEVC)标准以及此类标准的扩展中所描述的视频压缩技术。视频装置可通过实施此类视频压缩技术来更有效率地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图像内)预测和/或时间(图像间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频编码,视频条带(即,视频帧或视频帧的一部分)可分割成若干图像块,所述图像块也可被称作树块、编码单元(coding unit,CU)和/或编码节点。使用关于同一图像中的相邻块中的参考样本的空间预测来编码图像的待帧内编码(I)条带中的图像块。图像的待帧间编码(P或B)条带中的图像块可使用相对于同一图像中的相邻块中的参考样本的空间预测或相对于其它参考图像中的参考样本的时间预测。图像可被称作帧,且参考图像可被称作参考帧。
其中,包含HEVC标准在内的各种视频编码标准提出了用于图像块的预测性编码模式,即基于已经编码的视频数据块来预测当前待编码的块。在帧内预测模式中,基于与当前块在相同的图像中的一或多个先前经解码相邻块来预测当前块;在帧间预测模式中,基于不同图像中的已经解码块来预测当前块。
在HEVC的帧间预测中,CU中的所有像素采用相同的运动信息进行运动补偿,以得到CU中的像素的预测值。但是CU内的像素并不一定都具有相同的运动特性,因此,采用相同的运动信息对CU内所有的像素进行预测可能会降低运动补偿的准确性,进而增加了残差信息。
为了解决上述问题,现有方案提出了高级时域运动矢量预测(advanced temporalmotion vector prediction,ATMVP)技术。
利用ATMVP技术对进行预测的过程主要包括:
(1)确定当前待处理块的偏移矢量;
(2)根据当前待处理中的待处理子块的位置以及上述偏移矢量,在对应图像中确定待处理子块的对应子块;
(3)根据对应子块的运动矢量,确定当前待处理子块的运动矢量;
(4)根据待处理子块的运动矢量对待处理子块进行运动补偿预测,得到待处理子块的预测像素值。
但是ATMVP技术中确定的对应子块的在对应图像中的范围不定,需要从对应图像中频繁读取对应子块的运动信息,进而会增加内存读取带宽,增加预测过程的复杂度。
发明内容
本申请提供一种获取运动矢量的方法和装置,以减少内存读取次数。
第一方面,提供一种获取运动矢量的方法,该方法包括:确定第一取值区间和第二取值区间;确定待处理块的目标偏移矢量和目标图像的标识信息,该待处理子块包含至少一个待处理子块;根据待处理子块的位置和目标偏移矢量,在目标图像中确定待处理子块的对应子块;根据对应子块的运动矢量确定待处理子块的运动矢量。
其中,上述目标偏移矢量在第一方向上的分量的取值在第一取值区间内,上述目标偏移矢量在第二方向上的分量的取值在第二取值区间内,第一方向和第二方向呈正交关系。
应理解,可以通过对待处理块进行再次划分来得到至少一个待处理子块。进一步地,当待处理块为编码单元CU时,待处理子块就是对CU进行划分后得到的子CU。
此外,上述待处理块在目标图像中所对应的(图像)块可以称为对应块,对应块中包含至少一个对应子块,上述目标偏移矢量用于确定待处理块在目标图像中的对应块(的位置)。应理解,这里的目标偏移矢量与正常的运动矢量不同,这里的目标偏移矢量是用于确定对应块的矢量,而运动矢量的一般用于确定某个图像块的预测块,从而得到该图像块的预测像素值另外,偏移矢量还可以称为时间矢量(temporal vector),目标图像也可以称为对应图像。
上述第一取值区间和第二取值区间可以采用同一语法元素来指示。
具体地,上述第一取值区间包含第一阈值和第二阈值,上述第二取值区间包含第三阈值和第四阈值,通过解析语法元素可以获取第一阈值。第二阈值、第三阈值以及第四阈值与第一阈值有一定的倍数关系(或者其它数值关系),这样当获取到了第一阈值之后,就可以根据第二阈值至第四阈值与第一阈值的倍数关系来获取第二阈值至第四阈值了。
可选地,上述目标图像的标识信息为目标图像所在的图像帧的图像顺序序号POC。
应理解,上述POC用于指示图像在原图像序列中的实际位置,为了与编码/解码顺序相区别,也可以将POC称为显示顺序或者播放顺序。
可选地,上述目标图像的标识信息为目标图像所在的图像帧的索引信息或者索引值。
本申请中,由于目标偏移矢量的分量值在一定的取值范围内,因此,根据目标偏移矢量确定的在目标图像中确定的待处理子块也位于目标图像的一定范围内,进而可以通过预读取目标图像的一定范围内的时域运动矢量场的方式来减少内存带宽和内存的读取次数。
结合第一方面,在第一方面的某些实现方式中,在根据对应子块的运动矢量确定待处理子块的运动矢量之前,上述方法还包括:获取目标图像中预设区域中的像素点的运动矢量,该预设区域为待处理子块的对应子块的可能出现的范围。
本申请中,由于对应子块在目标图像中出现的范围是确定的,因此,通过预先获取目标图像中一定区域内的运动矢量,能够减少从目标图像中读取运动矢量的次数,也就是减少了内存的读取次数,另外,由于只获取目标图像中一定范围内的运动矢量,可以减少内存带宽。
应理解,上述第一取值范围可以是由第一阈值和第二阈值组成的取值区间,上述第二取值范围可以是由第三阈值和第四阈值组成的取值区间,其中,第一阈值小于第二阈值,第三阈值小于第四阈值。
可选地,上述第一取值区间为(第一阈值,第二阈值)、(第一阈值,第二阈值]、[第一阈值,第二阈值)以及[第一阈值,第二阈值]中的任意一种。
可选地,上述第二取值区间为(第三阈值,第四阈值)、(第三阈值,第四阈值]、[第三阈值,第四阈值)以及[第三阈值,第四阈值]中的任意一种。
也就是说,上述第一取值区间和第二取值区间可以是开区间、闭区间和半开半闭区间中的任一种。
应理解,当上述第一区间为(第一阈值,第二阈值)时,上述目标偏移矢量在第一方向上的分量的取值在第一取值区间内包括:上述目标偏移矢量在第一方向上的分量的取值大于第一阈值,且小于第二阈值。
当上述第一区间为[第一阈值,第二阈值]时,上述目标偏移矢量在第一方向上的分量的取值在第一取值区间内包括:上述目标偏移矢量在第一方向上的分量的取值大于或者等于第一阈值,且小于或者等于第二阈值。
结合第一方面,在第一方面的某些实现方式中,确定待处理块的目标偏移矢量,包括:确定待处理块的初始偏移矢量;当初始偏移矢量在第一方向上的分量的取值在第一取值区间内,且在第二方向上的分量的取值在第二取值区间内时,将初始偏移矢量确定为目标偏移矢量;当初始偏移矢量在第一方向和/或第二方向上的分量的取值超出第一取值区间和/或第二取值区间时,将初始偏移矢量在第一方向和/或第二方向上的分量的取值超出第一取值区间和/或第二取值区间的部分进行钳位处理,并将钳位处理后的初始偏移矢量确定为目标偏移矢量。
其中,钳位后的初始偏移矢量在第一方向和第二方向上的分量的取值分别在第一取值区间内和第二取值区间内。
通过对初始偏移矢量在第一方向和第二方向上的分量的取值进行限制,能够使得最终得到的目标偏移矢量在第一方向和第二方向上的分量的取值分别在第一取值区间内和第二取值区间内。
可选地,当初始偏移矢量在第一方向和/或第二方向上的分量的取值超出第一取值区间和/或第二取值区间时,将初始偏移矢量在第一方向和/或第二方向上的分量的取值超出第一取值区间和/或第二取值区间的部分进行钳位处理,并将钳位处理后的初始偏移矢量确定为目标偏移矢量,包括:
当初始偏移矢量在第一方向上的分量的取值在第一取值区间内,且在第二方向上的分量的取值在第二取值区间外时,对初始偏移矢量在第二方向上的分量超出第二取值区间的部分进行钳位处理,将钳位处理后的初始偏移矢量确定为目标偏移矢量;
当初始偏移矢量在第一方向上的分量的取值在第一取值区间外,且在第二方向上的分量的取值在第二取值区间内时,对初始偏移矢量在第一方向上的分量超出第一取值区间的部分进行钳位处理,将钳位处理后的初始偏移矢量确定为目标偏移矢量;
当初始偏移矢量在第一方向上的分量的取值在第一取值区间外,且在第二方向上的分量的取值在第二取值区间外时,对初始偏移矢量在第一方向上的分量超出第一取值区间的部分进行钳位处理,对初始偏移矢量在第二方向上的分量超出第二取值区间的部分进行钳位处理,将钳位处理后的初始偏移矢量确定为目标偏移矢量。
应理解,当初始偏移矢量在某个方向上的分量值超过该方向上能够取得的最大值时,钳位处理实际上就是对分量值超出该最大值部分进行截断,使得截断后的分量值小于或者等于该最大值;当初始偏移矢量在某个方向上的分量值小于该方向上能够取得的最小值时,钳位处理实际上就是对分量值进行补偿,也就是增加该分量值的大小,使得补偿后的分量值的大于或者等于该最小值。
结合第一方面,在第一方面的某些实现方式中,上述确定待处理块的初始偏移矢量,包括:将待处理块的预设空域相邻块的一个运动矢量确定为初始偏移矢量。
可选地,将待处理块的预设空域相邻块的一个运动矢量确定为初始偏移矢量,包括:按照预设顺序,将第一个可得的空域相邻块的运动矢量确定为初始偏移矢量。
直接将第一个可得的空域相邻块的运动矢量确定为初始偏移矢量,能够简化确定初始偏移矢量的过程。
结合第一方面,在第一方面的某些实现方式中,上述确定待处理块的初始偏移矢量,包括:从待处理块的预设空域相邻块中确定目标空域相邻块,其中,目标空域相邻块的运动矢量在第一方向上的分量的取值在第一取值区间内,在第二方向上的分量的取值在第二取值区间内;将目标空域相邻块的运动矢量作为目标偏移矢量。
通过直接将空域相邻块中分量值位于第一取值区间和第二取值区间内的运动矢量确定为目标偏移矢量,能够简化确定目标运动矢量的过程。
结合第一方面,在第一方面的某些实现方式中,确定第一取值区间和第二取值区间,包括:根据待处理块的位置和尺寸、待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围,确定第一取值区间和第二取值区间。
可选地,根据待处理块的位置和尺寸、待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围,确定第一取值区间,包括:根据待处理块的位置和尺寸、待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围确定第一阈值和第二阈值,其中,第一阈值为目标偏移矢量在第一方向上的分量能够取得的最小值,第二阈值为目标偏移矢量在第一方向上的分量能够取得的最大值;根据第一阈值和第二阈值,得到第一取值区间。
可选地,根据待处理块的位置和尺寸、待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围,确定第二取值区间,包括:根据待处理块的位置和尺寸、待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围确定第三阈值和第四阈值,其中,第三阈值为目标偏移矢量在第二方向上的分量能够取得的最小值,第四阈值为目标偏移矢量在第二方向上的分量能够取得的最大值;根据第三阈值和第四阈值,得到第二取值区间。
结合第一方面,在第一方面的某些实现方式中,CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在第一方向和第二方向上的扩展范围。
可选地,上述第一方向为水平方向,上述第二方向为竖直方向。
可选地,当上述第一方向为水平方向,上述第二方向为竖直方向时,CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在上、下、左、右方向上的扩展范围。
结合第一方面,在第一方面的某些实现方式中,CTU的时域运动矢量场的扩展范围信息携带于序列参数集SPS、图像参数集PPS以及头字段中的至少一种。
可选地,上述CTU的时域运动矢量场的扩展范围是预先设定好的。
结合第一方面,在第一方面的某些实现方式中,根据对应子块的运动矢量确定待处理子块的运动矢量,包括:根据待处理子块所在的图像帧的图像顺序序号POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图像的目标参考帧的POC,对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
可选地,根据待处理子块所在的图像帧的图像顺序序号POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图像的目标参考帧的POC,对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量,包括:确定待处理子块所在的图像帧的图像顺序序号POC与待处理子块所在的图像帧的目标参考帧的POC的差值为第一差值;确定目标图像的POC与目标图像的目标参考帧的POC的差值为第二差值;根据第一差值和第二差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
可选地,根据第一差值和第二差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量,包括:确定第一差值和第二差值的比值为第一比值;将第一比值与对应子块的运动矢量的乘积确定为待处理子块的运动矢量。
结合第一方面,在第一方面的某些实现方式中,待处理子块的运动矢量,根据以下公式获得:
Figure BDA0003813888070000051
其中,P1表示待处理子块所在的图像帧的POC,P2表示待处理子块所在的图像帧的目标参考帧的POC,P3表示目标图像的POC,P4表示目标图像的目标参考帧的POC,MV表示对应子块的运动矢量,MVs表示待处理子块的运动矢量。
可选地,MV分解为水平方向的运动矢量MVx和竖直方向的运动矢量MVy,分别按照上述公式计算,分别获得水平方向的运动矢量MVsx和竖直方向的运动矢量MVsy。
第二方面,提供一种获取运动矢量的方法,该方法包括:确定待处理块的目标偏移矢量和目标图像的标识信息,其中,待处理块包含至少一个待处理子块;根据待处理子块的位置和目标偏移矢量,确定出待处理子块在目标图像中的初始对应位置点;当初始对应位置点位于目标图像的预设区域内时,将初始对应位置点确定为目标对应位置点;当初始对应位置点超出预设区域时,将预设区域内距离初始对应位置点最近的位置确定为目标对应位置点;根据目标对应位置点对应的运动矢量确定待处理子块的运动矢量。
应理解,待处理块可以由至少一个待处理子块组成,获取待处理块的运动矢量可以分解成获取每个待处理子块的运动矢量。另外,上述待处理块可以是CU,待处理子块为子CU。
上述待处理块在目标图像中对的块可以称为对应块,对应块中包含至少一个对应子块,上述目标偏移矢量用于确定待处理块在目标图像中的对应块(的位置)。
应理解,上述目标偏移矢量与正常的运动矢量不同,这里的目标偏移矢量是用于确定对应块的矢量,而运动矢量的一般用于确定某个图像块的预测块,从而得到该图像块的预测像素值另外,偏移矢量还可以称为时间矢量(temporal vector),目标图像也可以称为对应图像。
应理解,对应位置点是相对于预设区域而言的,当预设区域以单点为基本组成单位时,对应位置点也以单点的形式存在;当预设区域以点集为基本组成单位时,对应位置点也以点集的形式存在。对应的,预设区域内的某一位置和对应位置点的距离,即为预设区域内某一单点和对应位置点的距离,或者,预设区域内某一点集和对应位置点的点集的距离。
本申请中,根据初始对应位置点以及目标图像的预设区域找到位于预设区域的目标对应位置点,进而根据目标图像的一定范围的运动矢量来确定待处理子块的运动矢量,进而可以通过预读取目标图像的一定范围内的时域运动矢量场的方式来减少内存带宽和内存的读取次数。
可选地,在根据对应子块的运动矢量确定待处理子块的运动矢量之前,上述方法还包括:获取目标图像中预设区域中的像素点的运动矢量,预设区域为待处理子块的对应子块的可能出现的范围。
本申请中,由于对应子块在目标图像中出现的范围是确定的,因此,通过预先获取目标图像中一定区域内的运动矢量,能够减少从目标图像中读取运动矢量的次数,也就是减少了内存的读取次数,另外,由于只获取目标图像中一定范围内的运动矢量,可以减少内存带宽。
结合第二方面,在第二方面的某些实现方式中,预设区域是根据待处理块所在的编码树单元CTU的位置和尺寸、目标图像的尺寸以及预设的CTU的时域运动矢量场的扩展范围确定的。
可选地,上述预设区域可以用横坐标取值区间和纵坐标取值区间来限定。
结合第二方面,在第二方面的某些实现方式中,CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在第一方向和第二方向上的扩展范围。
可选地,上述第一方向为水平方向,上述第二方向为竖直方向。
可选地,当上述第一方向为水平方向,上述第二方向为竖直方向时,CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在上、下、左、右方向上的扩展范围。
结合第二方面,在第二方面的某些实现方式中,CTU的时域运动矢量场的扩展范围信息携带于序列参数集SPS、图像参数集PPS以及头字段中的至少一种。
可选地,上述CTU的时域运动矢量场的扩展范围是预先设定好的。
结合第二方面,在第二方面的某些实现方式中,根据目标对应位置点对应的运动矢量确定待处理子块的运动矢量,包括:根据待处理子块所在的图像帧的图像顺序序号POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图象的目标参考帧的POC,对目标对应位置点对应的运动矢量进行缩放,以得到待处理子块的运动矢量。
可选地,根据待处理子块所在的图像帧的图像顺序序号POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图象的目标参考帧的POC,对目标对应位置点对应的运动矢量进行缩放,以得到待处理子块的运动矢量,包括:确定待处理子块所在的图像帧的图像顺序序号POC与待处理子块所在的图像帧的目标参考帧的POC的差值为第三差值;确定目标图像的POC与目标图象的目标参考帧的POC的差值为第四差值;根据第三差值和第四差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
可选地,根据第三差值和第四差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量,包括:确定第三差值和第四差值的比值为第二比值;将第二比值与对应子块的运动矢量的乘积确定为待处理子块的运动矢量。
结合第二方面,在第二方面的某些实现方式中,待处理子块的运动矢量,根据以下公式获得:
Figure BDA0003813888070000071
其中,P1表示待处理子块所在的图像帧的POC,P2表示待处理子块所在的图像帧的目标参考帧的POC,P3表示目标图像的POC,P4表示目标图像的目标参考帧的POC,MV表示目标对应位置点对应的运动矢量,MVs表示待处理子块的运动矢量。
可选地,MV分解为水平方向的运动矢量MVx和竖直方向的运动矢量MVy,分别按照上述公式计算,分别获得水平方向的运动矢量MVsx和竖直方向的运动矢量MVsy。
第三方面,提供一种获取运动矢量的装置,该装置包含用于执行上述第一方面或者第二方面中的任意一种实现方式中的方法的模块。
第四方面,提供一种获取运动矢量的装置,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行第一方面或者第二方面中的任意一种实现方式中的方法的部分或全部步骤。
第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第一方面或者第二方面中的任意一种实现方式中的方法的部分或全部步骤的指令。
第六方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面或者第二方面中的任意一种实现方式中的方法的部分或全部步骤的指令。
附图说明
图1是视频编码过程的示意图;
图2视频解码过程的示意图;
图3是本申请实施例的获取运动矢量的方法示意性流程图;
图4是待处理块的相邻块的示意图;
图5是当前图像中包含的待处理子块和目标图像中的对应子块的示意图;
图6待处理子块的运动矢量和对应子块的运动矢量的示意图;
图7是CTU的时域运动矢量场的扩展范围的示意图;
图8是当前CTU和左边CTU的时域运动矢量场的扩展范围的示意图;
图9是本申请实施例的获取运动矢量的方法示意性流程图;
图10是确定待处理子块的初始对应位置点的示意图;
图11是确定目标对应位置点的示意图;
图12是待处理子块的运动矢量和目标对应位置点的运动矢量的示意图;
图13是本申请实施例的获取运动矢量的方法的流程图;
图14是本申请实施例的获取运动矢量的方法的流程图;
图15是本申请实施例的获取运动矢量的方法的流程图;
图16是现有方案确定待处理子块的对应子块的示意图;
图17是本申请确定待处理子块的对应子块的示意图;
图18是现有融合模式构建候选信息列表的过程;
图19是应用SMVP技术后的融合模式构建候选信息列表的过程;
图20是本申请实施例的获取运动矢量的装置的示意性框图;
图21是本申请实施例的获取运动矢量的装置的示意性框图;
图22是本申请实施例的视频编码器的示意性框图;
图23是本申请实施例的视频解码器的示意性框图;
图24是本申请实施例的视频传输系统的示意性框图;
图25是本申请实施例的视频编解码装置的示意性框图;
图26是本申请实施例的视频编解码系统的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了更好地理解本申请实施例的获取运动矢量的方法发生的过程,下面先结合图1和图2对视频编解码的整个过程进行简单的介绍。
图1是视频编码过程的示意图。
如图1所示,在对当前帧Fn中的当前图像块进行预测时,既可以采用帧内预测也可以采用帧间预测,具体地,可以根据当前帧Fn的类型,选择采用帧内编码还是帧间编码,例如,当前帧Fn为I帧时采用帧内预测,当前帧Fn为P帧或者B帧时采用帧间预测。当采用帧内预测时可以采用当前帧Fn中已经重建区域的像素点的像素值对当前图像块的像素点的像素值进行预测,当采用帧间预测时可以采用参考帧F’n-1中与当前图像块匹配的参考块的像素点的像素值对当前图像块的像素点的像素值进行预测。
在根据帧间预测或者帧内预测得到当前图像块的预测块之后,将当前图像块的像素点的像素值与预测块的像素点的像素值进行做差,得到残差信息,对残差信息进行变化、量化以及熵编码,得到编码码流。另外,在编码过程中还要对当前帧Fn的残差信息与当前帧Fn的预测信息进行叠加,并进行滤波操作,得到当前帧的重建帧F’n,并将其作为后续编码的参考帧。
图2是视频解码过程的示意图。
图2所示的视频解码过程相当于图1所示的视频解码过程的逆过程,在解码时,利用熵解码以及反量化和反变换得到残差信息,并根据解码码流确定当前图像块使用帧内预测还是帧间预测。如果是帧内预测,则利用当前帧中已重建区域内像素点的像素值按照帧内预测方法构建预测信息;如果是帧间预测,则需要解析出运动信息,并使用所解析出的运动信息在已重建的图像中确定参考块,并将参考块内像素点的像素值作为预测信息,接下来,再将预测信息与残差信息进行叠加,并经过滤波操作便可以得到重建信息。
本申请实施例的获取运动矢量的方法既可以发生在编码过程也可以发生解码过程,也就是说,编码端和解码端均可以执行本申请实施例的获取运动矢量的方法。具体地,本申请实施例的获取运动矢量的方法可以发生在图1和图2中所示的帧间预测过程中。
在HEVC中,有两种帧间预测模式,分别是先进的运动矢量预测(advanced motionvector prediction,AMVP)模式和融合(merge)模式。其中,本申请实施例的获取运动矢量的方法可以应用在帧间预测的融合模式中。
图3是本申请实施例的获取运动矢量的方法示意性流程图。图3所示的方法可以由视频编解码装置、视频编解码器、视频编解码系统以及其它具有视频编解码功能的设备来执行。
图3是本申请实施例的获取运动矢量的方法示意性流程图。图3所示的方法可以由视频编解码装置、视频编解码器、视频编解码系统以及其它具有视频编解码功能的设备来执行。
图3所示的方法包括步骤110至步骤140,下面对步骤110至步骤140进行详细的介绍。
110、确定第一取值区间和第二取值区间。
可选地,上述第一取值范围是由第一阈值和第二阈值组成的取值区间,上述第二取值范围是由第三阈值和第四阈值组成的取值区间,其中,第一阈值小于第二阈值,第三阈值小于第四阈值。
应理解,上述第一取值区间和第二取值区间可以是开区间、闭区间和半开半闭区间中的任一种。
上述第一取值区间的具体表示形式可以是(第一阈值,第二阈值),也可以是(第一阈值,第二阈值],也可以是[第一阈值,第二阈值]。
上述第二取值区间的具体表示形式可以是(第三阈值,第四阈值),也可以是(第三阈值,第四阈值],也可以是[第三阈值,第四阈值]。
120、确定待处理块的目标偏移矢量和目标图像的标识信息。
其中,上述待处理块包含至少一个待处理子块,目标偏移矢量在第一方向上的分量的取值在第一取值区间内,目标偏移矢量在第二方向上的分量的取值在第二取值区间内,第一方向和第二方向呈正交关系。
上述待处理块在目标图像中所对应的(图像)块可以称为对应块,该对应块中包含至少一个对应子块,上述目标偏移矢量用于确定待处理块在目标图像中的对应块(的位置)。上述目标偏移矢量与正常的运动矢量不同,上述目标偏移矢量是用于确定对应块的矢量,而运动矢量的一般用于确定某个图像块的预测块,从而得到该图像块的预测像素值另外,偏移矢量还可以称为时间矢量(temporal vector),目标图像也可以称为对应图像。
上述目标图像的标识信息具体可以是目标图像所在的图像帧的图像顺序序号(picture order count,POC),也可以是目标图像所在的图像帧的索引信息或者索引值。
应理解,上述POC用于指示图像在原图像序列中的实际位置,为了与编码/解码顺序相区别,也可以将POC称为显示顺序或者播放顺序。
应理解,上述至少一个待处理子块可以是对待处理块进行划分得到的,该至少一个待处理子块可以组成待处理块。当待处理块为CU时,CU可以包含至少一个子CU。另外,上述第一方向和第二方向可以分别是水平方向和竖直方向。
当第一取值区间的形式不同时,目标偏移矢量在第一方向上的分量的取值在第一取值区间内的具体形式包含以下几种:
(1)当第一取值区间为(第一阈值,第二阈值)时,目标偏移矢量在第一方向上的分量的取值大于第一阈值且小于第二阈值;
(2)当第一取值区间为(第一阈值,第二阈值]时,目标偏移矢量在第一方向上的分量的取值大于第一阈值且小于或者等于第二阈值;
(3)当第一取值区间为[第一阈值,第二阈值]时,目标偏移矢量在第一方向上的分量的取值大于或者等于第一阈值且小于或者等于第二阈值。
类似地,当第二取值区间的形式不同时,目标偏移矢量在第二方向上的分量的取值在第二取值区间内的具体形式包含以下几种:
(4)当第二取值区间为(第三阈值,第四阈值)时,目标偏移矢量在第二方向上的分量的取值大于第三阈值且小于第四阈值;
(5)当第二取值区间为(第三阈值,第四阈值]时,目标偏移矢量在第二方向上的分量的取值大于第三阈值且小于或者等于第四阈值;
(6)当第二取值区间为[第三阈值,第四阈值]时,目标偏移矢量在第二方向上的分量的取值大于或者等于第三阈值且小于或者等于第四阈值。
在上述步骤120中,可以采用多种方式来确定目标偏移矢量。具体地,既可以先确定一个初始偏移矢量(也可以称为起始偏移矢量),然后将初始偏移矢量在第一方向和第二方向上的分量的取值分别限制到第一取值区间内和第二取值区间内,得到最终的目标偏移矢量。也可以直接从多个运动矢量中选择出在第一方向和第二方向上的分量的取值分别在第一取值区间内和第二取值区间内的运动矢量作为目标偏移矢量。下面对这两种确定目标偏移矢量的方式进行详细介绍。
第一种方式:确定初始偏移矢量,对初始偏移矢量在第一方向和第二方向上的分量值进行限制,得到目标偏移矢量。
具体地,在第一种方式中,确定目标偏移矢量包括步骤1201至步骤1203,下面对步骤1201至步骤1203进行详细介绍。
1201、确定待处理块的初始偏移矢量。
可选地,将待处理块的预设空域相邻块的一个运动矢量确定为该初始偏移矢量。
具体地,可以按照一定的顺序,将获取的第一个可得的预设空域相邻块的运动矢量确定为该初始偏移矢量。
例如,如图4所示,A0、A1、B0、B1和B2是待处理块的空域相邻块,T为待处理块的时域相邻块,C是待处理块的参照帧中与待处理块处于相同位置的图像块。在确定待处理块的初始偏移矢量时,可以按照A1、B1、B0、A0的顺序,将找到的第一个可得的相邻块的运动矢量确定为初始偏移矢量。
通过直接将第一个可得的空域相邻块的运动矢量确定为初始偏移矢量,能够简化确定初始偏移矢量的过程。
1202、当初始偏移矢量在第一方向上的分量的取值在第一取值区间内,且在第二方向上的分量的取值在第二取值区间内时,将初始偏移矢量确定为目标偏移矢量。
例如,当第一取值区间为(第一阈值,第二阈值),第二取值区间为(第三阈值,第四阈值)时,如果初始偏移矢量在第一方向上的分量的取值大于第一阈值且小于第二阈值,并且初始偏移矢量在第二方向上的分量的取值大于第三阈值且小于第四阈值时,可以直接将初始偏移矢量确定为目标偏移矢量。
1203、当初始偏移矢量在第一方向和/或第二方向上的分量的取值超出第一取值区间和/或第二取值区间时,将初始偏移矢量在第一方向和/或第二方向上的分量的取值超出第一取值区间和/或第二取值区间的部分进行钳位处理,并将钳位处理后的初始偏移矢量确定为目标偏移矢量。
其中,步骤1203中得到的钳位后的初始偏移矢量在第一方向和第二方向上的分量的取值分别在第一取值区间内和第二取值区间内。
具体地,当初始偏移矢量在第一方向和/或第二方向上的分量的取值超出第一取值区间和/或第二取值区间时,对初始偏移矢量的处理包含情况1至情况3,下面对这三种情况进行详细的描述。
情况1:
当初始偏移矢量在第一方向上的分量的取值在第一取值区间内,且在第二方向上的分量的取值在第二取值区间外时,对初始偏移矢量在第二方向上的分量超出第二取值区间的部分进行钳位处理,将钳位处理后的初始偏移矢量确定为目标偏移矢量。
例如,第一取值区间为[第一阈值,第二阈值],第二区间为[第三阈值,第四阈值],初始偏移矢量在第一方向和第二方向上的分量为第一分量和第二分量,其中,第一分量小于第二阈值且大于第一阈值,第二分量大于第四阈值。那么,初始偏移矢量的第二分量超出[第三阈值,第四阈值]所限定的取值范围,需要将第二分量的数值超出第四阈值的部分进行钳位处理(或者,也可以称为截断处理),使得钳位后的第二分量大于或者等于第三阈值且小于或者等于第四阈值。
情况2:
当初始偏移矢量在第一方向上的分量的取值在第一取值区间外,且在第二方向上的分量的取值在第二取值区间内时,对初始偏移矢量在第一方向上的分量超出第一取值区间的部分进行钳位处理,将钳位处理后的初始偏移矢量确定为目标偏移矢量。
例如,第一取值区间为[第一阈值,第二阈值],第二区间为[第三阈值,第四阈值],初始偏移矢量在第一方向和第二方向上的分量为第一分量和第二分量,其中,第二分量大于第三阈值且小于第四阈值,第一分量小于第一阈值。那么,初始偏移矢量的第一分量超出[第一阈值,第二阈值]所限定的取值范围,需要将第一分量的取值钳位到[第一阈值,第二阈值]所限定的取值范围,也就是要在第一分量的基础上加上第一阈值与第一分量的差值,使得限制后的第一分量位于第一取值区间内。
情况3:
当初始偏移矢量在第一方向上的分量的取值在第一取值区间外,且在第二方向上的分量的取值在第二取值区间外时,对初始偏移矢量在第一方向上的分量超出第一取值区间的部分进行钳位处理,对初始偏移矢量在第二方向上的分量超出第二取值区间的部分进行钳位处理,将钳位处理后的初始偏移矢量确定为目标偏移矢量。
例如,第一取值区间为[第一阈值,第二阈值],第二区间为[第三阈值,第四阈值],初始偏移矢量在第一方向和第二方向上的分量为第一分量和第二分量,其中,第一分量大于第二阈值,第二分量大于第四阈值。那么,初始偏移矢量的第一分量超出了[第一阈值,第二阈值]所限定的取值范围,初始偏移矢量的第二分量超出了[第三阈值,第四阈值]所限定的取值范围,需要将第一分量的数值超出第二阈值的部分进行钳位,将第二分量的数值超出第四阈值的部分进行钳位,使得钳位后的第一分量的数值在[第一阈值,第二阈值]的范围内,钳位后的第二分量的数值在[第三阈值,第四阈值]的范围内。
第二种方式:从待处理块的空域相邻块中的运动矢量在第一方向和第二方向上的分量值满足要求的运动矢量确定为目标偏移矢量。
具体地,在第二种方式中,确定目标偏移矢量包括步骤1204和步骤1205,下面对步骤1204和步骤1205进行详细介绍。
1204、从待处理块的预设空域相邻块中确定目标空域相邻块,其中,目标空域相邻块的运动矢量在第一方向上的分量的取值在第一取值区间内,在第二方向上的分量的取值在第二取值区间内;
具体地,在步骤1204中,可以按照一定的顺序获取待处理块的空域相邻块的运动矢量,然后确定这些空域相邻块的运动矢量在第一方向和第二方向上的分量的取值是否分别在第一取值区间和第二取值区间,并将在第一方向和第二方向上的分量的取值分别在第一取值区间内和第二取值区间内的运动矢量确定为目标偏移矢量。
1205、将目标空域相邻块的运动矢量作为目标偏移矢量。
例如,如图4所示,可以按照A1、B1、B0、A0的顺序,将找到的第一个可得的相邻块的运动矢量,然后确定该运动矢量的分量值是否满足要求(在第一方向和第二方向上的分量的取值分别在第一取值区间内和第二取值区间内),如果该运动矢量满足要求就把该运动矢量确定为目标偏移矢量,如果该运动矢量不满足要求,那么就按照A1、B1、B0、A0的顺序继续寻下一个可得的相邻块的运动矢量,然后再确定是否满足要求,直到找到满足要求的运动矢量。
应理解,步骤120中采用的目标偏移矢量还可以是零偏移矢量,此时,目标图像中与待处理块处于相同位置的图像块为待处理块在目标图像中的对应块。
另外,在寻找不到满足要求的目标偏移矢量时,也可以不采用ATMVP技术,而是采用其它技术来获取待处理子块的运动矢量。
130、根据待处理子块的位置和目标偏移矢量,在目标图像中确定待处理子块的对应子块。
由于目标偏移矢量指向待处理块在目标图像中的对应块,因此,可以先根据偏移矢量得到对应块,然后再根据待处理子块的位置在目标图像中确定与待处理子块具有相对位置关系的对应子块(也可以理解为在对应块中确定与待处理子块具有相对位置关系的对应子块)。
在对应块中确定与待处理子块具有相对位置关系的对应子块时,可以将对应块中与待处理子块中相对位置相同的子块,确定为待处理子块的对应子块。
例如,如图5所示,当前图像中包含待处理块,待处理块包含4个子块,通过待处理块的位置以及待处理块的偏移矢量可以得到目标图像中的与待处理块相对应的对应块,对应块也包含4个子块,待处理子块位于待处理块的左上角位置,那么,在确定待处理子块的对应子块时,可以将对应块中位于左上角的子块确定为待处理子块的对应子块。
140、根据对应子块的运动矢量确定待处理子块的运动矢量。
本申请中,由于目标偏移矢量的分量值在一定的取值范围内,因此,根据目标偏移矢量确定的在目标图像中确定的待处理子块也位于目标图像的一定范围内,进而可以通过预读取目标图像的一定范围内的时域运动矢量场的方式来减少内存带宽和内存的读取次数。
可选地,在步骤140之前,图3所示的方法还包括:获取目标图像中预设区域中的像素点的运动矢量,该预设区域为待处理子块的对应子块的可能出现的范围。
本申请中,由于对应子块在目标图像中出现的范围是确定的,因此,通过预先获取目标图像中一定区域内的运动矢量,能够减少从目标图像中读取运动矢量的次数,也就是减少了内存的读取次数,另外,由于只获取目标图像中一定范围内的运动矢量,可以减少内存带宽。
在得到了对应子块的运动矢量之后,可以通过对对应子块的运动矢量进行缩放来得到待处理子块的运动矢量。
具体地,根据对应子块的运动矢量确定待处理子块的运动矢量,包括:根据待处理子块所在的图像帧的图像顺序序号(picture order count,POC)、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图像的目标参考帧的POC,对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
例如,如图6所示,待处理子块所在的图像帧为图像帧1,图像帧1的目标参考帧为图像帧2,目标图像所在的图像帧为图像帧3,图像帧3的目标参考帧为图像帧4,对应子块的运动矢量为MV,那么,可以根据图像帧1至图像帧4的POC对MV进行缩放,以得到待处理子块的运动矢量。
可选地,根据待处理子块所在的图像帧的POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图像的目标参考帧的POC,对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量,包括:将待处理子块所在的图像帧的POC与待处理子块所在的图像帧的目标参考帧的POC的差值确定为第一差值;将目标图像的POC与目标图像的目标参考帧的POC的差值确定为第二差值;根据第一差值和第二差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
在根据第一差值和第二差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量时,具体可以先计算第一差值与第二差值的比值,得到第一比值,然后将第一比值与对应子块的运动矢量的乘积确定为待处理子块的运动矢量。
具体地,仍以图6为例,可以采用公式(1)来计算待处理子块的运动矢量。
Figure BDA0003813888070000131
其中,MVs为待处理子块的运动矢量,MV为对应子块的运动矢量,P1至P4分别是图像帧1至图像帧4的POC,P1-P2表示第一差值,P3-P4表示差值。
可选地,作为一个实施例,确定第一取值区间和所述第二取值区间,包括:根据所述待处理块的位置和尺寸、所述待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围,确定所述第一取值区间和所述第二取值区间。
应理解,可以通过确定目标偏移矢量在第一方向和第二方向上所能够取得的最大值和最小值的方式来确定第一取值区间和第二取值区间。下面对采用这种方式确定第一取值区间和第二取值区间进行详细的说明。
具体地,上述确定第一取值区间和第二取值区间包含以下过程:
(1)根据待处理块的位置和尺寸、待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围确定第一阈值和第二阈值;
(2)根据待处理块的位置和尺寸、待处理块所在的编码树单元CTU的位置和尺寸以及预设的CTU的时域运动矢量场的扩展范围确定第三阈值和第四阈值;
(3)根据第一阈值和第二阈值,得到第一取值区间;
(4)根据第三阈值和第四阈值,得到第二取值区间。
其中,第一阈值为目标偏移矢量在第一方向上的分量能够取得的最小值,第二阈值为目标偏移矢量在第一方向上的分量能够取得的最大值;第三阈值为目标偏移矢量在第二方向上的分量能够取得的最小值,第四阈值为目标偏移矢量在第二方向上的分量能够取得的最大值。
可选地,作为一个实施例,上述CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在第一方向和第二方向上的扩展范围。
其中,上述第一方向和第二方向呈正交关系的两个方向。
具体地,上述第一方向可以为水平方向,上述第二方向可以为竖直方向。
应理解,当上述第一方向为水平方向,上述第二方向为竖直方向时,CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在上、下、左、右方向上的扩展值。
例如,如图7所示,虚线与CTU所在的矩形所围成的区域为CTU的扩展范围,CTU在上、下、左、右方向上的扩展值分别为U、B、L、R。
当上述U、B、L、R均为0时表示CTU在各个方向上的扩展值均为0,此时,当前CTU的时域运动矢量场被限制在对应位置点的CTU的时域运动矢量场。
当U和B为0,L和R不为0时,当前CTU所获取的时域运动矢量场不能跨越CTU的上、下边界,但可以跨越CTU的左、右边界。如图8所示,当前CTU以及左边CTU的MVF可以向左、右扩展,但是不能向上、下扩展,当前CTU的时域运动矢量场和左边CTU的时域运动矢量场有部分重叠。在这种情况下,在处理当前CTU时,可以通过滑动窗口的方式,部分重用其左边CTU已经读取的时域运动矢量场。
具体地,可以根据公式(2)至公式(5)来确定第一取值区间和第二取值区间。
HorMin=CTUX–CUX–L (2)
HorMax=CTUX+CTUW–CUX–CUW+R (3)
VerMin=CTUY–CUY–U (4)
VerMax=CTUY+CTUH–CUY–CUH+B (5)
其中,CUX和CUY分别表示待处理块的左上顶点像素的横坐标和纵坐标,CUW和CUH表示待处理块的宽和高,CTUX和CTUY分别表示待处理块所在的CTU的横坐标和纵坐标,CTUW和CTUH分别为待处理块所在的CTU的宽和高,U、B、L、R分别表示CTU在上、下、左、右方向上的扩展值,HorMin和HorMax分别表示第一阈值和第二阈值,VerMin和VerMax分别表示第三阈值和第四阈值。
可选的,上述CTU的时域运动矢量场的扩展范围信息携带于序列参数集SPS、图像参数集PPS以及头字段中的至少一种。
应理解,SPS、PPS以及头字段可以通过携带的参数(U、B、L、R)来指示CTU的扩展范围。
可选地,上述CTU的时域运动矢量场的扩展范围为预先设定好的。在这种情况下,可以直接将CTU的运动矢量的扩展的范围直接写入到协议中,而无需再通过SPS、PPS或者头字段来携带。
图9是本申请实施例的获取运动矢量的方法示意性流程图。图9所示的方法可以由视频编解码装置、视频编解码器、视频编解码系统以及其它具有视频编解码功能的设备来执行。
图9所示的方法包括步骤210至步骤250,下面对步骤210至步骤250进行详细的介绍。
210、确定待处理块的目标偏移矢量和目标图像的标识信息。
其中,上述待处理块包含至少一个待处理子块,该待处理块由至少一个待处理子块组成。在获取待处理块的运动矢量时实际上是要获取该待处理块中的每个待处理子块的运动矢量。当上述待处理块为CU时,待处理子块就为子CU。
步骤210中的目标偏移矢量与图3所示的方法中提及的目标偏移矢量的含义一致,这里不再详细论述。
上述目标图像的标识信息具体可以是目标图像所在的图像帧的POC,也可以是目标图像所在的图像帧的索引信息或者索引值。
220、根据待处理子块的位置和偏移矢量,确定出待处理子块在目标图像中的初始对应位置点。
具体地,在确定待处理子块在目标图像中的初始对应位置点时,可以先确定待处理子块的对应子块,然后将对应子块的某个设定位置确定为待处理子块在目标图像中的初始对应位置点。例如,在确定了对应位置点后,可以将对应子块的中心点或者左上角的位置确定为待处理子块在目标图像中的初始对应位置点。
其中,确定对应子块的方式可以参见图3所示的方法中步骤130下方的相关段落的描述。
另外,在确定待处理子块在目标图像中的初始对应位置点时,也可以不确定对应子块,而是直接按照待处理子块的位置以及目标偏移矢量,直接确定待处理子块对应在目标图像中的位置确定为待处理子块在目标图像中的初始对应位置点。例如,先确定待处理子块的某个设定位置,如中心点或者左上角,将该位置坐标加上目标偏移矢量,即可确定待处理子块在目标图像中的初始对应位置点。
230、当初始对应位置点位于目标图像的预设区域内时,将初始对应位置点确定为目标对应位置点。
例如,如图10所示,当前图像中包括待处理块,待处理块中包括位于左上角位置的待处理子块,目标图像包括对应块,对应块中包括位于左上角位置的对应子块,待处理块的目标偏移矢量指向对应块,目标图像虚线框内的矩形区域为目标图像的预设区域,由图10可知,待处理子块在目标图像中的初始对应位置点位于目标图像的预设区域,可以将初始对应位置点直接确定为目标对应位置点。
240、当初始对应位置点超出预设区域时,将预设区域内距离初始对应位置点最近的位置确定为目标对应位置点。
例如,如图11所示,当前图像中包括待处理块,待处理块中包括位于左上角位置的待处理子块,目标图像包括对应块,对应块中包括位于左上角位置的对应子块,待处理块的目标偏移矢量指向对应块,目标图像虚线框内的矩形区域为目标图像的预设区域,由图11可知,待处理子块在目标图像中的初始对应位置点位于目标图像的预设区域之外,在这种情况下,需要将预设区域中距初始对应位置点最近的位置A确定为目标对应位置点。
250、根据目标对应位置点对应的运动矢量确定待处理子块的运动矢量。
本申请中,根据初始对应位置点以及目标图像的预设区域找到位于预设区域的目标对应位置点,进而根据目标图像的一定范围的运动矢量来确定待处理子块的运动矢量,进而可以通过预读取目标图像的一定范围内的时域运动矢量场的方式来减少内存带宽和内存的读取次数。
可选地,在步骤250之前,图9所示的方法还包括:获取目标图像中预设区域中的像素点的运动矢量。
应理解,在步骤250中根据目标对应位置点的运动矢量确定待处理子块的运动矢量之前,需要先获取目标对应位置点对应的运动矢量。为了减少内存读取的次数以及占用的内存带宽,可以预先获取目标图像的预设区域内像素点的运动矢量,这样需要使用目标对应位置点的运动矢量时可以直接从已经读取的预设区域内像素点的运动矢量获取目标对应位置点对应的运动矢量,并且,由于只获取目标图像预设区域内的像素点的运动矢量,而不像传统方案那样可能需要获取整个目标图像,能够减少占用的内存带宽。
可选地,作为一个实施例,上述步骤230中的预设区域根据待处理块所在的编码树单元CTU的位置和尺寸、目标图像的尺寸以及预设的CTU的时域运动矢量场的扩展范围确定的。
上述CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在第一方向和第二方向上的扩展范围。
可选地,上述第一方向为水平方向,上述第二方向为竖直方向。
可选地,当上述第一方向为水平方向,上述第二方向为竖直方向时,CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场分别在上、下、左、右方向上的扩展范围。
上述预设区域可以用多种方式进行限定,例如,可选地,上述预设区域可以用横坐标取值区间和纵坐标取值区间来表示。
具体地,上述预设区域可以用横坐标取值区间[横坐标最小值,横坐标最大值]和纵坐标取值区间[纵坐标最小值,纵坐标最大值]来表示。
其中,横坐标取值和纵坐标取值区间中的取值可以采用公式(6)至公式(9)进行计算。
HorMin=Min(CTUX–L,0) (6)
HorMax=Max(CTUX+CTUW+R–1,PicW–1) (7)
VerMin=Min(CTUY–U,0) (8)
VerMax=Max(CTUY+CTUH+B–1,PicH–1) (9)
其中,CTUX为待处理块所在的CTU的横坐标,CTUY为待处理块所在的CTU的纵坐标,CTUW和CTUH分别为待处理块所在的CTU的宽和高,PicW和PicH分别为目标图像的宽和高,U、B、L、R分别表示CTU在上、下、左、右方向上的扩展值,HorMin和HorMax分别为横坐标最小值和横坐标最大值,VerMin和VerMax分别为纵坐标最小值和纵坐标最大值。
在根据公式(6)至公式(9)计算得到了横纵坐标的最小值和最大值之后就可以得到横坐标取值区间和纵坐标取值区间了,也就确定了目标图像的预设区域了。
可选地,上述CTU的时域运动矢量场的扩展范围信息携带在SPS、PPS以及头字段中的至少一种。
另外,上述CTU的时域运动矢量场的扩展范围也可以是预先设定好的。在这种情况下,可以直接将CTU的运动矢量的扩展的范围直接写入到协议中,而无需再通过SPS、PPS或者头字段来携带。
可选地,作为一个实施例,上述根据目标对应位置点对应的运动矢量确定待处理子块的运动矢量,包括:根据待处理子块所在的图像帧的POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图象的目标参考帧的POC,对目标对应位置点对应的运动矢量进行缩放,以得到待处理子块的运动矢量。
具体地,在根据待处理子块所在的图像帧的POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图象的目标参考帧的POC,对目标对应位置点对应的运动矢量进行缩放,得到待处理子块的运动矢量时,可以先确定待处理子块所在的图像帧的图像顺序序号POC与待处理子块所在的图像帧的目标参考帧的POC的差值为第三差值;确定目标图像的POC与目标图象的目标参考帧的POC的差值为第四差值;然后再根据第三差值和第四差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
可选地,根据第三差值和第四差值的比值对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量,包括:确定第三差值和第四差值的比值为第二比值;将第二比值与目标对应位置点对应的运动矢量的乘积确定为待处理子块的运动矢量。
例如,如图12所示,待处理子块所在的图像帧为图像帧1,图像帧1的目标参考帧为图像帧2,目标图像所在的图像帧为图像帧3,图像帧3的目标参考帧为图像帧4,目标对应位置点的运动矢量为MV,那么,可以根据图像帧1至图像帧4的POC对MV进行缩放,以得到待处理子块的运动矢量。
具体地,可以采用公式(10)来计算待处理子块的运动矢量。
Figure BDA0003813888070000171
其中,MVs为待处理子块的运动矢量,MV为目标对应位置点的运动矢量,P1至P4分别是图像帧1至图像帧4的POC,P1-P2表示第三差值,P3-P4表示第四差值。
为了实现对待处理块的预测,可以在得到待处理块中全部待处理子块的运动矢量之后再对待处理块进行预测,得到待处理块的像素预测值。也可以在得到每个待处理块的运动矢量之后,就对待处理子块进行预测,得到每个待处理子块的像素预测值,在对每个待处理子块进行预测之后,也就得到了待处理块的像素预测值。
上文结合图3至图12对本申请实施例的获取运动矢量的方法进行了介绍,为了更好地理解本申请的技术方案,下面结合具体的实例对本申请实施例的获取运动矢量的方法进行详细介绍。
其中,实施例一和实施例二与图3所示的方法是对应的,都是通过对目标偏移矢量的取值的限制使得最终找到的对应子块位于目标图像的一定区域中,而实施例三则不对目标偏移矢量的取值进行任何限制,而是将待处理子块在目标图像中的目标对应位置点直接限制在一定的区域内。最终实施例一至实施例三均实现了根据目标图像的一定区域内的像素的运动矢量来确定待处理子块的运动矢量。下面分别对实施例一至实施例三进行详细介绍。
实施例一:
如图13所示,实施例一中获取运动矢量的具体过程包括:
310、确定约束范围。
这里的约束范围相当于上文中的第一取值区间和第二取值区间。
应理解,确定约束范围是为了对待处理块的目标偏移矢量的在第一方向和第二方向上的分量值进行约束,使得目标偏移矢量在第一方向和第二方向上的分量值在约束范围内。
可选地,上述约束范围可以根据CTU的时域运动矢量场的扩展范围、待处理块的位置和尺寸,待处理块所在的CTU的位置和尺寸来确定。
其中,CTU的时域运动矢量场的扩展范围可以通过参数RangeL、RangeR、RangeU、RangeB(相当于上文中的参数L、R、U、B)来定义,参数RangeL,RangeR,RangeU,RangeB分别表示CTU的时域运动矢量场能够分别向左、右、上、下这四个方向上的扩展值。
RangeL,RangeR,RangeU,RangeB所取的数值可以是0、16、32和64等(单位为像素)。
应理解,上述参数RangeL,RangeR,RangeU,RangeB可以直接通过预定义的方式来确定,或者,也可以携带在高层语法中,例如,RangeL,RangeR,RangeU,RangeB可以携带在SPS、PPS以及头字段中。
具体地,可以根据公式(11)至公式(14)来确定上述约束范围。
HorMin=CTUX–CUX–RangeL (11)
HorMax=CTUX+CTUW–CUX–CUW+RangeR (12)
VerMin=CTUY–CUY–RangeU (13)
VerMax=CTUY+CTUH–CUY–CUH+RangeB (14)
其中,CUX和CUY表示待处理块左上顶点像素的位置坐标,CUW和CUH表示待处理块的宽和高,CTUX和CTUY表示待处理块所在CTU的左上顶点像素的位置坐标,CTUW和CTUH表示CTU的宽和高。HorMin和HorMax表示约束范围在水平方向能够取的最小值和最大值,VerMin和VerMax表示约束范围在竖直方向能够取的最小值和最大值。
320、确定待处理块的起始偏移矢量。
这里的起始偏移矢量相当于上文中的初始偏移矢量。
应理解,上述步骤310和步骤320既可以同时进行,也可以分别先后进行。
起始偏移矢量用于确定待处理块在目标图像中的目标图像块的位置,可以采用以下两种方式来确定起始偏移矢量。
第三种方式:将待处理块的空域相邻块中可用的运动矢量确定为起始偏移矢量。
具体地,在第三种方式中,可以按照图4中A1,B1,B0,A0的顺序,找到第一个可得的相邻块的运动矢量,并将其作为待处理块的起始偏移矢量。
第四种方式:先确定目标图像,然后再将相邻块中指向目标图像的运动矢量确定为起始偏移矢量。
具体地,在第四种方式中,可以按照图4中A1,B1,B0,A0的顺序,找到第一个可得的相邻块的运动矢量,若该运动矢量指向目标图像,则将其作为待处理块的起始偏移矢量。否则,对该运动矢量进行缩放,使得其指向目标图像,并将缩放后的运动矢量作为起始偏移矢量。
330、确定起始偏移矢量是否超出约束范围。
应理解,当起始偏移矢量在第一方向或者第二方向中至少一个方向上的分量值超出约束范围时就确定该起始偏移矢量超出约束范围;当起始偏移矢量在第一方向和第二方向上的分量值均未超出约束范围时,确定起始偏移矢量未超出约束范围。
当起始偏移矢量超出约束范围时,执行步骤340和步骤350,当起始偏移矢量未超出约束范围时,执行步骤360。
340、根据约束范围确定受限的偏移矢量;
当起始偏移矢量超出限定范围时,需要对其进行限定,得到受限的偏移矢量,使得受限后的偏移矢量在约束范围内。
具体地,当起始偏移矢量超出约束范围时,可以采用公式(15)和(16)对起始偏移矢量的分量(xoff,yoff)进行限制,得到受限的偏移矢量。
xoff=Clip3(HorMin,HorMax,xoff) (15)
yoff=Clip3(VerMin,VerMax,yoff) (16)
其中,Clip3函数为钳位函数,具体定义为:
Figure BDA0003813888070000191
应理解,除了根据约束范围确定目标偏移矢量之外,还可以直接采用零运动矢量作为目标偏移矢量。或者也可以不采用ATMVP技术,而是采用其它技术来获取待处理子块的运动矢量。
350、将受限的偏移矢量确定为目标偏移矢量。
由于受限后的偏移矢量在约束范围内,因此,可以该受限后的偏移矢量确定为目标偏移矢量。
360、将初始偏移矢量确定为目标偏移矢量。
当初始偏移矢量在约束范围内时,无需再对初始偏移矢量进行任何约束或者限制操作,而可以直接将该初始偏移矢量确定为目标偏移矢量。
370、根据待处理子块的位置和目标偏移矢量,在目标图像中确定待处理子块的对应子块。
380、根据对应子块的运动矢量确定待处理子块的运动矢量。
具体地,可以根据待处理子块所在的图像帧的POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图像的目标参考帧的POC,对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
在得到了待处理子块的运动矢量之后就可以根据待处理子块的运动矢量确定待处理子块的预测像素值。
在确定待处理子块的预测像素值时,可以根据待处理子块的运动矢量确定待处理子块的预测子块,然后将该预测子块的像素值确定为待处理子块的预测像素值。这样在得到了每个待处理子块的预测像素值之后,就可以得到整个待处理块的预测像素值。
实施例二:
如图14所示,实施例二中获取运动矢量的具体过程包括:
410、确定约束范围。
这里的约束范围的含义以及确定方式与实施例一种的约束范围相同,这里不再重复描述。
420、获取待处理块的相邻块的一个运动矢量。
具体地,可以按照图4中A1,B1,B0,A0的顺序,获取第一个可得的相邻块的运动矢量。
另外,也可以先确定目标图像,然后再按照图4中A1,B1,B0,A0的顺序,获取待处理块的相邻块的一个运动矢量,当该运动矢量指向目标图像时,执行步骤430;当该运动矢量未指向目标图像,对该运动矢量进行缩放,使得缩放后的运动矢量指向目标图像,然后再将缩放后的运动矢量作为相邻块的一个运动矢量,继续执行步骤440。
430、确定相邻块的运动矢量是否在约束范围内;
当相邻块的运动矢量的分量值在约束范围内时,执行步骤440,否则继续执行步骤420,直到相邻块的运动矢量的分量值在约束范围内。
应理解,当相邻块的运动矢量在第一方向和第二方向上的分量值均在约束范围内时,确定相邻块的运动矢量在约束范围内;当相邻块的运动矢量在第一方向和/或第二方向上的分量值超出约束范围时,确定相邻块的运动矢量不在约束范围内(相邻块的运动矢量超出约束范围)。
440、将相邻块的运动矢量确定为目标偏移矢量。
450、根据待处理子块的位置和目标偏移矢量,在目标图像中确定待处理子块的对应子块。
460、根据对应子块的运动矢量确定待处理子块的运动矢量。
具体地,可以根据待处理子块所在的图像帧的POC、待处理子块所在的图像帧的目标参考帧的POC、目标图像的POC以及目标图像的目标参考帧的POC,对对应子块的运动矢量进行缩放,以得到待处理子块的运动矢量。
在得到了待处理子块的运动矢量之后就可以根据待处理子块的运动矢量确定待处理子块的预测像素值。
实施例三:
如图15所示,实施例三中获取运动矢量的具体过程包括:
510、确定待处理块的目标偏移矢量和目标图像的标识信息。
步骤510中确定目标偏移矢量和目标图像的标识信息的过程与上述步骤210相同。
520、根据待处理子块的位置和目标偏移矢量,确定出待处理子块在目标图像中的初始对应位置点。
具体地,可以根据公式(18)来确定待处理子块在目标图像中的初始对应位置点的位置坐标。
Figure BDA0003813888070000201
其中,(x,y)表示待处理块的左上顶点的坐标,i表示待处理块中从左到右方向的第i个子块,j表示待处理块中从上到下方向的第j个子块,(xoff,yoff)表示偏移运动矢量在第一方向和第二方向上的分量值,M和N为待处理子块的尺寸(其中,M可以表示待处理子块的宽,N可以表示待处理子块的告),(x(i,j),y(i,j))表示第(i,j)个对应子块的位置坐标。
530、确定初始对应位置点是否在对应图像的预设区域内。
当初始对应位置点在对应图像的预设区域内时,直接执行步骤540,当初始对应位置点超出对应图像的预设区域内时,执行步骤550。
上述预设区域可以是目标图像中的一个固定区域,可以根据(19)至(22)来确定对应图像的预设区域。
HorMin=Min(CTUX–RangeL,0) (19)
HorMax=Max(CTUX+CTUW+RangeR–1,PicW–1)
(20)
VerMin=Min(CTUY–RangeU,0) (21)
VerMax=Max(CTUY+CTUH+RangeB–1,PicH–1)
(22)
其中,HorMin和HorMax表示约束范围在水平方向能够取的最小值和最大值,VerMin和VerMax表示约束范围在竖直方向能够取的最小值和最大值,CTUX和CTUY表示待处理块所在CTU的左上顶点像素的位置坐标,CTUW和CTUH表示CTU的宽和高,RangeU、RangeB、RangeL、RangeR分别表示CTU的时域运动矢量场在上、下、左、右方向上的扩展值,PicW和PicH分别为目标图像的宽和高。
540、将初始对应位置点确定为目标对应位置点。
当初始对应位置点在目标图像的预设区域时,可以直接将该初始对应位置点确定为目标对应位置点。
550、将预设区域内距离初始对应位置点最近的位置确定为目标对应位置点。
具体地,当初始对应位置点超出目标图像的预设区域时,可以将预设区域内距离初始对应位置点最近的位置确定为目标对应位置点。具体地,当初始对应位置点超出目标图像的预设区域时,可以根据公式(23)和公式(24)来确定目标对应位置点。
x(i,j)=Clip3(HorMin,HorMax,x(i,j)) (23)
y(i,j)=Clip3(VerMin,VerMax,y(i,j)) (24)
其中,Clip3函数为钳位函数,具体定义如上文中的公式(17)所示。
560、根据目标对应位置点对应的运动矢量确定待处理子块的运动矢量。
具体地,可以根据待处理子块所在的图像帧的POC,待处理子块所在的图像帧的目标参考帧的POC,目标图像的POC以及目标图像的目标参考帧的POC,对目标对应位置点的运动矢量进行缩放,来获取待处理子块的运动矢量。
在得到了待处理子块的运动矢量之后就可以根据待处理子块的运动矢量确定待处理子块的预测像素值。
为了更好地理解本申请带来的有益效果,下面结合图16和图17对本申请实例的获取运动矢量的方法的有益效果进行详细的说明。
如图16所示,当前图像中包括当前CTU,当前CTU包括多个待处理块,每个待处理块包含多个待处理子块,每个待处理块对应一个偏移矢量,根据该对应的偏移矢量可以找到该待处理块的对应块,每个待处理子块也会在目标图像中对应一个对应子块。如果待处理子对应在目标图像中的对应子块所在的区域不确定,或者,待处理子块对应在目标图像中的位置不确定,那么,在获取对应子块的运动矢量时可能需要预先获取整个对应图像的时域运动矢量场,从而增加了内存带宽。
如图17所示,当前图像中包括当前CTU,当前CTU包括多个待处理块,每个待处理块包含多个待处理子块,目标图像中虚线内的区域为目标图像的预设区域。本申请通过对待处理块的偏移矢量的范围进行约束,使得待处理子对应在目标图像中的对应子块位于对应图像的预设区域,或者使得待处理子对应在目标图像中的对应位置点位于对应图像的预设区域。这样就只需要获取目标图像的运动矢量即可,而不必获取整个目标图像的运动矢量,这样可以减少内存带宽,另外,通过预取的方式还可以降低内存的读取次数。
本申请实施例的获取运动矢量的方法可以应用在帧间预测的融合模式中。
子编码单元运动矢量预测(Sub-CU based motion vector prediction,SMVP)技术将当前编码单元划分为大小为MxN的子编码单元,并推导出每个子编码单元的运动信息,然后利用各个子编码单元的运动信息进行运动补偿,得到当前编码单元的预测值。
当SMVP技术应用到融合模式时,是在原有融合模式的基础上增加了两种候选运动信息,分别为高级时域运动矢量预测(advanced temporal motion vector prediction,ATMVP)和空域时域运动矢量预测(spatial-temporal motion vector prediction,STMVP)。
其中,ATMVP技术是先确定对应位置点参考帧(collocated reference picture),然后将当前编码单元划分为MxN的子编码单元,获取当前每一个子编码单元在对应位置点参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息。本申请实施例的获取运动矢量的方法可以理解为一种改进后的ATMVP技术。
下面以图4所示的待处理块的相邻块为基础,结合图18和图19分别对现有的融合模式以及应用SMVP技术后的融合模式构建候选信息列表的过程进行说明。
现有融合模式构建候选信息列表的过程如图18所示。
图18所示的构建候选信息列表的过程包括:
610、插入A1,B1,B0,A2位置的运动信息;
620、插入B2位置的运动信息;
630、插入时域位置(T或C)的运动信息;
640、填充候选运动信息列表。
应用SMVP技术后的融合模式构建候选信息列表的过程如图19所示。
图19所示的构建候选信息列表的过程包括:
710、插入A1,B1,B0,A2位置的运动信息;
720、插入ATMVP运动信息和STMVP运动信息;
730、插入B2位置的运动信息;
740、插入时域位置(T或C)的运动信息;
750、填充候选运动信息列表。
其中,图19与18相比,多了插入ATMVP运动信息和STMVP运动信息的步骤720,其它步骤不变。
应理解,本申请实施例的获取运动矢量的方法获取的待处理子块的运动矢量就是属于上述步骤720中插入的ATMVP运动信息的一部分。
具体地,以图4所示的待处理块的相邻块为基础,在将SMVP技术应用到融合模式时,融合模式的编码时具体包含以下过程:
1)按照顺序获得空域相邻块A1,B1,B0,A0位置的运动信息,检查可用性及剔除重复项,插入候选运动信息列表;
2)获得ATMVP和STMVP运动信息,检查可用性及剔除重复项,插入候选运动信息列表;
3)当候选运动信息列表的长度小于6时,获得B2位置的运动信息,检查可用性及剔除重复项,插入候选运动信息列表;
4)获得相邻已编码帧中T位置对应块的运动信息(若不存在,则获得C位置对应块的运动信息),进行缩放,插入候选运动信息列表;
5)若候选运动信息列表长度小于7,则进行填充,得到长度为7的候选运动信息列表;
6)遍历候选运动信息列表中的每个候选运动信息,进行运动补偿和重建,得到重建值,再根据率失真优化(rate distortion optimization,RDO)方法决策出率失真代价(rate distortion cost,RD cost)最小的候选运动信息,得到合并索引(index);
7)根据候选运动信息列表的长度,将合并索引写入码流,传递给解码端。
其中,合并模式候选运动信息列表的构建过程如图19所示。
上文结合图3至图19对本申请实施例的获取运动矢量的方法进行了详细的描述,应理解,本申请实施例的获取运动矢量的方法可以对应于图1和图2所示的帧间预测,本申请实施例的获取运动矢量的方法可以发生在图1和图2所示的帧间预测过程中。本申请实施例的获取运动矢量的方法可以具体由编码器或者解码器中的帧间预测模块来执行。另外,本申请实施例的获取运动矢量的方法可以在可能需要对视频图像进行编码和/或解码的任何电子设备或者装置内实施。
下面结合图20和图21对本申请实施例的获取运动矢量的装置进行详细的描述。其中,20所示的装置与图3、图13和图14所示的方法相对应,能够执行图3、图13和图14所示的方法中的各个步骤;图21所示的装置与图9和图15所示的方法相对应,能够执行图9和图15所示的方法中的各个步骤。为了简洁,下面适当省略重复的描述。
图20是本申请实施例的获取运动矢量的装置的示意性框图。图20所示的装置800包括:
确定模块810,该确定模块810用于:
确定第一取值区间和第二取值区间;
确定待处理块的目标偏移矢量和目标图像的标识信息,其中,所述待处理块包含至少一个待处理子块,所述目标偏移矢量在第一方向上的分量的取值在所述第一取值区间内,所述目标偏移矢量在第二方向上的分量的取值在所述第二取值区间内,所述第一方向和所述第二方向呈正交关系;
根据所述待处理子块的位置和所述目标偏移矢量,在所述目标图像中确定所述待处理子块的对应子块;
获取模块820,用于根据所述对应子块的运动矢量获取所述待处理子块的运动矢量。
本申请中,由于目标偏移矢量的分量值在一定的取值范围内,因此,根据目标偏移矢量确定的在目标图像中确定的待处理子块也位于目标图像的一定范围内,进而可以通过预读取目标图像的一定范围内的时域运动矢量场的方式来减少内存带宽和内存的读取次数。
上述确定模块810和获取模块820可以对应于编解码装置中的预测模块(具体可以是帧间预测模块),该确定模块810和获取模块820在具体实现时,可以通过软件或硬件来实现,也可以通过软件和硬件相结合的方式来实现。
图21是本申请实施例的获取运动矢量的装置的示意性框图。图21所示的装置900包括:
确定模块910,该确定模块用于:
确定待处理块的目标偏移矢量和目标图像的标识信息,其中,所述待处理块包含至少一个待处理子块;
根据所述待处理子块的位置和所述目标偏移矢量,确定出所述待处理子块在所述目标图像中的初始对应位置点;
当所述初始对应位置点位于所述目标图像的预设区域内时,将所述初始对应位置点确定为目标对应位置点;
当所述初始对应位置点超出所述预设区域时,将所述预设区域内距离所述初始对应位置点最近的位置确定为目标对应位置点;
获取模块920,用于根据所述目标对应位置点对应的运动矢量获取所述待处理子块的运动矢量。
本申请中,根据初始对应位置点以及目标图像的预设区域找到位于预设区域的目标对应位置点,进而根据目标图像的一定范围的运动矢量来确定待处理子块的运动矢量,进而可以通过预读取目标图像的一定范围内的时域运动矢量场的方式来减少内存带宽和内存的读取次数。
上述确定模块910和获取模块920可以对应于编解码装置中的预测模块,具体可以是帧间预测模块,确定模块910和获取模块920在具体实现时,可以通过软件或硬件来实现,也可以通过软件和硬件相结合的方式来实现。
本申请实施例的获取运动矢量的方法还可以由视频编码器或者视频解码器来执行,下面结合图22和图23对本申请实施例的视频编码器和视频解码器的结构进行描述。
图22是本申请实施例的视频编码器的示意性框图。图22所示的视频编码器1000包括:编码端预测模块1001、变换量化模块1002、熵编码模块1003、编码重建模块1004和编码端滤波模块。
图22所示的视频编码器1000可以对视频进行编码,具体地,视频编码器1000可以执行图1所示的视频编码过程,实现对视频的编码。另外,视频编码器1000还可以执行本申请实施例的获取运动矢量的方法,视频编码器1000可以执行图3、图9以及图13至图15所示的方法的各个步骤。
本申请实施例中的获取运动矢量的装置还可以是视频编码器1000中的编码端预测模块1001,具体地,图20和图21所示的装置6000和装置7000相当于视频编码器1000中的编码端预测模块1001。
图23是本申请实施例的视频解码器的示意性框图。图23所示的视频解码器2000包括:熵解码模块2001、反变换反量化模块2002、解码端预测模块2003、解码重建模块2004和解码端滤波模块2005。
图23所示的视频解码器2000可以对视频进行解码,具体地,视频解码器2000可以执行图2所示的视频解码过程,实现对视频的解码。另外,视频解码器2000还可以执行本申请实施例的获取运动矢量的方法,视频解码器2000可以执行图3、图9以及图13至图15所示的获取运动矢量的方法的各个步骤。
本申请实施例中的获取运动矢量的装置还可以是视频解码器2000中的解码端预测模块2003,具体地,图20和图21所示的装置6000和装置7000相当于视频解码器2000中的解码端预测模块2003。
下面结合图24至图26对本申请实施例的获取运动矢量的方法的应用场景进行介绍,本申请实施例的获取运动矢量的方法可以由图24至图26所示的视频传输系统、编解码装置以及编解码系统来执行。
图24是本申请实施例的视频传输系统的示意性框图。
如图24所示,视频传输系统包括采集模块3001、编码模块3002、发送模块3003、网络传输3004、接收模块3005、解码模块3006、渲染模块3007和显示模块208组成。
其中,视频传输系统中各个模块的具体作用如下:
采集模块3001包含摄像头或者摄像头组,用于采集视频图像,并对采集到的视频图像进行编码前的处理,将光信号转化为数字化的视频序列;
编码模块3002用于对视频序列进行编码,得到码流;
发送模块3003用于将编码得到的码流发送出去;
接收模块3005用于接收发送模块3003发送的码流;
网络3004用于将发送模块3003发送的码流传输到接收模块3005;
解码模块3006用于对接收模块3005接收的码流进行解码,重建视频序列;
渲染模块3007用于对解码模块3006解码得到的重建视频序列进行渲染,以提高视频的显示效果。
图24所示的视频传输系统可以执行本申请实施例的获取运动矢量的方法,具体地,图24所示的视频传输系统中的编码模块3001和解码模块3006都可以执行本申请实施例的获取运动矢量的方法。
下面结合图25和图26对编解码装置和编解码装置组成的编解码系统进行详细的介绍。应理解,图25和图26中所示的编解码装置和编解码系统能够执行本申请实施例的获取运动矢量的方法。
图25是本申请实施例的视频编解码装置的示意性图。该视频编解码装置50可以是专门用于对视频图像进行编码和/或解码的装置,也可以是具有视频编解码功能的电子设备,进一步地,该编解码装置50可以是无线通信系统的移动终端或者用户设备。
编解码装置50可以包括下列模块或者单元:控制器56、编解码器54、无线电接口52、天线44、智能卡46、读卡器48、小键盘34、存储器58、红外线端口42、显示器32。除了图25中所示的模块和单元之外,编解码装置50还可以包括麦克风或者任何适当的音频输入模块,该音频输入模块可以是数字或者模拟信号输入,编解码装置50还可以包括音频输出模块,该音频输出模块可以是耳机、扬声器或者模拟音频或者数字音频输出连接。编解码装置50也可以包括电池,该电池可以是太阳能电池、燃料电池等等。编解码装置50还可以包括用于与其它设备进行近程视线通信的红外线端口,该编解码装置50还可以采用包括任何适当的近程通信方式与其它设备进行通信,例如,蓝牙无线连接、USB/火线有线连接。
存储器58可以存储形式为图像的数据和音频的数据,也可以存储用于在控制器56上执行的指令。
编解码器54可以实现对音频和/或视频数据的编码和解码或者在控制器56的控制下实现对音频和/或视频数据的辅助编码和辅助解码。
智能卡46和读卡器48可以提供用户信息,也可以提供网络认证和授权用户的认证信息。智能卡46和读卡器48的具体实现形式可以是集成电路卡(universal Integratedcircuit card,UICC)和UICC读取器。
无线电接口电路52可以生成无线通信信号,该无线通信信号可以是在进行蜂窝通信网络、无线通信系统或者无线局域网通信产生的通信信号。
天线44用于向其它装置(装置的数目可以为一个也可以为多个)发送在无线电接口电路52生成的射频信号,并且还可以用于从其它装置(装置的数目可以为一个也可以为多个)接收射频信号。
在本申请的一些实施例中,编解码装置50可以在传输和/或存储之前从另一设备接收待处理的视频图像数据。在本申请的另一些实施例中,编解码装置50可以通过无线或者有线连接接收图像并对接收到的图像进行编码/解码。
图26是本申请实施例的视频编解码系统7000的示意性框图。
如图26所示,视频编解码系统7000包含源装置4000及目的地装置5000。源装置4000产生经过编码后的视频数据,源装置4000也可以被称为视频编码装置或视频编码设备,目的地装置5000可以对源装置4000产生的经过编码后的视频数据进行解码,目的地装置5000也可以被称为视频解码装置或视频解码设备。
源装置4000和目的地装置5000的具体实现形式可以是如下设备中的任意一种:台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、智能电话、手持机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机,或者其它类似的设备。
目的地装置5000可以经由信道6000接收来自源装置4000编码后的视频数据。信道6000可包括能够将编码后的视频数据从源装置4000移动到目的地装置5000的一个或多个媒体及/或装置。在一个实例中,信道6000可以包括使源装置4000能够实时地将编码后的视频数据直接发射到目的地装置5000的一个或多个通信媒体,在此实例中,源装置4000可以根据通信标准(例如,无线通信协议)来调制编码后的视频数据,并且可以将调制后的视频数据发射到目的地装置5000。上述一个或多个通信媒体可以包含无线及/或有线通信媒体,例如射频(radio frequency,RF)频谱或一根或多根物理传输线。上述一个或多个通信媒体可以形成基于包的网络(例如,局域网、广域网或全球网络(例如,因特网))的部分。上述一个或多个通信媒体可以包含路由器、交换器、基站,或者实现从源装置4000到目的地装置5000的通信的其它设备。
在另一实例中,信道6000可包含存储由源装置4000产生的编码后的视频数据的存储媒体。在此实例中,目的地装置5000可经由磁盘存取或卡存取来存取存储媒体。存储媒体可包含多种本地存取式数据存储媒体,例如蓝光光盘、高密度数字视频光盘(digitalvideo disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。
在另一实例中,信道6000可包含文件服务器或存储由源装置4000产生的编码后的视频数据的另一中间存储装置。在此实例中,目的地装置5000可经由流式传输或下载来存取存储于文件服务器或其它中间存储装置处的编码后的视频数据。文件服务器可以是能够存储编码后的视频数据且将所述编码后的视频数据发射到目的地装置5000的服务器类型。例如,文件服务器可以包含全球广域网(world wide web,Web)服务器(例如,用于网站)、文件传送协议(file transfer protocol,FTP)服务器、网络附加存储(network attachedstorage,NAS)装置以及本地磁盘驱动器。
目的地装置5000可经由标准数据连接(例如,因特网连接)来存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道、有线连接(例如,缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器的发射可为流式传输、下载传输或两者的组合。
本申请的获取运动矢量的方法不限于无线应用场景,示例性的,本申请的获取运动矢量的方法可以应用于支持以下应用等多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统7000可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
在图26中,源装置4000包含视频源4001、视频编码器4002及输出接口4003。在一些实例中,输出接口4003可包含调制器/解调器(调制解调器)及/或发射器。视频源4001可包含视频俘获装置(例如,视频相机)、含有先前俘获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,及/或用于产生视频数据的计算机图形系统,或上述视频数据源的组合。
视频编码器4002可编码来自视频源4001的视频数据。在一些实例中,源装置4000经由输出接口4003将编码后的视频数据直接发射到目的地装置5000。编码后的视频数据还可存储于存储媒体或文件服务器上以供目的地装置5000稍后存取以用于解码及/或播放。
在图26的实例中,目的地装置5000包含输入接口5003、视频解码器5002及显示装置5001。在一些实例中,输入接口5003包含接收器及/或调制解调器。输入接口5003可经由信道6000接收编码后的视频数据。显示装置5001可与目的地装置5000整合或可在目的地装置5000外部。一般来说,显示装置5001显示解码后的视频数据。显示装置5001可包括多种显示装置,例如液晶显示器、等离子体显示器、有机发光二极管显示器或其它类型的显示装置。
视频编码器4002及视频解码器5002可根据视频压缩标准(例如,高效率视频编解码H.265标准))而操作,并且可以可遵照高效视频编码(high efficiency video coding,HEVC)测试模型(HM)。H.265标准的文本描述ITU-TH.265(V3)(04/2015)于2015年4月29号发布,可从http://handle.itu.int/11.1002/7000/12455下载,所述文件的全部内容以引用的方式并入本文中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (26)

1.一种获取运动矢量的方法,其特征在于,包括:
确定待处理块的目标偏移矢量和目标图像的标识信息,其中,所述待处理块包含至少一个待处理子块;
根据所述待处理子块的位置坐标和所述待处理子块的目标偏移矢量,确定出所述待处理子块的初始对应位置点;
当所述初始对应位置点位于预设区域内时,将所述初始对应位置点确定为目标对应位置点;
当所述初始对应位置点超出所述预设区域时,将所述预设区域内距离所述初始对应位置点最近的位置确定为目标对应位置点;
根据所述目标对应位置点对应的运动矢量获取所述待处理子块的运动矢量;
其中,所述预设区域是根据所述待处理块所在的编码树单元CTU的位置和尺寸、所述目标图像的尺寸以及预设的CTU的时域运动矢量场的扩展范围确定的。
2.如权利要求1所述的方法,其特征在于,所述预设区域采用横坐标取值区间和纵坐标取值区间表示,所述横坐标取值区间包括横坐标最小值和横坐标最大值,所述纵坐标取值区间包括纵坐标最小值和纵坐标最大值,
所述当所述初始对应位置点位于预设区域内时,将所述初始对应位置点确定为目标对应位置点;当所述初始对应位置点超出所述预设区域时,将所述预设区域内距离所述初始对应位置点最近的位置确定为目标对应位置点,包括:
根据以下公式确定所述目标对应位置点:
x(i,j)=Clip3(HorMin,HorMax,x(i,j));
y(i,j)=Clip3(VerMin,VerMax,y(i,j));
其中,HorMin为所述横坐标最小值,HorMax为所述横坐标最大值,VerMin为所述纵坐标最小值,VerMax为所述纵坐标最大值,Clip3函数为钳位函数,Clip3函数的定义如下:
Figure FDA0003813888060000011
3.如权利要1或2所述的方法,其特征在于,
所述初始对应位置点是根据所述目标偏移矢量对所述待处理子块的位置坐标进行偏移而得到的。
4.如权利要求3所述的方法,其特征在于,所述初始对应位置点是通过如下方法得到:
Figure FDA0003813888060000021
其中,(x,y)表示所述待处理块的位置坐标,i表示所述待处理块中水平方向或横方向上的第i个子块,j表示所述待处理块中垂直方向或纵方向上的第j个子块,(xoff,yoff)表示所述目标偏移矢量在所述水平方向或横方向和所述垂直方向或纵方向上的分量值,M和N分别表示所述待处理子块的宽和高,(x(i,j),y(i,j))表示所述待处理块中的第(i,j)个子块的对应子块的位置坐标。
5.如权利要求4或5所述的方法,其特征在于,(x,y)表示所述待处理块的左上顶点的位置坐标,(x(i,j),y(i,j))表示所述待处理块中的第(i,j)个子块的对应子块的中心点或者左上顶点的位置坐标。
6.权利要求1所述的方法,其特征在于,
Figure FDA0003813888060000022
表示第(i,j)个子块的位置坐标,(x,y)表示所述子块的位置坐标,i表示所述待处理块中水平方向或横方向上的第i个子块,j表示所述待处理块中垂直方向或纵方向上的第j个子块,M和N分别表示所述待处理子块的宽和高。
7.如权利要求1所述的方法,其特征在于,所述CTU的时域运动矢量场的扩展范围包括CTU的时域运动矢量场在水平方向或横方向上的扩展范围和CTU的时域运动矢量场在垂直方向或纵方向上的扩展范围。
8.如权利要求1或2或7所述的方法,其特征在于,所述CTU的时域运动矢量场的扩展范围的取值是预定数值。
9.如权利要求1或2或7所述的方法,其特征在于,所述预设区域是根据以下公式计算得到的:
HorMin=Max(CTUX–RangeL,0)
HorMax=Min(CTUX+CTUW+RangeR–1,PicW–1)
VerMin=Max(CTUY–RangeU,0)
VerMax=Min(CTUY+CTUH+RangeB–1,PicH–1)
其中,HorMin和HorMax分别为所述预设范围在水平方向或横方向上能够取得的最小值和最大值,VerMin和VerMax分别为所述预设范围在垂直方向或纵方向上能够取得的最小值和最大值,CTUX和CTUY表示所述待处理块所在CTU的位置坐标,CTUW和CTUH表示所述待处理块所在CTU的宽和高,RangeU、RangeB、RangeL、RangeR分别表示所述待处理块所在CTU的时域运动矢量场在上、下、左、右方向上的扩展值,PicW和PicH分别表示所述目标图像的宽和高。
10.如权利要求9所述的方法,其特征在于,所述RangeL,RangeR,RangeU,RangeB是预定数值。
11.如权利要求1或2或7所述的方法,其特征在于,所述根据所述目标对应位置点对应的运动矢量获取所述待处理子块的运动矢量,包括:
根据所述待处理子块所在的图像帧的图像顺序序号POC、所述待处理子块所在的图像帧的目标参考帧的POC、所述目标图像的POC以及所述目标图像的目标参考帧的POC,对所述目标对应位置点对应的运动矢量进行缩放,以得到所述待处理子块的运动矢量。
12.根据权利要求11所述的方法,其特征在于,所述待处理子块的运动矢量,是根据以下公式获得:
Figure FDA0003813888060000031
其中,P1表示所述待处理子块所在的图像帧的POC,P2表示所述待处理子块所在的图像帧的目标参考帧的POC,P3表示所述目标图像的POC,P4表示所述目标图像的目标参考帧的POC,MV表示所述目标对应位置点对应的运动矢量,MVs表示所述待处理子块的运动矢量。
13.如权利要求1或2或7所述的方法,其特征在于,所述确定待处理块的目标偏移矢量,包括:
将所述待处理块的空域相邻块的运动矢量确定为所述目标偏移矢量。
14.如权利要1或2或7所述的方法,其特征在于,所述初始对应位置点表示所述子块的对应子块的初始位置,所述目标对应位置点表示所述子块的对应子块的目标位置。
15.如权利要1或2或7所述的方法,其特征在于,所述目标偏移矢量为时间矢量(temporal vector)。
16.如权利要1或2或7所述的方法,其特征在于,所述方法还包括:
基于所述待处理子块的运动矢量进行运动补偿,得到所述待处理子块的预测像素值;
根据所述待处理块的像素值与所述待处理块的预测像素值,得到残差信息,其中所述待处理块的预测像素值包括所述待处理子块的预测像素值;
对残差信息进行变换、量化以及熵编码,得到编码码流。
17.如权利要1或2或7所述的方法,其特征在于,所述方法还包括:
基于所述待处理子块的运动矢量进行运动补偿,得到所述待处理子块的预测像素值;
对码流进行熵解码以及反量化和反变换得到残差信息;
根据所述残差信息与所述待处理块的预测像素值,得到所述待处理块的重建像素值,其中所述待处理块的预测像素值包括所述待处理子块的预测像素值。
18.一种解码装置,其特征在于,所述解码装置包括:存储器和处理器;
其中,所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如权利要求1至15以及17中任一项所述的方法。
19.一种编码装置,其特征在于,所述编码装置包括:存储器和处理器;
其中,所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如权利要求1至16中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,当所述程序代码被运行时,实现如权利要求1至17中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有由一个或多个处理器执行的如权利要求16所述方法得到的视频码流。
22.一种存储视频数据的经编码的码流的方法,其特征在于,所述方法包括:
接收根据权利要求16所述的方法生成的所述码流;以及,
将所述码流存储到存储介质中。
23.一种存储视频数据的经编码的码流的系统,其特征在于,包括:
接收器,用于接收根据权利要求16所述的方法生成的所述码流;以及,
存储介质,用于存储所述码流。
24.一种传输视频数据的经编码的码流的方法,其特征在于,所述方法包括:
从存储介质中获取码流,所述码流是根据权利要求16所述的方法生成的码流且存储在所述存储介质中;以及,
发送所述码流。
25.一种传输视频数据的经编码的码流的系统,其特征在于,所述系统包括:
处理器,用于从存储介质中获取码流,所述码流是根据权利要求16所述的方法生成的码流且存储在所述存储介质中;以及,
发送器,用于发送所述码流。
26.一种存储装置,所述存储装置存储有根据权利要求16所述的方法生成的码流。
CN202211020629.3A 2018-06-04 2018-06-04 获取运动矢量的方法和装置 Active CN115550664B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211020629.3A CN115550664B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810564560.8A CN110557641B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN202211020629.3A CN115550664B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810564560.8A Division CN110557641B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置

Publications (2)

Publication Number Publication Date
CN115550664A true CN115550664A (zh) 2022-12-30
CN115550664B CN115550664B (zh) 2023-08-22

Family

ID=68736012

Family Applications (5)

Application Number Title Priority Date Filing Date
CN202010734773.8A Active CN112040243B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN201810564560.8A Active CN110557641B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN202211020629.3A Active CN115550664B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN202410048536.4A Pending CN117956183A (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN202410047796.XA Pending CN117956182A (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202010734773.8A Active CN112040243B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN201810564560.8A Active CN110557641B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202410048536.4A Pending CN117956183A (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN202410047796.XA Pending CN117956182A (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置

Country Status (9)

Country Link
US (3) US11463721B2 (zh)
EP (2) EP3796657B1 (zh)
JP (2) JP7177181B2 (zh)
KR (2) KR102600071B1 (zh)
CN (5) CN112040243B (zh)
BR (1) BR112020024666A2 (zh)
MX (1) MX2020013131A (zh)
SG (1) SG11202012078PA (zh)
WO (1) WO2019233423A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111050182B (zh) * 2019-12-27 2022-02-18 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置
CN113706573A (zh) * 2020-05-08 2021-11-26 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2672708A2 (en) * 2011-01-31 2013-12-11 Electronics And Telecommunications Research Institute Method and apparatus for encoding/decoding images using a motion vector
CN104918057A (zh) * 2015-05-08 2015-09-16 上海交通大学 一种利用邻域运动信息的运动矢量后处理系统
CN105532001A (zh) * 2013-07-12 2016-04-27 三星电子株式会社 用于使用基于深度的视差矢量对视频进行层间解码的方法和设备以及用于使用基于深度的视差矢量对视频进行层间编码的方法和设备
WO2016123081A1 (en) * 2015-01-26 2016-08-04 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN105939475A (zh) * 2016-06-06 2016-09-14 中国矿业大学 一种高质量边信息生成方法
US20160337661A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US20170332099A1 (en) * 2016-05-13 2017-11-16 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291433A (zh) * 2007-04-19 2008-10-22 上海中科计算技术研究所 视频编码技术中的模块运动矢量匹配评估方法
CN103716629B (zh) * 2012-09-29 2017-02-22 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
JP2015106747A (ja) * 2013-11-28 2015-06-08 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2015173404A (ja) * 2014-03-12 2015-10-01 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
GB2521491B (en) * 2014-06-17 2016-10-19 Imagination Tech Ltd Motion estimation
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
US10306258B2 (en) * 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
CN108076347B (zh) * 2016-11-15 2021-11-26 阿里巴巴集团控股有限公司 一种编码起始点的获取方法以及装置
US11700391B2 (en) * 2017-05-18 2023-07-11 Hfi Innovation Inc. Method and apparatus of motion vector constraint for video coding
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US11184636B2 (en) * 2017-06-28 2021-11-23 Sharp Kabushiki Kaisha Video encoding device and video decoding device
CN111886867B (zh) * 2018-01-09 2023-12-19 夏普株式会社 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
KR102656965B1 (ko) * 2018-01-29 2024-04-11 브이아이디 스케일, 인크. 낮은 복잡성을 갖는 프레임-레이트 상향 변환
KR102643116B1 (ko) * 2018-03-30 2024-03-04 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019192491A1 (en) * 2018-04-02 2019-10-10 Mediatek Inc. Video processing methods and apparatuses for sub-block motion compensation in video coding systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2672708A2 (en) * 2011-01-31 2013-12-11 Electronics And Telecommunications Research Institute Method and apparatus for encoding/decoding images using a motion vector
CN105532001A (zh) * 2013-07-12 2016-04-27 三星电子株式会社 用于使用基于深度的视差矢量对视频进行层间解码的方法和设备以及用于使用基于深度的视差矢量对视频进行层间编码的方法和设备
WO2016123081A1 (en) * 2015-01-26 2016-08-04 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN104918057A (zh) * 2015-05-08 2015-09-16 上海交通大学 一种利用邻域运动信息的运动矢量后处理系统
US20160337661A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US20170332099A1 (en) * 2016-05-13 2017-11-16 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
CN105939475A (zh) * 2016-06-06 2016-09-14 中国矿业大学 一种高质量边信息生成方法

Also Published As

Publication number Publication date
CN117956182A (zh) 2024-04-30
CN117956183A (zh) 2024-04-30
KR20230156446A (ko) 2023-11-14
CN110557641A (zh) 2019-12-10
JP7177181B2 (ja) 2022-11-22
CN110557641B (zh) 2024-01-16
EP3796657A1 (en) 2021-03-24
CN115550664B (zh) 2023-08-22
EP4369711A2 (en) 2024-05-15
MX2020013131A (es) 2021-03-25
US20230070282A1 (en) 2023-03-09
JP2021526338A (ja) 2021-09-30
CN112040243B (zh) 2021-06-29
EP3796657B1 (en) 2024-03-06
US11463721B2 (en) 2022-10-04
KR102600071B1 (ko) 2023-11-07
US11812050B2 (en) 2023-11-07
JP2023017955A (ja) 2023-02-07
WO2019233423A1 (zh) 2019-12-12
SG11202012078PA (en) 2021-01-28
US20240121421A1 (en) 2024-04-11
US20210092433A1 (en) 2021-03-25
BR112020024666A2 (pt) 2021-03-02
KR20210015931A (ko) 2021-02-10
CN112040243A (zh) 2020-12-04
EP3796657A4 (en) 2021-06-23

Similar Documents

Publication Publication Date Title
EP3672249B1 (en) Inter frame prediction method and device for video images
US20190306516A1 (en) Systems and methods for intra prediction coding
CN106998470B (zh) 解码方法、编码方法、解码设备和编码设备
JP2015506606A (ja) ビデオコーディングのための動きベクトル予測の実行
CN111480338B (zh) 视频数据的帧间预测方法和装置
US11812050B2 (en) Motion vector obtaining method and apparatus
CN109996080B (zh) 图像的预测方法、装置及编解码器
CN110868602B (zh) 视频编码器、视频解码器及相应方法
CN113315975B (zh) 一种双向帧间预测方法及装置
CN112640468A (zh) 应用于双向帧间预测中的参考帧获取方法及装置
CN111327907B (zh) 一种帧间预测的方法、装置、设备及存储介质
CN111050164B (zh) 一种编解码的方法和装置
CN110677645B (zh) 一种图像预测方法及装置
US20210185323A1 (en) Inter prediction method and apparatus, video encoder, and video decoder

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