CN109905714A - 帧间预测方法、装置及终端设备 - Google Patents
帧间预测方法、装置及终端设备 Download PDFInfo
- Publication number
- CN109905714A CN109905714A CN201711297953.9A CN201711297953A CN109905714A CN 109905714 A CN109905714 A CN 109905714A CN 201711297953 A CN201711297953 A CN 201711297953A CN 109905714 A CN109905714 A CN 109905714A
- Authority
- CN
- China
- Prior art keywords
- image block
- motion vector
- target
- precision
- adjacent image
- 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
Links
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/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/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/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/167—Position within a video image, e.g. region of interest [ROI]
-
- 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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- 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
-
- 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/53—Multi-resolution motion estimation; Hierarchical motion 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/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/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- 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/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种帧间预测方法、装置和终端设备。该帧间预测方法包括:获取当前图像块的目标相邻图像块所在的位置;获取预设的相邻图像块的位置与运动矢量精度的对应关系,在所述对应关系中,至少两个相邻图像块的位置对应的运动矢量精度不同;根据所述目标相邻图像块所在的位置以及所述对应关系,确定所述目标相邻图像块对应的目标运动矢量精度;根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值。本申请能够简化帧间预测的复杂度。
Description
技术领域
本申请涉及视频编解码领域,并且更具体地,涉及一种帧间预测方法、装置及终端设备。
背景技术
在对图像块进行帧间预测时,传统方案是首先生成候选运动矢量列表,然后再从候选运动矢量列表中选择出一个目标运动矢量对待预测图像块进行运动矢量预测。下面分别从编码端和解码端的角度对采用传统方案进行帧间预测过程进行详细介绍。
编码端:
首先,在第一运动矢量精度下,根据当前图像块的可用相邻块(存在运动矢量的相邻块被称为可用相邻块)的运动矢量生成候选运动矢量预测值列表(该列表中一般包含两个候选运动矢量预测值);其次,编码端从该候选运动矢量预测值列表中选择出一个目标运动矢量对当前图像块进行运动矢量预测;最后,编码端将第一运动矢量精度以及目标运动矢量在候选运动矢量列表中的索引值写入到码流中,并传输给解码端。
解码端:
首先,解码端解析码流,获取第一运动矢量精度以及目标运动矢量在候选运动矢量列表中的索引值;其次,解码端在第一运动矢量精度下根据当前图像块的可用相邻块的运动矢量生成候选运动矢量预测值列表;再次,解码端根据目标运动矢量在候选运动矢量列表中的索引值从目标运动矢量在候选运动矢量列表中选择出目标运动矢量;最后,解码端根据目标运动矢量对当前图像块进行运动矢量预测。
传统方案在进行帧间预测时,编码端需要向解码端传输第一运动矢量精度以及目标运动矢量在候选运动矢量列表中的索引值,并且解码端还需要在第一运动矢量精度下重新生成候选运动矢量预测值列表,进行帧间预测的复杂度比较高。
发明内容
本申请提供一种帧间预测方法、装置和终端设备,以简化帧间预测的复杂度。
第一方面,提供了一种帧间预测方法,该方法包括:解析码流,获取当前图像块的目标相邻图像块所在的位置;获取预设的相邻图像块的位置与运动矢量精度的对应关系,在所述对应关系中,至少两个相邻图像块的位置对应的运动矢量精度不同;根据所述目标相邻图像块所在的位置以及所述对应关系,确定所述目标相邻图像块对应的目标运动矢量精度;根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值。
可选地,上述相邻图像块既可以是与当前图像块在时域上相邻的图像块,也可以是与当前图像块在空域上相邻的图像块。
应理解,上述对应关系具体可以用于指示采用不同位置的相邻图像块对所述当前图像块进行运动矢量预测时,所述当前图像块的运动矢量预测值需要达到的精度。
上述相邻图像块的位置对应的运动矢量精度可以包括:1/4像素、1/2像素、整像素、2像素、4像素和8像素等等。
上述帧间预测方法可以由编码端执行,上述码流可以是编码端对视频进行编码时得到的,该码流可以直接由编码端传输给解码端。
应理解,上述目标相邻图像块所在的位置可以是编码端在对图像进行编码时确定的。
可选地,解析码流,获取当前图像块的目标相邻图像块所在的位置,具体包括:解析码流,获取目标索引值,所述目标索引值用于指示所述目标相邻图像块所在的位置。
应理解,相邻图像块所在的位置与索引值可以有一一对应关系,编码端可以将目标相邻图像块所在的位置对应的目标索引值写入到码流中,使得解码端通过解析码流获取目标索引值,然后再根据目标索引值,以及索引值与相邻图像块所在的位置的对应关系来确定目标相邻图像块所在的位置。
本申请中,当获取了目标相邻图像块所在的位置之后,可以直接根据相邻图像块的位置与运动矢量精度的对应关系来确定目标相邻图像块对应的目标运动矢量精度,进而能够根据目标相邻图像块所在的位置以及目标运动矢量精度进行运动矢量预测,能够减小帧间预测的复杂度。
可选地,上述预设的相邻图像块的位置与运动矢量精度的对应关系可以预先写入到编码端和解码端。
结合第一方面,在第一方面的某些实现方式中,在所述对应关系中,第i相邻图像块所在的位置对应第j运动矢量精度,第j运动矢量精度是所述第i相邻图像块所在的位置在预设统计时期内进行图像运动矢量预测时使用频率最高的运动矢量精度,第i相邻图像块为待预测图像块对应的多个相邻图像块中的任意一个。
将一段预设的统计时间内进行图像运动矢量预测时使用频率最高的运动矢量精度作为相邻图像块所在的位置对应的运动矢量精度,能够较为合理地确定每个相邻图像块所在的位置对应的运动矢量精度。
上述待预测图像块可以是指在进行运动矢量预测时,任意一个需要进行运动矢量预测的图像块,而待预测图像块对应的多个相邻图像块可以是与该待预测图像块相邻的一些图像块,或者,待预测图像块对应的多个相邻图像块可以是在对待预测图像块进行运动矢量预测时用到的一些图像块。
可选地,上述预设统计时期(或者预设统计时间)还可以是指完成对一定数量的视频图像(例如,10万帧视频图像)进行运动矢量预测所需要的时间。
可选地,上述预设统计时期还可以是指一个固定时间段,例如,1个月,3个月等等。
可选地,上述预设统计时期还可以是指达到预设统计次数(例如,10万次)所需要的时间。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:在所述目标相邻图像块所在的位置存在运动矢量的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
本申请中,当目标相邻图像块存在运动矢量时,通过直接对目标相邻图像块的运动矢量的精度进行调整,能够快速确定当前图像块的运动矢量预测值,简化了帧间预测的复杂度。
应理解,当上述目标相邻图像块存在运动矢量时可以认为目标相邻图像块可用,而当目标项链图像块不存在运动矢量时可以认为目标相邻图像块不用。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:在所述目标相邻图像块所在的位置存在运动矢量的情况下,确定所述目标相邻图像块的运动矢量的精度是否为目标运动矢量精度;
在所述目标相邻图像块的运动矢量的精度是目标运动矢量精度的情况下,将所述目标相邻图像块的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标相邻图像块的运动矢量的精度不是目标运动矢量精度的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
在根据目标相邻块的运动矢量获取当前图像块的运动矢量预测值时,通过提前判断目标相邻图像块的精度是否为目标运动矢量精度,能够在目标相邻图像块的精度为目标运动矢量精度的情况下,直接将目标相邻块的运动矢量确定为当前图像块的运动矢量预测值,从而节省了精度调整的过程。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:在所述目标相邻图像块所在的位置存在运动矢量的情况下,将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:在所述目标相邻图像块所在的位置存在运动矢量的情况下,将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;确定所述目标运动矢量的精度是否为目标运动矢量精度;
在所述目标运动矢量的精度是目标运动矢量精度的情况下,将所述目标运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量的精度不是目标运动矢量精度的情况下,按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
本申请中,当目标相邻图像块存在运动矢量时,通过运动搜索的方式能够寻找出最优的运动矢量作为当前图像块的运动矢量预测值,从而提高帧间预测的准确性。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:确定所述目标运动矢量精度是否为第一预设精度;
在所述目标运动矢量精度不是第一预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第一预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
上述第一预设精度可以是一个运动矢量精度,例如,上述第一预设精度为1/4像素。
上述第一预设精度也可以是包含多个运动矢量精度,例如,上述第一预设精度为1/4像素和1/2像素。
上述第一预设精度还可以是一个精度范围,上述第一预设精度为小于或者等于1/2像素的精度。
例如,上述第一预设精度为1/4像素,那么,只有当目标运动矢量精度也为1/4像素时才采用运动搜索的方式来获取当前图像块的运动矢量预测值,而当目标运动矢量精度为1/4像素之外的其它精度时采用对运动矢量的精度进行调整的方式来获取当前图像块的运动矢量预测值。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:在所述目标相邻图像块所在的位置不存在运动矢量的情况下,按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,上述多个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从小到大或者从大到小的顺序对所述多个相邻图像块进行排列得到的。
可选地,上述按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,包括:按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取排位为第一位或者最后一位的图像块作为第一相邻图像块。
其中,当多个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从小到大进行排列时,可以从多个相邻图像块中选择排位为第一位的相邻块作为第一相邻图像块;而当个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从大到小进行排列时,可以从多个相邻图像块中选择排位为最后一位的相邻块作为第一相邻图像块。
本申请中,当目标相邻图像块不存在运动矢量时,按照目标运动矢量精度对获取到的第一相邻图像块的运动矢量进行调整以得到当前图像块的运动矢量预测值,能够在目标相邻图像块不存在运动矢量时快速确定当前图像块的运动矢量预测值,简化了帧间预测的复杂度。
可选地,在根据第一相邻图像块的运动矢量得到当前图像块的运动矢量预测值时,具体包括:确定第一相邻图像块的运动矢量的精度是否为目标运动矢量精度;
在第一相邻图像块的运动矢量的精度是目标运动矢量精度的情况下,将第一相邻图像块的运动矢量确定为当前图像块的运动矢量预测值;
在第一相邻图像块的运动矢量的精度不是目标运动矢量精度的情况下,按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:在所述目标相邻图像块所在的位置不存在运动矢量的情况下,从所述当前图像块的相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述当前图像块的相邻图像块中存在运动矢量的图像块;从所述多个第二相邻图像块的运动矢量指向的多个位置中选择一个位置作为搜索起始点;从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:在所述目标相邻图像块所在的位置不存在运动矢量的情况下,从所述当前图像块的相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述当前图像块的相邻图像块中存在运动矢量的图像块;从所述多个第二相邻图像块的运动矢量指向的多个位置中选择一个位置作为搜索起始点;从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;确定所述目标运动矢量的精度是否为目标运动矢量精度;
在所述目标运动矢量精度是目标运动矢量精度的情况下,将所述目标运动矢量确定为当前图像块的运动矢量预测值;
在所述目标运动矢量精度不是目标运动矢量精度的情况下,按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
本申请中,当目标相邻图像块不存在运动矢量时,以运动搜索的方式确定当前图像块的运动矢量预测值能够提高帧间预测的准确性。
可选地,在从所述起始搜索点开始搜索以得到当前图像块的运动矢量预测值,具体包括:根据所述目标运动矢量精度从所述起始搜索点开始搜索,得到至少一个运动矢量,其中,所述至少一个运动矢量中的每个运动矢量的精度为所述目标运动矢量精度;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;将所述目标运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,在从所述起始搜索点开始搜索以得到当前图像块的运动矢量预测值,具体包括:从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;按照所述目标运动矢量精度对所述目标运动矢量进行调整,以使得调整后的目标运动矢量的精度为目标运动矢量精度;将调整后的目标运动矢量精度确定为所述当前图像块的运动矢量预测值。
在采用运动搜索方式得到当前图像块的运动矢量预测值时,既可以按照目标运动矢量精度进行搜索,这样使得搜索得到的运动矢量的精度就是目标运动矢量精度,也可以是先进行搜索,然后再对选择出来的目标运动矢量的精度进行调整。
结合第一方面,在第一方面的某些实现方式中,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:确定所述目标运动矢量精度是否为第二预设精度;在所述目标运动矢量精度不是第二预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述多个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从小到大的顺序对所述多个相邻图像块进行排列得到的,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第二预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
从所述当前图像块的多个相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;从所述多个相邻图像块的运动矢量指向的多个位置选择一个位置作为搜索起始点;从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
结合第一方面,在第一方面的某些实现方式中,从所述多个第二相邻图像块的运动矢量指向的多个位置中选择一个位置作为搜索起始点,包括:采用模板匹配的方式,从所述多个位置中选择绝对误差和(Sum of Absolute Differences,SAD)最小的位置作为目标运动矢量。
应理解,在从多个位置中选择一个位置作为搜索起始点时,还可以采用模板匹配的方式从多个位置中选择绝对变换误差和(Sum of Absolute TransformationDifferences,SATD)或者均方误差(Mean Square Error,MSE)最小的位置作为搜索起始点。
上述第二预设精度可以是一个运动矢量精度,例如,上述第二预设精度为1/8像素。
上述第二预设精度也可以是包含多个运动矢量精度,例如,上述第二预设精度为1/8像素、1/4像素和1/2像素。
上述第二预设精度还可以是一个精度范围,上述第二预设精度为小于或者等于整像素的精度。
例如,上述第二预设精度为小于或者等于整像素,那么,只要当目标运动矢量精度小于或者等于整像素,那么就采用运动搜索的方式来获取当前图像块的运动矢量预测值,而当目标运动矢量精度大于或者等于整像素时,则采用对运动矢量的精度进行调整的方式来获取当前图像块的运动矢量预测值。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:解析码流,获取第一指示信息,所述第一指示信息用于指示所述第一预设精度;所述确定所述目标运动矢量精度是否为第一预设精度,包括:根据所述第一指示信息确定所述目标运动矢量精度是否为第一预设精度。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:解析码流,获取第二指示信息,所述第二指示信息用于指示所述第二预设精度;所述确定所述目标运动矢量精度是否为第二预设精度,包括:根据所述第二指示信息确定所述目标运动矢量精度是否为第二预设精度。
通过上述第一指示信息和第二指示信息能够灵活指示上述第一预设精度和第二预设精度。
结合第一方面,在第一方面的某些实现方式中,所述第一指示信息或者第二指示信息承载在所述当前图像块的序列参数集、图像参数集或者条带头中的任意一种。
结合第一方面,在第一方面的某些实现方式中,从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量,包括:根据模板匹配,从所述至少一个运动矢量中选择SAD最小的运动矢量作为目标运动矢量。
应理解,在根据模板匹配选择目标运动矢量时,还可以从至少一个运动矢量中选择SATD或者MSE最小的运动矢量作为目标运动矢量。
第二方面,提供了一种帧间预测装置,所述帧间预测装置包括用于执行所述第一方面或其各种实现方式中的方法的模块。
第三方面,提供一种终端设备,所述终端设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述程序被执行时,所述处理器用于执行所述第一方面或其各种实现方式中的方法。
第四方面,提供一种解码器,包括非易失性存储介质,以及中央处理器,所述非易失性存储介质存储有可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述第一方面或其各种实现方式中的方法。
第五方面,提供一种视频编码系统,包括非易失性存储介质,以及中央处理器,所述非易失性存储介质存储有可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述可执行程序以实现所述第一方面或其各种实现方式中的方法。
附图说明
图1是视频编码过程的示意图;
图2是视频解码过程的示意图;
图3是本申请实施例的帧间预测方法的示意性流程图;
图4是待预测图像块对应的相邻图像块的分布示意图;
图5是不同位置的相邻块采用各种运动矢量精度的频率的示意图;
图6是本申请实施例的帧间预测方法的示意性框图;
图7是本申请实施例的帧间预测方法的示意性框图;
图8是本申请实施例的帧间预测装置的示意性框图;
图9是本申请实施例的终端设备的示意性框图;
图10是本申请实施例的解码器的示意性框图;
图11是本申请实施例的编解码装置的示意性框图;
图12是本申请实施例的视频编解码系统的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请中的帧间预测方法可以应用到视频编解码技术领域中。为了更好地理解本申请的帧间预测方法,下面先对视频编解码进行介绍。
一段视频一般由很多帧图像按照一定的次序组成,一般来说,一帧图像中或者不同帧图像之间存在着大量的重复信息(冗余信息),例如,一帧图像内往往存在着大量空间结构相同或者相似的地方,也就是说视频文件中存在大量的空间冗余信息。另外,视频文件中还存在大量的时间冗余信息,这是由视频的组成结构导致的。例如,视频采样的帧速率一般为25帧/秒至60帧/秒,也就是说,相邻两帧间的采样时间间隔为1/60秒到1/25秒,在这么短的时间内,采样得到的图像画面中基本上都存在大量的相似信息,画面之间存在巨大关联性。
此外,相关研究表明,从人眼的视觉敏感度这一心理特性的角度出发,视频信息中也存在可以用来压缩的部分,即视觉冗余。所谓视觉冗余,是指利用人眼对亮度变化比较敏感,而对色度的变化相对不太敏感的特性来适当的压缩视频比特流。例如,在高亮度的区域,人眼视觉对亮度变化的敏感度呈现下降趋势,转而对物体的边缘处较为敏感;另外,人眼对内部区域相对不敏感而对对整体结构较为敏感。由于视频图像的最终服务对象是我们人类群体,所以可以充分利用人眼的这些特性对原有的视频图像进行压缩处理,达到更佳的压缩效果。除了上面提到的空间冗余、时间冗余和视觉冗余外,视频图像信息中还会存在信息熵冗余、结构冗余、知识冗余、重要性冗余等等这一系列的冗余信息。视频编码(也可以称为视频压缩编码)的目的就是使用各种技术方法将视频序列中的冗余信息去除掉,以达到减小存储空间和节省传输带宽的效果。
目前,在国际通用范围内,视频压缩编码标准中主流的压缩编码方式有四种:色度抽样、预测编码、变换编码和量化编码。下面分别对这几种编码方式进行详细介绍。
色度抽样:该方式充分利用了人眼的视觉心理特点,从底层的数据表示就开始设法最大限度的缩减单个元素描述的数据量。例如,在电视系统中多数采用的是亮度-色度-色度(YUV)颜色编码,它是欧洲电视系统广泛采用的标准。YUV颜色空间中包括一个亮度信号Y和两个色差信号U和V,三个分量彼此独立。YUV颜色空间彼此分开的表示方式更加灵活,传输占用带宽少,比传统的红绿蓝(RGB)色彩模型更具优势。例如,YUV 4:2:0形式表示两色度分量U和V在水平方向和垂直方向上都只有亮度Y分量的一半,即4个采样像素点中存在4个亮度分量Y,而色度分量U和V则只有一个。采用这种形式表示时,数据量进一步缩小,仅为原始的33%左右。因此,色度抽样充分利用了人眼的生理视觉特性,通过这种色度抽样的方式实现视频压缩的目的,是目前广泛采用的视频数据压缩方式之一。
预测编码:预测编码时利用之前已编码帧的数据信息来预测当前将要编码的帧。通过预测得到一个预测值,它不完全等同与实际值,预测值和实际值之间存在着一定的残差值。预测的越准确,则预测值就会越接近实际值,残差值就越小,这样对残差值进行编码就能大大减小数据量,在解码端解码时运用残差值加上预测值就能还原重构出匹配图像,这就是预测编码的基本思想方法。在主流编码标准中预测编码分为帧内预测和帧间预测两种基本类型。其中,帧内预测(Intra Prediction)是指利用当前图像内已重建区域内像素点的像素值对当前编码单元内像素点的像素值进行预测;帧间预测(Inter Prediction)是在已重建的图像中,为当前图像中的当前编码单元寻找匹配的参考块,将参考块中的像素点的像素值作为当前编码单元中像素点的像素值的预测信息或者预测值,并传输当前编码单元的运动信息。
变换编码:这种编码方式不直接对原本的空间域信息进行编码,而是按照某种形式的变换函数,将信息采样值从当前域转换到另外一种人为定义域中(通常称为变换域),再根据信息在变换域的分布特性进行压缩编码。由于视频图像数据往往在空间域的数据相关性非常大,存在大量的冗余信息,如果直接进行编码的话需要很大的比特量。而将信息采样值转换到变换域中后,数据的相关性大大减少,这样在编码时由于冗余信息的减少,编码所需的数据量也随之大大减少,这样就能够得到较高的压缩比,而且可以实现较好的压缩效果。典型的变换编码方式有卡洛(K-L)变换、傅立叶变换等。
量化编码:上述提到的变换编码其实本身并不压缩数据,量化过程才能有效地实现对数据的压缩,量化过程也是有损压缩中数据“损失”的主要原因。量化的过程就是将动态范围较大的输入值“强行规划”成较少的输出值的过程。由于量化输入值范围较大,需要较多的比特数表示,而“强行规划”后的输出值范围较小,从而只需要少量的比特数即可表示。
在基于混合编码架构的编码算法中,上述几种压缩编码方式可以混合使用,编码器控制模块根据视频帧中不同图像块的局部特性,选择该图像块所采用的编码模式。对帧内预测编码的块进行频域或空域预测,对帧间预测编码的块进行运动补偿预测,预测的残差再通过变换和量化处理形成残差系数,最后通过熵编码器生成最终的码流。为避免预测误差的累积,帧内或帧间预测的参考信号是通过编码端的解码模块得到。变换和量化后的残差系数经过反量化和反变换重建残差信号,再与预测的参考信号相加得到重建的图像。另外,环路滤波会对重建后的图像进行像素修正,以提高重建图像的编码质量。
下面结合图1和图2对视频编解码的整个过程进行简单的介绍。
图1是视频编码过程的示意图。
如图1所示,在对当前帧Fn中的当前图像块进行预测时,既可以采用帧内预测也可以采用帧间预测,具体地,可以根据当前帧Fn的类型,选择采用帧内编码还是帧间编码,例如,当前帧Fn为I帧时采用帧内预测,当前帧Fn为P帧或者B帧时采用帧间预测。当采用帧内预测时可以采用当前帧Fn中已经重建区域的像素点的像素值对当前图像块的像素点的像素值进行预测,当采用帧间预测时可以采用参考帧F’n-1中与当前图像块匹配的参考块的像素点的像素值对当前图像块的像素点的像素值进行预测。
在根据帧间预测或者帧内预测得到当前图像块的预测块之后,将当前图像块的像素点的像素值与预测块的像素点的像素值进行做差,得到残差信息,对残差信息进行变化、量化以及熵编码,得到编码码流。另外,在编码过程中还要对当前帧Fn的残差信息与当前帧Fn的预测信息进行叠加,并进行滤波操作,得到当前帧的重建帧F’n,并将其作为后续编码的参考帧。
图2是视频解码过程的示意图。
图2所示的视频解码过程相当于图1所示的视频解码过程的逆过程,在解码时,利用熵解码以及反量化和反变换得到残差信息,并根据解码码流确定当前图像块使用帧内预测还是帧间预测。如果是帧内预测,则利用当前帧中已重建区域内像素点的像素值按照帧内预测方法构建预测信息;如果是帧间预测,则需要解析出运动信息,并使用所解析出的运动信息在已重建的图像中确定参考块,并将参考块内像素点的像素值作为预测信息,接下来,再将预测信息与残差信息进行叠加,并经过滤波操作便可以得到重建信息。
本申请实施例的方法可以发生在视频编码或者视频解码过程中,具体地,本申请实施例的帧间预测方法可以发生在图2中所示的帧间预测过程。
为了更好地理解本申请实施例的帧间预测方法,下面先对帧间预测/帧间编码的基本概念进行简单的介绍。
帧间预测/帧间编码(运动预测/补偿)是视频压缩的重要技术,用于去除视频信息中的时域冗余。由于视频序列通常包括很强的时域相关性,因此不需要每幅图像的全部信息,只需将当前图像(Current Frame)的中的运动信息以及运动补偿信息传递到解码侧即可。帧间预测就是将已编码的图像作为当前帧的参考图像(Reference Frame),为当前图像中的当前编码块寻找匹配的参考块,将参考块中的像素点的像素值作为当前编码块中像素点的像素值的预测信息或者预测值,获取各个块的运动信息。运动信息通常包含参考块所在图像的指示信息即参考帧信息,和参考块到当前像素块的位移信息即运动矢量(MotionVector,MV)。
另外在视频编解码过程中,压缩码流中的相当一部分比例用于传输运动信息,在低码率情况下,尤其对于高清视频,用于表示运动信息所耗费的比特往往超过总码流的50%,对运动信息进行高效编码是提升编码效率的重要手段。在视频中,临近位置的块可能属于同一物体或同一运动场景,具有相似的运动,因此利用临近块空域、时域上运动矢量的相关性,可以减少运动信息所消耗的比特。
在编解码标准中,通常使用临近位置的运动信息来预测当前位置的运动信息。将运动信息中的MV进行差分编码,分为MV预测值和运动矢量差值(Motion VectorDifference,MVD)两部分。MV预测值不编码、或者不直接编码,由时域和空域临近运动矢量导出;MVD信息编码并在码流中传输。在解码过程中,提取码流中的MVD,推导出MV预测值,将MV预测值加上MVD得到最终MV。导出的MV预测值越接近最终MV,需要传递的MVD越小。因此,MV预测值导出方法的优化可以有效降低运动信息所耗费比特,对于高效编码至关重要。
另外,在本申请中,在进行帧间预测时,还可以采用可变运动矢量精度,下面对可变运动矢量精度的含义进行简单介绍。
在实际场景中,物体运动的距离不一定是像素尺寸的整数倍,如果仅使用整数像素精度的运动预测/补偿会出现匹配不准确的情况,导致运动补偿残差较大。因此,为了提高运动预测/补偿的精度,引入了亚像素精度的运动预测/补偿,因为亚像素位置的像素本身不存在,通过对参考图像插值来实现。视频和音频有损压缩标准MPEG1使用了半(1/2)像素精度的运动预测/补偿,其半像素位置的参考像素由双线性差值方法产生。视频编解码器标准H.264则使用了1/4像素精度的运动预测/补偿。随着插值精度的提升,运动预测/补偿的效率会有一定程度的提升,但随着需要传送的MV的精度提升,所消耗的比特数也相应增加。例如1/8像素精度相比1/4像素精度,编码效率在中低码率段并未有明显提升。由于运动和纹理具有多样性,运动预测精度提升对于不同块有不同的影响,例如,对于纹理比较平坦的区域,运动预测精度提升带来的编码效果有限,而对于纹理比较复杂的区域,运动预测精度提升,带来的编码效果的提升比较有限。
图3是本申请实施例的帧间预测方法的示意性流程图。图3所示的方法发生在解码端,图3所示的方法可以由视频解码装置、视频解码器、视频编解码系统以及其它具有视频解码功能的设备来执行。
图3所示的方法包括步骤101至步骤104,下面分别对步骤101至步骤104进行详细的介绍。
101、解析码流,获取当前图像块的目标相邻图像块所在的位置。
上述目标相邻图像块所在的位置可以是编码端在对图像进行编码时确定的,编码端确定目标相邻图像块的具体过程包括:
首先,编码端根据当前图像块的多个相邻图像块的运动矢量得到当前图像块的多个运动矢量预测值;
其次,编码端从多个运动矢量预测值中确定出最优运动矢量预测值;
最后,编码端将该最优运动矢量预测值对应的相邻图像块确定为目标相邻图像块。
在编码端确定了目标相邻图像块之后,就可以将该目标相邻图像块所在的位置写入到码流中,然后将码流传输到解码端。
可选地,上述目标相邻块既可以是与当前图像块在时域上相邻的图像块,也可以是与当前图像块在空域上相邻的图像块。
可选地,作为一个实施例,解析码流,获取当前图像块的目标相邻图像块所在的位置,具体包括:解析码流,获取目标索引值,该目标索引值用于指示所述目标相邻图像块所在的位置。
应理解,上述每个相邻图像块所在的位置可以对应一个索引值,这样,编码端在将相邻图像块的位置写入到码流时具体可以将该相邻图像块所在的位置对应的索引值写入到码流中,这样,解码端可以通过解析码流中的索引值来获取相应的相邻图像块所在的位置。
为了更好地理解上述目标索引值,这里先从编码端的角度对确定目标索引值的过程进行描述。
编码端确定目标索引值的过程具体包括:
(1)、根据表1中索引从小到大的顺序,确定当前图像块的各个位置的相邻图像块是否存在运动矢量。
表1
索引 | 相邻图像块相对于待预测图像块的位置 | 指定运动矢量精度 |
0 | 左 | 1/4 |
1 | 上 | 1/2 |
2 | 右上 | 1 |
3 | 左上 | 2 |
4 | 时域上与待预测图像块处于相同位置 | 4 |
5 | 左下 | 8 |
上述表1示出了不同相邻图像块所在的位置对应的运动矢量精度,其中,指定运动矢量精度的单位为像素,例如,指定运动矢量精度为1/2具体是指指定运动矢量精度为1/2像素。
例如,图4示出了表1中的待预测图像块的相邻图像块的具体分布位置,其中,索引值0、1、2、3和5对应的相邻图像块为空域上与待预测图像块相邻的相邻图像块,索引4对应的相邻图像块为时域上与待预测图像块处于相同位置的相邻图像块,具体地,索引4对应的相邻图像块可以是与待预测图像块在时域上相邻的已解码的图像块。
(2)、若相邻图像块存在运动矢量,那么就将该相邻图像块的运动矢量的精度调整到该相邻图像块对应的运动矢量精度,并将调整后的运动矢量作为当前图像块的运动矢量预测值。
(3)、若相邻图像块不存在运动矢量,那么就继续寻找存在运动矢量的相邻图像块(可用相邻图像块),然后将该可用相邻图像块的运动矢量精度调整到目标运动矢量精度,并将调整后的运动矢量作为当前图像块的运动矢量预测值。
应理解,经过上述过程(2)和(3)就可以根据相邻图像块得到当前图像块的多个运动矢量预测值。
(4)、根据率失真从多个运动矢量预测值中得到最优运动矢量预测值。
(5)、确定最优运动矢量预测值对应的相邻图像块的索引值,并将该索引值确定为目标索引值。
(6)、将目标索引值写入到编码码流。
例如,最优运动矢量预测值是根据索引值为3的相邻图像块的运动矢量得到的,那么索引值3就是目标索引值,编码端会将索引值3写入到编码码流中,使得解码端在解析编码码流之后也能够获取索引值3对应的相邻图像块,并根据索引值3对应的相邻图像块的运动矢量得到目标运动矢量预测值。
通过上述(1)至(6)所示的过程就可以得到包含目标索引值信息的编码码流。应理解,上述(1)至(6)所示的过程只是确定目标索引值的一个具体实例,编码端还可以采用其它任意的方式来确定目标运动矢量预测值,并将目标运动矢量预测值对应的相邻图像块所对应的索引值确定为目标索引值,本申请对此不做限定。
102、获取预设的相邻图像块的位置与运动矢量精度的对应关系。
在上述对应关系中,至少两个相邻图像块的位置对应的运动矢量精度不同,另外,该对应关系用于指示采用不同位置的相邻图像块对当前图像块进行运动矢量预测时当前图像块的运动矢量预测值需要达到的精度。
应理解,上述相邻图像块的位置可以是指相邻图像块相对于待预测图像块的位置,如图4所示,相邻图像块位于待预测图像块的左面和上面。其中,每个位置可以对应一个运动矢量精度,图4中的每个相邻图像块所在的位置对应的运动矢量精度可以如表1所示。具体地,例如,某相邻图像块位于图4中的索引3所示的位置,那么根据表1可以得知该位置对应的运动矢量可以是索引3对应的运动矢量精度,也就是整像素精度。
应理解,上述相邻图像块的位置与运动矢量精度的对应关系不限于文字形式,以及本文中的附图或者表格所示的形式,只要是能够表示相邻图像块的位置与运动矢量精度的对应关系的形式都在本申请的保护范围内。
可选地,相邻图像块的位置与运动矢量精度的对应关系可以如表2所示,例如,在表2中,当采用当前图像块左侧的相邻图像块对当前图像块进行运动矢量预测时,当前图像块的运动矢量精度需要达到的精度是1/4像素。
表2
相邻图像块相对于当前图像块的位置 | 运动矢量精度 |
左 | 1/4 |
上 | 1/2 |
右上 | 1 |
左上 | 2 |
时域上与当前图像块处于相同位置 | 4 |
左下 | 8 |
可选地,上述预设的相邻图像块的位置与运动矢量精度的对应关系可以预先写入到编码端和解码端。
这样当解码端通过码流解析到某个相邻图像块的位置后,就可以根据相邻图像块的位置与运动矢量精度的对应关系确定相邻图像块对应的运动矢量精度。
可选地,在表2中,每个相邻图像块所在的位置还可以对应一个索引值,此时,索引值、相邻图像块所在的位置以及运动矢量精度的对应关系可以如表3所示。表3中示出了每个相邻块的位置对应的索引,这样在编码时可以直接将目标相邻块对应的目标索引值写入到码流中,当解码端解码时,可以通过解码得到的目标索引值来确定目标相邻块的位置,进而再根据相邻块的位置与运动矢量精度的对应关系再确定出目标相邻图像块所在的位置对应的运动矢量精度。或者,解码端还可以通过目标索引值来直接确定目标相邻块所在的位置以及目标相邻图像块所在的位置对应的运动矢量精度。
表3
索引 | 相邻图像块相对于当前图像块的位置 | 运动矢量精度 |
0 | 左 | 1/4 |
1 | 上 | 1/2 |
2 | 右上 | 1 |
3 | 左上 | 2 |
4 | 时域上与当前图像块处于相同位置 | 4 |
5 | 左下 | 8 |
可选地,在确定表3所示的各个相邻图像块的排列顺序(确定对应的索引值的大小)时,还可以参照帧间预测的历史统计数据,将出现频率较高的运动矢量精度排列在前面(对应的索引值较小),而将出现频率较低的运动矢量精度排列在后面(对应的索引值较大),这样编码端在对索引值进行编码时对较小的索引值进行编码的次数比较多,而对较大的索引值进行编码的次数较少,如果编码端采用变长编码的话,在整个编码过程中节省一定的码流。
应理解,上述表2和表3只是相邻图像块所在的位置与运动矢量精度的对应关系的一种具体表现形式,表2和表3所示的形式并不对相邻图像块的位置与运动矢量精度的对应关系造成限定,只要是能够体现相邻图像块的位置与运动矢量精度的对应关系的形式都在本申请的保护范围内。
可选地,作为一个实施例,在上述对应关系中,第i相邻图像块所在的位置对应第j运动矢量精度,第j运动矢量精度是第i相邻图像块所在的位置在预设统计时期内进行图像运动矢量预测时使用频率最高(也可以是使用比例最大)的运动矢量精度,第i相邻图像块为待预测图像块对应的多个相邻图像块中的任意一个。
应理解,在进行运动矢量预测时,可以采用待预测图像块的多个相邻图像块对待预测图像块进行运动矢量预测,而上述第i相邻图像块就是这个多个相邻图像块中的任意一个相邻图像块。
本申请中,将一段预设的统计时间内进行图像运动矢量预测时使用频率最高的运动矢量精度作为相邻图像块所在的位置对应的运动矢量精度,能够较为合理地确定每个相邻图像块所在的位置对应的运动矢量精度。
上述待预测图像块可以是指在进行运动矢量预测时,任意一个需要进行运动矢量预测的图像块,进一步地,上述步骤101中的当前图像块可以是当前需要进行运动矢量预测的待预测图像块。
而待预测图像块对应的多个相邻图像块可以是与该待预测图像块相邻的一些图像块,或者,待预测图像块对应的多个相邻图像块可以是在对待预测图像块进行运动矢量预测时用到的一些图像块。
另外,如图4所示,上述第i相邻图像块可以是图4中索引值为0-5的任意一个相邻图像块。
进一步地,上述第i相邻图像块还可以是表3中索引值为0-5的任意一个相邻图像块,当上述第i相邻图像块是表3中索引值为0的相邻图像块时,上述第i相邻图像块对应的第j运动矢量精度为1/4像素。
可选地,上述预设统计时期(或者预设统计时间)还可以是指完成对一定数量的视频图像(例如,10万帧视频图像)进行运动矢量预测所需要的时间。
可选地,上述预设统计时期还可以是指一个固定时间段,例如,1个月,3个月等等。
可选地,上述预设统计时期还可以是指达到预设统计次数(例如,10万次)所需要的时间。
应理解,上述预设统计时期可以是在对当前图像块进行运动矢量预测之前,对待预测图像块进行运动矢量预测时的一段时间。
应理解,在采用不同位置的相邻图像块对待预测图像块进行运动矢量预测时,可以使用不同的运动矢量精度,例如,当采用待预测图像块的左侧的相邻图像块进行运动矢量预测时,可以使用1/8像素、1/4像素、整像素、2像素、4像素和8像素等等。
通过对待预测图像块进行运动矢量预测时各个相邻图像块使用的运动矢量精度可以发现,采用任意一个相邻图像块对待预测图像块进行运动矢量预测时,使用不同像素精度进行运动矢量预测的次数(或者频率)不同。
例如,采用左侧的相邻块对待预测图像块一共进行了100次运动矢量预测,其中,采用1/4像素的次数为40次,采用1/2像素的次数为30次,采用整像素的次数为5次,采用2像素的次数为15次,采用4像素的次数为5次,采用8像素的次数为5次。因此,在采用左侧的相邻块对待预测图像块进行运动矢量预测时使用1/4像素的频率(40%)最高,这说明采用左侧的相邻块对待预测图像块进行运动矢量预测时经常采用1/4像素,在该精度下进行运动矢量预测的效果可能会比较好。因此,可以根据历史统计数据将每个相邻块进行运动矢量预测时采用频率最高的运动矢量精度确定为该相邻图像块所在的位置对应的运动矢量精度。
根据对待预测图像块进行运动矢量预测的历史统计数据可以得到采用不同位置的相邻图像块对待预测图像块进行运动矢量预测时使用各种运动矢量精度的频率(也可以称为比例),如图5所示,采用不同位置的相邻块对待预测图像块进行运动矢量预测时使用的频率最高的运动矢量精度如下:
左相邻图像块(简称左块)使用频率最高的运动矢量精度为1/4像素(频率为40%);
上相邻图像块(简称上块)使用频率最高的运动矢量精度为1/2像素(频率为40%);
右上相邻图像块(简称右上块)使用频率最高的运动矢量精度为整像素(频率为45%);
左上相邻图像块(简称左上块)使用频率最高的运动矢量精度为2像素(频率为40%);
时域相邻图像块(简称时域块)使用频率最高的运动矢量精度为4像素(频率为50%);
以及左下相邻图像块(简称左下块)使用频率最高的运动矢量精度为8像素(频率为40%)。
对于每个相邻图像块来说,可以将在预设统计时期内进行图像运动矢量预测时使用频率最高的运动矢量精度确定为该相邻图像块(或者该相邻图像块所在的位置)对应的运动矢量精度。例如,根据右上块进行运动矢量预测时使用频率最大的运动矢量精度为整像素(使用整像素精度的频率为45%,大于使用其它像素精度的频率),那么就可以把整像素确定为该右上块对应的运动矢量精度。根据图5中各个相邻图像块在运动矢量预测时使用各种运动矢量精度的比例可以得到各个相邻块对应的运动矢量精度,具体如表4所示。
表4
当前图像块的相邻图像块 | 运动矢量精度 |
左相邻图像块 | 1/4 |
上相邻图像块 | 1/2 |
右上相邻图像块 | 1 |
左上相邻图像块 | 2 |
时域相邻图像块 | 4 |
左下相邻图像块 | 8 |
应理解,上述图5只是采用不同位置的相邻块对待预测图像块进行运动矢量预测时使用不同运动矢量精度的频率的一种具体实现形式,本申请实施例不限于此,采用不同位置的相邻图像块对待预测图像块进行运动矢量预测时使用不同运动矢量精度的频率还可以是其它数值。
103、根据目标相邻图像块所在的位置以及对应关系,确定目标相邻图像块对应的目标运动矢量精度。
例如,如表3所示,当目标相邻图像块为位于当前图像块的上方位置的相邻图像块时,目标相邻图像块对应的指定运动矢量精度为1/2像素。
104、根据目标相邻图像块所在的位置以及目标运动矢量精度,确定当前图像块的运动矢量预测值。
本申请中,当获取了目标相邻图像块所在的位置之后,可以直接根据相邻图像块的位置与运动矢量精度的对应关系来确定目标相邻图像块对应的目标运动矢量精度,进而能够根据目标相邻图像块所在的位置以及目标运动矢量精度进行运动矢量预测,能够减小帧间预测的复杂度。
可选地,在根据目标相邻图像块所在的位置以及目标运动矢量精度,确定当前图像块的运动矢量预测值时可以采用多种方式。具体地,在确定当前图像块的运动矢量预测值时可以根据目标相邻图像块是否存在运动矢量能够将确定当前图像块的运动矢量预测值的情况分为两大类。
下面对目标相邻图像块存在运动矢量以及不存在运动矢量这两类情况分别进行详细的描述。
第一类情况:目标相邻图像块存在运动矢量。
当目标相邻图像块存在运动矢量时,具体可以采用以下两种方式来确定当前图像块的运动矢量预测值。
第一种方式:对运动矢量的精度进行调整来得到当前图像块的运动矢量预测值。
具体地,通过对运动矢量的精度进行调整来获取当前图像块的运动矢量预测值的过程包括:
(1)、按照目标运动矢量精度对目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,调整后的运动矢量的精度为目标运动矢量精度;
(2)、将调整后的运动矢量确定为当前图像块的运动矢量预测值。
例如,目标相邻图像块对应存在运动矢量,并且该目标相邻图像块对应的运动矢量精度为1/2像素,那么,直接将该目标相邻图像块的运动矢量的精度调整到1/2像素精度,并将缩放后的运动矢量作为当前图像块的运动矢量预测值。
另外,在第一种方式中,在对目标相邻图像块的运动矢量进行调整之前,还可以先判断目标相邻图像块的运动矢量是否为目标运动矢量精度,如果是目标运动矢量精度的话就不必再进行精度调整就可以得到当前图像块的运动矢量预测值,而如果不是目标运动矢量精度的话就需要对目标相邻图像块的运动矢量的精度进行调整才能得到当前图像块的运动矢量预测值,具体地过程如下:
(3)、在目标相邻图像块的运动矢量的精度是目标运动矢量精度的情况下,将目标相邻图像块的运动矢量确定为当前图像块的运动矢量预测值;
(4)、在目标相邻图像块的运动矢量的精度不是目标运动矢量精度的情况下,按照目标运动矢量精度对目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,调整后的运动矢量的精度为目标运动矢量精度;将调整后的运动矢量确定为当前图像块的运动矢量预测值。
在根据目标相邻块的运动矢量获取当前图像块的运动矢量预测值时,通过提前判断目标相邻图像块的精度是否为目标运动矢量精度,能够在目标相邻图像块的精度为目标运动矢量精度的情况下,直接将目标相邻块的运动矢量确定为当前图像块的运动矢量预测值,从而节省了精度调整的过程。
在本申请中,采用第一种方式能够快速的确定当前图像块的运动矢量预测值,能够简化帧间预测的复杂度。
第二种方式:采用运动搜索的方式得到当前图像块的运动矢量预测值。
采用运动搜索的方式得到当前图像块运动矢量预测值的具体过程包括:
(1)、将目标相邻块的运动矢量指向的位置确定为起始搜索点;
(2)、从始搜索点开始搜索,得到至少一个运动矢量;
(3)、从上述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
(4)、按照目标运动矢量精度对目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,调整后的目标运动矢量的精度为目标运动矢量精度;
(5)、将调整后的目标运动矢量确定为当前图像块的运动矢量预测值。
应理解,上述目标运动矢量与目标相邻块的运动矢量并不相同,目标运动矢量可以认为是从至少一个运动矢量中选择出来的最优运动矢量,而目标相邻块的运动矢量是目标相邻块本身的运动矢量(前提是目标相邻图像块存在运动矢量)。
在第二种方式中,在得到目标运动矢量之后,可以先判断目标运动矢量的精度是否为目标运动矢量精度,如果目标运动矢量的精度是目标运动矢量精度的话就可以直接将目标运动矢量确定为当前图像块的运动矢量预测值,而如果目标运动矢量的精度不是目标运动矢量精度的话,则需要将目标运动矢量的精度调整到目标运动矢量精度,并将调整后的目标运动矢量确定为当前图像块的运动矢量预测值。
在本申请中,采用第二种方式可以更准确地确定当前图像块的运动矢量预测值,提高了帧间预测的准确性。
可选地,在采用上述第一种方式和第二种方式进行运动矢量预测之前,图3所示的方法还包括:确定目标运动矢量精度是否为第一预设精度;在目标运动矢量精度不是第一预设精度的情况下,采用第一种方式获取当前图像块的运动矢量预测值;在目标运动矢量精度是第一预设精度的情况下,采用第二种方式获取当前图像块的运动矢量预测值。
上述第一预设精度可以是一个运动矢量精度,例如,上述第一预设精度为1/4像素。
上述第一预设精度也可以是包含多个运动矢量精度,例如,上述第一预设精度为1/4像素和1/2像素。
上述第一预设精度还可以是一个精度范围,上述第一预设精度为小于或者等于1/2像素的精度。
例如,上述第一预设精度为1/4像素,那么,只有当目标运动矢量精度也为1/4像素时才采用运动搜索的方式来获取当前图像块的运动矢量预测值,而当目标运动矢量精度为1/4像素之外的其它精度时采用对运动矢量的精度进行调整的方式来获取当前图像块的运动矢量预测值。
第二类情况:目标相邻图像块不存在运动矢量。
当目标相邻图像块不存在运动矢量时,可以从多个相邻图像块中获取存在运动矢量的其它相邻图像块,然后再根据其它相邻图像块来确定当前图像块的运动矢量预测值。
具体地,在根据其它相邻图像块来确定当前图像块的运动矢量预测值时,既可以采用对其它相邻图像块的运动矢量的精度进行调整的方式得到当前图像块的运动矢量预测值,也可以采用运动搜索的方式得到当前图像块的运动矢量预测值。
下面对这两种方式进行详细的介绍。
第三种方式:对其它相邻图像块的运动矢量的精度进行调整,以得到当前图像块的运动矢量预测值。
具体地,当目标相邻图像块不存在运动矢量时,通过对其它相邻图像块的运动矢量的精度进行调整得到当前图像块的运动矢量预测值,包括:
(1)、按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块。
其中,上述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块,所述多个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从小到大或者从大到小的顺序对所述多个相邻图像块进行排列得到的。
(2)、按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度。
(3)、将调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,在对第一相邻图像块的运动矢量的精度进行调整之前,还可以先判断第一相邻图像块的运动矢量是否为目标运动矢量精度,如果第一相邻图像块的运动矢量的精度是目标运动矢量精度的话就可以直接将第一相邻图像块的运动矢量确定为当前图像块的运动矢量预测值,而如果第一相邻图像块的运动矢量的精度不是目标运动矢量精度的话,则需要将第一相邻图像块的运动矢量的精度调整到目标运动矢量精度,并将调整后的第一相邻图像块的运动矢量确定为当前图像块的运动矢量预测值。
在第三种方式中,当目标相邻图像块不存在运动矢量时,按照目标运动矢量精度对获取到的第一相邻图像块的运动矢量进行调整以得到当前图像块的运动矢量预测值,能够在目标相邻图像块不存在运动矢量时快速确定当前图像块的运动矢量预测值,简化了帧间预测的复杂度。
例如,如表5所示,当前图像块包含6个相邻图像块,这6个相邻图像块是按照对应的运动矢量精度从小到大的顺序进行排列的,假设目标相邻图像块为右上相邻图像块,该右上相邻图像块不存在运动矢量,那么,可以按照表5中的索引从小到大的顺序从中选择索引为0的左相邻图像块作为第一相邻图像块。
表5
索引 | 当前图像块的相邻图像块 | 运动矢量精度 |
0 | 左相邻图像块 | 1/4 |
1 | 上相邻图像块 | 1/2 |
2 | 右上相邻图像块 | 1 |
3 | 左上相邻图像块 | 2 |
4 | 时域相邻图像块 | 4 |
5 | 左下相邻图像块 | 8 |
例如,如表5所示,目标相邻图像块对应的索引值为3,该目标相邻图像块对应的指定运动矢量精度为1/4像素,假设目标相邻图像块不存在运动矢量,此时选择表5中索引值为0的相邻块作为当前图像块的第一相邻图像块,接下来,直接将该第一相邻图像块的运动矢量缩放至1/4像素精度就得到了当前图像块的运动矢量预测值。
可选地,可以根据下面的公式(1)将上述第一相邻图像块的运动矢量缩放至指定运动矢量精度,以得到目标相邻图像块的运动矢量,进而得到当前图像块的运动矢量预测值。
MV_not_avail=((MV_available>>idx)<<idx) (1)
在公式(1)中,MV_available为第一相邻图像块的运动矢量,MV_not_avail为目标相邻图像块的运动矢量,idx既是目标相邻图像块的索引值,也是移位的位数,缩放后的运动矢量也可以称为目标相邻图像块的运动矢量,接下来,可以将该目标相邻图像块的运动矢量确定为当前图像块的运动矢量预测值。
第四种方式:采用运动搜索的方式得到当前图像块的运动矢量预测值。
具体地,当目标相邻图像块不存在运动矢量时,采用运动搜索的方式确定当前图像块运动矢量预测值的具体过程包括:
(1)、从当前图像块的多个相邻图像块中获取多个第二相邻图像块,其中,第二相邻图像块为当前图像块的相邻图像块中存在运动矢量的图像块;
(2)、从多个第二相邻图像块的运动矢量指向的多个位置中选择一个位置作为搜索起始点;
(3)、从起始搜索点开始搜索,得到至少一个运动矢量;
(4)、从至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
(5)、按照目标运动矢量精度对目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,调整后的目标运动矢量的精度为目标运动矢量精度;
(6)、将调整后的目标运动矢量确定为当前图像块的运动矢量预测值。
在上述过程(2)中,可以采用模板匹配的方式,从多个位置中选择SAD、SATD或者MSE最小的位置作为搜索起始点。
在第四种方式中,在得到目标运动矢量之后,可以先判断目标运动矢量的精度是否为目标运动矢量精度,如果目标运动矢量的精度是目标运动矢量精度的话就可以直接将目标运动矢量确定为当前图像块的运动矢量预测值,而如果目标运动矢量的精度不是目标运动矢量精度的话,则需要将目标运动矢量的精度调整到目标运动矢量精度,并将调整后的目标运动矢量确定为当前图像块的运动矢量预测值。
本申请中,当目标相邻图像块不存在运动矢量时,以运动搜索的方式确定当前图像块的运动矢量预测值能够提高帧间预测的准确性。
例如,如表6所示,目标相邻块是表6中索引值为2的图像块,假设该图像块不存在运动矢量,而表6中的其它的图像块均存在运动矢量,那么可以从表6中剩下的其它图像块中选择索引值为0、1和3的图像块作为第二相邻图像块,然后确定这些第二相邻图像块的运动矢量所指向的多个位置,接下来从这多个位置中选择出来一个位置作为搜索起始点,最后就可以从该搜索起始点开始进行搜索,将搜索得到的最优运动矢量作为当前图像块的运动矢量预测值。
表6
可选地,在采用上述第三种方式和第四种方式进行运动矢量预测之前,图3所示的方法还包括:确定目标运动矢量精度是否为第二预设精度;在目标运动矢量精度不是第二预设精度的情况下,采用第三种方式获取当前图像块的运动矢量预测值;在目标运动矢量精度是第二预设精度的情况下,采用第四种方式获取当前图像块的运动矢量预测值。
上述第二预设精度可以是一个运动矢量精度,例如,上述第二预设精度为1/8像素。
上述第二预设精度也可以是包含多个运动矢量精度,例如,上述第二预设精度为1/8像素、1/4像素和1/2像素。
上述第二预设精度还可以是一个精度范围,上述第二预设精度为小于或者等于整像素的精度。
例如,上述第二预设精度为小于或者等于整像素,那么,只要当目标运动矢量精度小于或者等于整像素,那么就采用运动搜索的方式来获取当前图像块的运动矢量预测值,而当目标运动矢量精度大于或者等于整像素时,则采用对运动矢量的精度进行调整的方式来获取当前图像块的运动矢量预测值。
应理解,上述第一预设精度和第二预设精度既可以是相同的精度,也可以是不同的精度。
例如,上述第二预设精度为1/4,那么当目标相邻图像块对应的运动矢量精度为1/4时就采用上述第四种方式中的运动搜索方式来确定当前图像块的运动矢量预测值,而当目标相邻图像块对应的指定运动矢量精度为1/2(可以是1/4像素精度之外的其它精度)时就采用上述第三种方式中的对运动矢量的精度进行调整的方式来确定当前图像块的运动矢量预测值。
本申请中,通过在特定精度下采用运动搜索的方式得到当前图像块的运动矢量预测值,能够更灵活地根据不同的运动矢量精度要求来灵活选择不同的方式确定当前图像块的运动矢量预测值。
可选地,图3所示的方法还包括:解析码流,获取第一指示信息,所述第一指示信息用于指示所述第一预设精度;所述确定所述目标运动矢量精度是否为第一预设精度,包括:根据所述第一指示信息确定所述目标运动矢量精度是否为第一预设精度。
可选地,图3所示的方法还包括:解析码流,获取第二指示信息,所述第二指示信息用于指示所述第二预设精度;所述确定所述目标运动矢量精度是否为第二预设精度,包括:根据所述第二指示信息确定所述目标运动矢量精度是否为第二预设精度。
通过上述第一指示信息和第二指示信息能够灵活指示上述第一预设精度和第二预设精度。
可选地,上述第一指示信息可以是一个索引值,该索引值与第一预设精度有一定的对应关系,解码端在可以通过解析码流得到该索引值,然后根据该索引值获取第一预设精度,接下来就可以确定目标运动矢量精度是否为第一预设精度。
索引值与第一预设精度的对应关系可以如表7所示,如表7所示,索引值0-5分别对应不同的运动矢量精度。
表7
索引 | 第一预设精度 |
0 | 1/4 |
1 | 1/2 |
2 | 1 |
3 | 2 |
4 | 4 |
5 | 8 |
另外,当第一预设精度为一个取值范围时,索引值与第一预设精度的对应关系可以如表8所示,索引值0-5分别对应一个运动矢量精度取值范围。
表8
索引 | 第一预设精度 |
0 | 小于或者等于1/4 |
1 | 小于或者等于1/2 |
2 | 小于或者等于1 |
3 | 小于或者等于2 |
4 | 小于或者等于4 |
5 | 小于或者等于8 |
与上述第一指示信息类似,第二指示信息也可以是一个索引值,该索引值与第二预设精度有一定的对应关系,解码端在可以通过解析码流得到该索引值,然后根据该索引值获取第二预设精度,接下来就可以确定目标运动矢量精度是否为第二预设精度。其中,索引值与第二预设精度的对应关系也可以如表7或者表8所示。
可选地,上述第一预设精度和第二预设精度还可以承载在当前图像块的序列参数集、图像参数集或者条带头中的任意一种。
图6是本申请实施例的帧间预测方法的流程图。图6所示的方法发生在解码端,图6所示的方法可以由视频解码装置、视频解码器、视频编解码系统以及其它具有视频解码功能的设备来执行。
图6所示的方法具体包括步骤201至步骤216,其中,步骤203至步骤208为目标相邻图像块存在运功矢量的情况下得到当前图像块的运动矢量预测值的过程,步骤209至步骤216为目标相邻图像块不存在运动矢量的情况下得到当前图像块的运动矢量预测值的过程,下面分别对步骤201至步骤216进行详细的介绍。
201、获取目标相邻图像块。
202、确定目标相邻图像块所在的位置是否存在运动矢量。
当目标相邻图像块所在的位置是存在运动矢量存在运动矢量的情况下执行步骤203,当目标相邻图像块所在的位置是不存在运动矢量存在运动矢量的情况下执行步骤209。
203、确定目标运动矢量精度是否为第一预设精度。
当目标运动矢量精度是第一预设精度时执行步骤204,当目标运动矢量精度不是第一预设精度时执行步骤205至步骤207。
可选地,当目标相邻图像块存在运动矢量时,还可以不经过步骤203的判断,而是直接执行步骤204,或者直接执行步骤205至207。
204、按照目标运动矢量精度对目标相邻图像块的运动矢量的精度进行调整,以得到当前图像块的运动矢量预测值。
在步骤204中,可以先将目标相邻图像块的运动矢量的精度进行调整到目标运动矢量精度,然后将调整后的运动矢量直接确定为当前图像块的运动矢量预测值。而当目标相邻图像块的运动矢量的精度就是目标运动矢量精度时,也可以不对目标相邻图像块的运动矢量的精度进行调整,而是直接将目标相邻图像块的运动矢量确定为当前图像块的运动矢量预测值。
205、将目标相邻块的运动矢量指向的位置确定为起始搜索点。
206、从起始搜索点开始搜索,得到至少一个运动矢量。
207、从至少一个运动矢量中选择一个运动矢量作为目标运动矢量。
208、按照目标运动矢量精度对目标运动矢量的精度进行调整,以得到当前图像块的运动矢量预测值。
应理解,步骤208中得到当前图像块的运动矢量预测值的过程与步骤204相似,此处不再详细描述。
209、确定目标运动矢量精度是否为第二预设精度。
这里的第二预设精度和第一预设精度均可以是预先设置的特定精度,第一预设精度与第二预设精度既可以相同也可以不同。
210、按照当前图像块的多个相邻图像块的预设排列顺序从多个相邻图像块中获取第一相邻图像块。
应理解,上述第一相邻图像块为多个相邻图像块中存在运动矢量的图像块。另外,上述多个相邻图像块的预设排列顺序是按照多个相邻图像块的位置对应的运动矢量精度从小到大的顺序对多个相邻图像块进行排列得到的。
211、按照目标运动矢量精度对第一相邻图像块的运动矢量的精度进行调整,以得到当前图像块的运动矢量预测值。
212、从当前图像块的多个相邻图像块中获取多个第二相邻图像块,其中,第二相邻图像块为多个相邻图像块中存在运动矢量的图像块。
213、从多个第二相邻图像块的运动矢量指向的多个位置选择一个位置作为搜索起始点。
214、从起始搜索点开始搜索,得到至少一个运动矢量。
215、从至少一个运动矢量中选择一个运动矢量作为目标运动矢量。
216、按照目标运动矢量精度对目标运动矢量的精度进行调整,以得到当前图像块的运动矢量预测值。
在上文的各个步骤和过程中,在从至少一个运动矢量中选择一个运动矢量作为目标运动矢量时,具体可以采用模板匹配的方式,从述至少一个运动矢量中选择SAD、SATD或者MSE最小的运动矢量作为目标运动矢量。
图6所示的流程中的各个步骤的具体实现过程可以参见上文中的相关描述,为了简洁,这里不再重复描述。
为了更好地理解本申请实施例的帧间预测方法,下面结合具体的实例对本申请实施例的帧间预测方法进行详细的介绍。
应理解,下面介绍的实例一和实例二是为了帮助本领域的技术人员理解本申请实施例的帧间预测方法,而并非要将本申请实施例的帧间预测方法限定到实例一和实例二所示的具体场景和具体执行步骤。本领域的技术人员可以根据实例一和实例二进行各种等价的修改或者变化,这些修改或者变化也落入本申请实施例的帧间预测方法的范围内。
实例一:根据相邻图像块是否可用分别采用不同的方法来确定运动矢量预测值。
应理解,当相邻图像块存在运动矢量时相邻图像块可用,当相邻图像块不存在运动矢量时相邻图像块不可用。
在实例一中,要先确定当前图像块的相邻图像块是否可用,然后分别采取不同的方式确定运动矢量预测值,具体过程如图7所示,图7所示的方法包括步骤301至步骤311。其中,步骤301至步骤307描述的是编码端的过程,步骤308至步骤311描述的是解码端的过程,下面分别从编码端和解码端的角度对帧间预测进行介绍。
编码端:
对于当前图像块,编码端对当前图像块进行帧间预测的主要过程包括步骤301至步骤307,下面对步骤301至步骤307进行详细的介绍。
301、查找当前图像块的相邻图像块。
在查找当前图像块的相邻图像块时,具体可以根据表9,按照索引值从小到大的顺序来查找当前图像块的相邻图像块。
表9
索引 | 相邻图像块相对于当前图像块的位置 | 运动矢量精度 |
0 | 左 | 1/4 |
1 | 上 | 1/2 |
2 | 右上 | 1 |
3 | 左上 | 2 |
4 | 时域上与当前图像块处于相同位置 | 4 |
5 | 左下 | 8 |
表9示出了当前图像块的相邻图像块,运动矢量精度以及索引这三者的映射关系,这三者是一一对应的关系,也就是说一个索引就会对应一个位置的相邻图像块,一个位置的相邻图像块就会对应一个运动矢量精度,这里的运动矢量精度是指在根据相应的相邻图像块来计算当前图像块的运动矢量预测值时相邻图像块的运动矢量所要达到的运动矢量精度。表9中所示的运动矢量精度具体可以是指像素精度,例如,表9中的1/4就表示运动矢量精度为1/4像素精度,2表示运动矢量精度为2像素精度。
表9中的索引、相邻图像块以及指定运动矢量精度的映射关系可以是预先设置在编码端和解码端,也可以是编码端自身确定的,并通过序列参数集(Sequence ParameterSets,SPS)、图像参数集(Picture Parameter Sets,PPS)以及条带头传送到解码端。
302、确定当前图像块的相邻图像块是否可用。
在经过上述步骤302之后,如果确定当前相邻图像块可用就执行步骤303,如果确定当前相邻图像块不可用就执行步骤304。
303、将相邻图像块的运动矢量的精度调整到该相邻图像块对应的运动矢量精度,得到当前图像块的运动矢量预测值(MVP)。
例如,索引值为0的相邻图像块可用,并且该相邻图像块对应的运动矢量精度为整像素精度,那么,可以将该相邻图像块的运动矢量的精度调整到1/4像素精度,并将调整后得到的运动矢量作为当前图像块的运动矢量预测值。
304、将默认运动矢量作为当前图像块的运动矢量预测值。
步骤304中的默认运动矢量可以是编码端按照预设的规则生成的运动矢量,具体地,可以采用以下两种方法来生成默认运动矢量。
第一种方法:采用DMVD方法得到默认运动矢量。
采用DMVD方法得到默认运动矢量得到默认运动矢量,具体包括:
(1)、获取不可用的相邻图像块对应的指定运动矢量精度。
例如,索引为1的相邻图像块不可用,那么,根据表9获取不可用的相邻图像块的运动矢量精度为1/2像素精度。
(2)、按照解码侧运动矢量导出(Decoder side Motion Vector Derivation,DMVD)方法推导得到默认运动矢量。
具体地,可以将DMVD方法推导得到的运动矢量作为默认运动矢量,可以用公式(2)表示。
Default_MV=MV_DMVD(idx) (2)
在公式(2)中,MV_DMVD(idx)是根据DMVD方法推导得到的运动矢量,Default_MV是默认运动矢量,在公式(2)中是将DMVD方法推到得到的运动矢量作为默认运动矢量。
其中,利用DMVD方法推导得到运动矢量具体过程包括:
首先,将不可用相邻图像块对应的运动矢量精度确定为目标精度;
其次,根据目标精度,得到搜索的起始点MV列表(即候选块的运动矢量,可以理解为相邻图像块的运动矢量);
再次,根据目标精度,使用模板匹配从MV列表中选取最优搜索起始点;
最后,根据目标精度,从最优搜索起始点搜索最优MV。
在上述第一种方法中采用DMVD方法推导能够推导出较为准确的运动矢量,从而能够最终提高帧间预测的准确性。
为了更简便地获取默认运动矢量,还可以采用第二种方式来得到默认运动矢量。
第二种方法:将可用的相邻图像块的运动矢量的精度调整到不可用相邻图像块对应的指定运动矢量精度,以得到默认运动矢量。
其中,根据可用的相邻图像块的运动矢量得到默认运动矢量,具体包括:
(1)、将不可用相邻图像块的运动矢量精度确定为目标精度;
(2)、获取可用相邻图像块的运动矢量;
(3)、将可用相邻图像块的运动矢量缩放到目标精度,将缩放得到的运动矢量确定为默认运动矢量。
具体地,可以采用下面的公式(3)将可用相邻图像块的运动矢量缩放到目标精度,从而得到默认运动矢量。另外,这里的可用相邻图像块可以是当前图像块中所有可用的相邻图像块中的任意一个相邻图像块,也可是继该不可用相邻图像块之后搜索到的第一个可用的相邻图像块。
Default_MV=((MV_available>>idx)<<idx) (3)
在公式(3)中,MV_available为当前图像块的可用相邻图像块的运动矢量,Default_MV为默认运动矢量,idx既是不可用相邻图像块的索引值,也是移位的位数。
305、从根据各个相邻图像块得到的运动矢量预测值中选择最优的运动矢量预测值作为当前图像块的目标运动矢量预测值。
在从多个运动矢量预测值中选择最优的运动矢量预测值时,可以根据率失真进行选择,也可以根据其它方式来选择,本申请对此不做限制,任何能够从多个运动矢量中选择最优的运动矢量预测值的方式均在本申请的保护范围内。
306、确定目标运动矢量预测值对应的目标相邻图像块。
307、将目标相邻图像块的索引写入编码码流。
解码端:
对于当前图像块,解码端对当前图像块进行帧间预测的主要过程包括步骤308至步骤311,下面对步骤308至步骤311进行详细的介绍。
308、解析码流,获取目标相邻图像块的索引。
步骤308中的码流可以是步骤307中编码端最终得到的编码码流,该码流可以由编码端传输过来。
309、确定目标相邻图像块是否可用。
如果目标相邻图像块可用就执行步骤310,如果目标相邻图像块不可用就执行步骤311。
310、根据目标相邻图像块对应的运动矢量精度,对目标相邻图像块的运动矢量的精度进行调整,得到当前图像块的目标运动矢量预测值。
应理解,在步骤310中是将缩放后得到的运动矢量作为当前图像块的目标运动矢量预测值。
311、将默认运动矢量确定为当前图像块的目标运动矢量预测值。
应理解,步骤311中的默认运动矢量可以是采用上述步骤304下方的第一种方法或者第二种方法生成的。
在实例一中,能够根据相邻图像块是否可用来确定运动矢量预测值,能够在相邻图像块不可用的情况下,将默认运动矢量作为当前图像块的运动预测矢量,也就是说,在实例一中既可以根据可用的相邻图像块得到当前图像块的运动矢量预测值,也可以根据不可用的相邻图像块来得到当前图像块的运动矢量预测值,能够更合理地确定当前图像块的目标运动矢量预测值。
实例二:在某些精度下采用DMVD方法推导运动矢量,在另一些精度下直接对运动矢量进行缩放。
编码端:
对于当前图像块,编码端对当前图像块进行帧间预测的主要过程包括步骤401至步骤406,下面对步骤401至步骤406进行详细的介绍。
401、确定相邻图像块对应的运动矢量精度。
具体地,可以根据表10,按照索引值从小到大的顺序来依次确定各个相邻图像块对应的运动矢量精度。
表10
索引 | 相邻图像块相对于当前图像块的位置 | 运动矢量精度 |
0 | 左 | 1/4 |
1 | 上 | 1/2 |
2 | 右上 | 1 |
3 | 左上 | 2 |
4 | 时域上与当前图像块处于相同位置 | 4 |
5 | 左下 | 8 |
402、确定相邻图像块对应的运动矢量精度是否为预设的运动矢量精度;
如果相邻图像块对应的运动矢量精度为预设的运动矢量精度那么就执行步骤403,如果相邻图像块对应的运动矢量精度不是预设的运动矢量精度那么就执行步骤404。
403、根据相邻图像块对应的运动矢量精度,按照DMVD方法推导出当前图像块的目标运动矢量预测值;
404、将相邻图像块的运动矢量的精度调整到该相邻图像块对应的运动矢量精度,得到当前图像块的运动矢量预测值。
由于当前图像块有多个相邻图像块,因此,经过步骤403和步骤404之后可以得到多个运动矢量预测值。
405、从步骤403和步骤404得到的多个运动矢量预测值中选择出当前图像块的目标运动矢量预测值,并确定该目标运动矢量预测值对应的目标相邻图像块。
406、将该目标相邻图像块对应的目标索引值写入编码码流。
407、将指示信息写入码流,其中,该指示信息用于指示各个索引值对应的运动矢量精度是否采用DMVD方法推导运动矢量。
解码端:
对于当前图像块,解码端对当前图像块进行帧间预测的主要过程包括步骤408至步骤411,下面对步骤408至步骤411进行详细的介绍。
407、解析码流,获取索引值和指示信息。
408、根据索引值查询表10,获取目标索引值对应的目标相邻图像块对应的运动矢量精度。
409、根据指示信息确定在目标相邻图像块对应的运动矢量精度下是否使用DMVD方法推导运动矢量。
410、如果指示信息指示在获取的索引值对应的指定运动矢量精度下使用DMVD方法推导运动矢量,则根据目标相邻图像块对应的运动矢量精度,采用DMVD方法推导出当前图像块的目标运动矢量预测值;否则就按照目标相邻图像块对应的运动矢量精度对当目标相邻图像块的运动矢量的精度进行调整,以得到当前图像块的运动矢量预测值。
上述指示信息具体可以采用表11和表12所示的形式来表示,如表11所示,seq_parameter_set_rbsp()表示一个图像序列的所有参数信息,sps_dmvd_precision的取值用于表示指示信息,指示符u(2)表示编码该指示信息所用的比特位为两位。
表11
具体地,如表12所示,例如,当sps_dmvd_precision的取值为0时表示在运动矢量精度为1/4像素时采用DMVD方法推导运动矢量,而在其它运动矢量精度下,采用调整精度的方法来得到当前图像块的运动矢量预测值。
表12
sps_dmvd_precision | 运动矢量精度 |
0 | 1/4 |
1 | 1/2 |
2 | 1 |
3 | 2 |
可选地,上述指示信息具体可以采用表13和表14所示的形式来表示,如表13所示,pic_parameter_set_rbsp()表示一个图像的所有参数信息,pps_dmvd_precision的取值用于表示指示信息,指示符u(2)表示编码该指示信息所用的比特位为两位。
表13
pic_parameter_set_rbsp(){ | Descriptor(指示符) |
… | |
pps_dmvd_precision | u(2) |
… | |
} |
具体地,如表14所示,例如,当pps_dmvd_precision的取值为2时表示在运动矢量精度为整像素时采用DMVD方法推导运动矢量,而在其它运动矢量精度下,采用调整精度的方法来得到当前图像块的运动矢量预测值。
表14
pps_dmvd_precision | 运动矢量精度 |
0 | 1/4 |
1 | 1/2 |
2 | 1 |
3 | 2 |
可选地,上述指示信息具体可以采用表15和表16所示的形式来表示,如表15所示,slice_segment_header()表示一个图像的某个条带的所有参数信息,slice_dmvd_precision的取值用于表示指示信息,指示符u(2)表示编码该指示信息所用的比特位为两位。
表15
具体地,如表16所示,例如,当slice_dmvd_precision的取值为1时表示在运动矢量精度为1/2像素时采用DMVD方法推导运动矢量,而在其它运动矢量精度下,采用调整精度的方法来得到当前图像块的运动矢量预测值。
表16
slice_dmvd_precision | 运动矢量精度 |
0 | 1/4 |
1 | 1/2 |
2 | 1 |
3 | 2 |
应理解,在上述表11至表16中,sps_dmvd_precision、pps_dmvd_precision以及slice_dmvd_precision取某个数值时均表示在对应的运动矢量精度下,采用DMVD方法推导当前图像块的运动矢量预测值,而在对应的运动矢量精度之外,不采用DMVD方法推导运动矢量。
可选地,sps_dmvd_precision、pps_dmvd_precision以及slice_dmvd_precision取某个数值时还可以表示在在小于或者等于对应的运动矢量精度时,均采用DMVD方法推导当前图像块的运动矢量预测值,而在大于该对应的运动矢量精度时,不采用DMVD方法推导运动矢量。
例如,上述指示信息具体可以采用表17和表18所示的形式来表示,如表17所示,seq_parameter_set_rbsp()表示一个图像序列的所有参数信息,sps_dmvd_precision的取值用于表示指示信息,指示符u(2)表示编码该指示信息所用的比特位为两位。
表17
seq_parameter_set_rbsp(){ | Descriptor(指示符) |
… | |
sps_dmvd_precision | u(2) |
… | |
} |
具体地,如表17所示,例如,当sps_dmvd_precision的取值为1时表示在运动矢量精度小于或者等于1/2像素时采用DMVD方法推导运动矢量,而在其它运动矢量精度下,采用调整精度的方法来得到当前图像块的运动矢量预测值。
表18
sps_dmvd_precision | 运动矢量精度 |
0 | 小于或者等于1/4 |
1 | 小于或者等于1/2 |
2 | 小于或者等于1 |
3 | 小于或者等于2 |
应理解,在上述表11、13、15和17中,指示符的取值根据指示信息需要指示的精度的总的数量来确定。例如,当指示信息需要指示的精度的总数为两个的时候,指示符可以为u(1),此时表示编码指示信息所用的比特位为1位,而当指示信息需要指示的精度的总数超过4个时,指示符可以为u(3),此时表示编码指示信息所用的比特位为3位。
上文结合图1至图7对本申请实施例的帧间预测方法进行了详细描述,下面结合图8对本申请实施例的帧间预测装置进行描述,应理解图8中的帧间预测装置能够执行本申请实施例的帧间预测方法,为了简洁,下面在描述本申请实施例的帧间预测装置时适当省略重复的描述。
图8是本申请实施例的帧间预测装置的示意性流程图。图8中的帧间预测装置500能够执行本申请中的图3、图6以及图7所示的帧间预测方法的各个步骤。
上述帧间预测装置500具体包括:
解析模块501,用于解析码流,获取当前图像块的目标相邻图像块所在的位置;
获取模块502,用于获取预设的相邻图像块的位置与运动矢量精度的对应关系,在所述对应关系中,至少两个相邻图像块的位置对应的运动矢量精度不同;
预测模块503,用于根据所述目标相邻图像块所在的位置以及所述对应关系,确定所述目标相邻图像块对应的目标运动矢量精度;
所述预测模块503还用于根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值。
本申请中,当获取了目标相邻图像块所在的位置之后,可以直接根据相邻图像块的位置与运动矢量精度的对应关系来确定目标相邻图像块对应的目标运动矢量精度,进而能够根据目标相邻图像块所在的位置以及目标运动矢量精度进行运动矢量预测,能够减小帧间预测的复杂度。
可选地,作为一个实施例,在所述对应关系中,在所述对应关系中,第i相邻图像块所在的位置对应第j运动矢量精度,第j运动矢量精度是所述第i相邻图像块所在的位置在预设统计时期内进行图像运动矢量预测时使用频率最高的运动矢量精度,第i相邻图像块为待预测图像块对应的多个相邻图像块中的任意一个。
可选地,作为一个实施例,所述预测模块503具体用于:在所述目标相邻图像块所在的位置存在运动矢量的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,作为一个实施例,所述预测模块503具体用于:在所述目标相邻图像块所在的位置存在运动矢量的情况下,确定所述目标相邻图像块的运动矢量的精度是否为目标运动矢量精度;在所述目标相邻图像块的运动矢量的精度是目标运动矢量精度的情况下,将所述目标相邻图像块的运动矢量确定为所述当前图像块的运动矢量预测值;在所述目标相邻图像块的运动矢量的精度不是目标运动矢量精度的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,作为一个实施例,所述预测模块503具体用于:在所述目标相邻图像块所在的位置存在运动矢量的情况下,将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;从所述起始搜索点开始搜索,得到至少一个运动矢量;从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,作为一个实施例,所述预测模块503具体用于:确定所述目标运动矢量精度是否为第一预设精度;
在所述目标运动矢量精度不是第一预设精度的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第一预设精度的情况下,将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,作为一个实施例,所述预测模块503具体用于:
在所述目标相邻图像块所在的位置不存在运动矢量的情况下,按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述多个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从小到大或者从大到小的顺序对所述多个相邻图像块进行排列得到的,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,作为一个实施例,所述预测模块503具体用于:
在所述目标相邻图像块所在的位置不存在运动矢量的情况下,从所述当前图像块的相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述当前图像块的相邻图像块中存在运动矢量的图像块;
从所述多个第二相邻图像块的运动矢量指向的多个位置中选择一个位置作为搜索起始点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
可选地,作为一个实施例,所述预测模块503具体用于:
确定所述目标运动矢量精度是否为第二预设精度;
在所述目标运动矢量精度不是第二预设精度的情况下,按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第二预设精度的情况下,从所述当前图像块的多个相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
从所述多个第二相邻图像块的运动矢量指向的多个位置选择一个位置作为搜索起始点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
图9是本申请实施例的终端设备的示意性框图。图9中的终端设备600包括:
存储器601,用于存储程序;
处理器602,用于执行所述存储器601存储的程序,当所述程序被执行时,所述处理器602用于执行本申请实施例的帧间预测方法。
具体地,当存储器601中存储的程序被执行时,处理602能够执行上述图3和图6所示的帧间预测方法的各个步骤。
另外,上述帧间预测装置500可以是终端设备600的一个组成部分,此时,帧间预测装置500可以是终端设备600内部专门用于对视频图像进行帧间预测的一个模块。
图10是本申请实施例的解码器的示意性框图。
图10中的解码器700包括:熵解码模块701、反变换反量化模块702、解码端预测模块703、解码重建模块704和解码端滤波模块705。
上述解码器700具体可以是视频解码器,该解码器700能够实现对视频图像的解码,而本申请实施例的帧间预测方法可以是对视频图像进行解码的一个中间过程,因此,解码器700可以执行本申请实施例的帧间预测方法。具体地,解码器700在执行本申请实施例的帧间预测方法时,具体可以由解码器700中的解码端预测模块705来执行。也就是说,解码器700中的解码端预测模块705相当于上文中的帧间预测装置500,解码端预测模块705能够执行任何由帧间预测装置500执行的动作或者步骤。
图11是本申请实施例的视频编解码装置的示意性图。该视频编解码装置800可以是专门用于对视频图像进行编码和/或解码的装置,也可以是具有视频编解码功能的电子设备,进一步地,该编解码装置800可以是无线通信系统的移动终端或者用户设备。
编解码装置800可以包括下列模块或者单元:控制器801、编解码器802、无线电接口803、天线44、智能卡804、读卡器805、存储器806、红外线端口807、显示器808。除了图11中所示的模块和单元之外,编解码装置800还可以包括麦克风或者任何适当的音频输入模块(麦克风或者音频输入模块可以分布在809和810处),该音频输入模块可以是数字或者模拟信号输入,编解码装置800还可以包括音频输出模块,该音频输出模块可以是耳机、扬声器或者模拟音频或者数字音频输出连接。编解码装置800也可以包括电池,该电池可以是太阳能电池、燃料电池等等。编解码装置800还可以包括用于与其它设备进行近程视线通信的红外线端口,该编解码装置800还可以采用包括任何适当的近程通信方式与其它设备进行通信,例如,蓝牙无线连接、USB/火线有线连接。
存储器806可以存储形式为图像的数据和音频的数据,也可以存储用于在控制器801上执行的指令。
编解码器802可以实现对音频和/或视频数据的编码和解码或者在控制器801的控制下实现对音频和/或视频数据的辅助编码和辅助解码。
智能卡804和读卡器805可以提供用户信息,也可以提供网络认证和授权用户的认证信息。智能卡804和读卡器805的具体实现形式可以是集成电路卡(UniversalIntegrated Circuit Card,UICC)和UICC读取器。
无线电接口电路803可以生成无线通信信号,该无线通信信号可以是在进行蜂窝通信网络、无线通信系统或者无线局域网通信产生的通信信号。
天线811用于向其它装置(装置的数目可以为一个也可以为多个)发送在无线电接口电路803生成的射频信号,并且还可以用于从其它装置(装置的数目可以为一个也可以为多个)接收射频信号。
在本申请的一些实施例中,编解码装置800可以在传输和/或存储之前从另一设备接收待处理的视频图像数据。在本申请的另一些实施例中,编解码装置800可以通过无线或者有线连接接收图像并对接收到的图像进行编码/解码。
图12是本申请实施例的视频编解码系统3000的示意性框图。
如图12所示,视频编解码系统3000包含源装置900及目的地装置1000。源装置900产生经过编码后的视频数据,源装置900也可以被称为视频编码装置或视频编码设备,目的地装置1000可以对源装置900产生的经过编码后的视频数据进行解码,目的地装置1000也可以被称为视频解码装置或视频解码设备。
源装置900和目的地装置1000的具体实现形式可以是如下设备中的任意一种:台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、智能电话、手持机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机,或者其它类似的设备。
目的地装置1000可以经由信道2000接收来自源装置900编码后的视频数据。信道2000可包括能够将编码后的视频数据从源装置900移动到目的地装置1000的一个或多个媒体及/或装置。在一个实例中,信道2000可以包括使源装置900能够实时地将编码后的视频数据直接发射到目的地装置1000的一个或多个通信媒体,在此实例中,源装置900可以根据通信标准(例如,无线通信协议)来调制编码后的视频数据,并且可以将调制后的视频数据发射到目的地装置1000。上述一个或多个通信媒体可以包含无线及/或有线通信媒体,例如射频(Radio Frequency,RF)频谱或一根或多根物理传输线。上述一个或多个通信媒体可以形成基于包的网络(例如,局域网、广域网或全球网络(例如,因特网))的部分。上述一个或多个通信媒体可以包含路由器、交换器、基站,或者实现从源装置900到目的地装置1000的通信的其它设备。
在另一实例中,信道2000可包含存储由源装置900产生的编码后的视频数据的存储媒体。在此实例中,目的地装置1000可经由磁盘存取或卡存取来存取存储媒体。存储媒体可包含多种本地存取式数据存储媒体,例如蓝光光盘、高密度数字视频光盘(DigitalVideo Disc,DVD)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。
在另一实例中,信道2000可包含文件服务器或存储由源装置900产生的编码后的视频数据的另一中间存储装置。在此实例中,目的地装置1000可经由流式传输或下载来存取存储于文件服务器或其它中间存储装置处的编码后的视频数据。文件服务器可以是能够存储编码后的视频数据且将所述编码后的视频数据发射到目的地装置1000的服务器类型。例如,文件服务器可以包含全球广域网(World Wide Web,Web)服务器(例如,用于网站)、文件传送协议(File Transfer Protocol,FTP)服务器、网络附加存储(Network AttachedStorage,NAS)装置以及本地磁盘驱动器。
目的地装置1000可经由标准数据连接(例如,因特网连接)来存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道、有线连接(例如,缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器的发射可为流式传输、下载传输或两者的组合。
本申请的图像预测方法不限于无线应用场景,示例性的,本申请的图像预测方法可以应用于支持以下应用等多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统3000可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
在图12中,源装置900包含视频源901、视频编码器902及输出接口903。在一些实例中,输出接口903可包含调制器/解调器(调制解调器)及/或发射器。视频源901可包含视频俘获装置(例如,视频相机)、含有先前俘获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,及/或用于产生视频数据的计算机图形系统,或上述视频数据源的组合。
视频编码器902可编码来自视频源901的视频数据。在一些实例中,源装置900经由输出接口903将编码后的视频数据直接发射到目的地装置1000。编码后的视频数据还可存储于存储媒体或文件服务器上以供目的地装置1000稍后存取以用于解码及/或播放。
在图12中,目的地装置1000包含输入接口1003、视频解码器1002及显示装置1001。在一些实例中,输入接口1003包含接收器及/或调制解调器。输入接口1003可经由信道2000接收编码后的视频数据。显示装置1001可与目的地装置1000整合或可在目的地装置1000外部。一般来说,显示装置1001显示解码后的视频数据。显示装置1001可包括多种显示装置,例如液晶显示器、等离子体显示器、有机发光二极管显示器或其它类型的显示装置。
视频编码器902及视频解码器1002可根据视频压缩标准(例如,高效率视频编解码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/3000/12455下载,所述文件的全部内容以引用的方式并入本文中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种帧间预测方法,其特征在于,包括:
解析码流,获取当前图像块的目标相邻图像块所在的位置;
获取预设的相邻图像块的位置与运动矢量精度的对应关系,在所述对应关系中,至少两个相邻图像块的位置对应的运动矢量精度不同;
根据所述目标相邻图像块所在的位置以及所述对应关系,确定所述目标相邻图像块对应的目标运动矢量精度;
根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值。
2.如权利要求1所述的方法,其特征在于,在所述对应关系中,第i相邻图像块所在的位置对应第j运动矢量精度,第j运动矢量精度是所述第i相邻图像块所在的位置在预设统计时期内进行图像运动矢量预测时使用频率最高的运动矢量精度,第i相邻图像块为待预测图像块对应的多个相邻图像块中的任意一个。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
在所述目标相邻图像块所在的位置存在运动矢量的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
4.如权利要求1或2所述的方法,其特征在于,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
在所述目标相邻图像块所在的位置存在运动矢量的情况下,确定所述目标相邻图像块的运动矢量的精度是否为目标运动矢量精度;
在所述目标相邻图像块的运动矢量的精度是目标运动矢量精度的情况下,将所述目标相邻图像块的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标相邻图像块的运动矢量的精度不是目标运动矢量精度的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
5.如权利要求1或2所述的方法,其特征在于,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
在所述目标相邻图像块所在的位置存在运动矢量的情况下,将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
6.如权利要求1或2所述的方法,其特征在于,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
确定所述目标运动矢量精度是否为第一预设精度;
在所述目标运动矢量精度不是第一预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第一预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
在所述目标相邻图像块所在的位置不存在运动矢量的情况下,按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
8.如权利要求1-6中任一项所述的方法,其特征在于,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
在所述目标相邻图像块所在的位置不存在运动矢量的情况下,从所述当前图像块的相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述当前图像块的相邻图像块中存在运动矢量的图像块;
从所述多个第二相邻图像块的运动矢量指向的多个位置中选择一个位置作为搜索起始点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
9.如权利要求1-6中任一项所述的方法,其特征在于,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
确定所述目标运动矢量精度是否为第二预设精度;
在所述目标运动矢量精度不是第二预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述多个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从小到大的顺序对所述多个相邻图像块进行排列得到的,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第二预设精度的情况下,所述根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值,包括:
从所述当前图像块的多个相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
从所述多个第二相邻图像块的运动矢量指向的多个位置选择一个位置作为搜索起始点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
10.一种帧间预测装置,其特征在于,包括:
解析模块,用于解析码流,获取当前图像块的目标相邻图像块所在的位置;
获取模块,用于获取预设的相邻图像块的位置与运动矢量精度的对应关系,在所述对应关系中,至少两个相邻图像块的位置对应的运动矢量精度不同;
预测模块,用于根据所述目标相邻图像块所在的位置以及所述对应关系,确定所述目标相邻图像块对应的目标运动矢量精度;
所述预测模块还用于根据所述目标相邻图像块所在的位置以及所述目标运动矢量精度,确定所述当前图像块的运动矢量预测值。
11.如权利要求10所述的装置,其特征在于,在所述对应关系中,第i相邻图像块所在的位置对应第j运动矢量精度,第j运动矢量精度是所述第i相邻图像块所在的位置在预设统计时期内进行图像运动矢量预测时使用频率最高的运动矢量精度,第i相邻图像块为待预测图像块对应的多个相邻图像块中的任意一个。
12.如权利要求10或11所述的装置,其特征在于,所述预测模块具体用于:
在所述目标相邻图像块所在的位置存在运动矢量的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
13.如权利要求10或11所述的装置,其特征在于,所述预测模块具体用于:
在所述目标相邻图像块所在的位置存在运动矢量的情况下,确定所述目标相邻图像块的运动矢量的精度是否为目标运动矢量精度;
在所述目标相邻图像块的运动矢量的精度是目标运动矢量精度的情况下,将所述目标相邻图像块的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标相邻图像块的运动矢量的精度不是目标运动矢量精度的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为所述目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
14.如权利要求10或11所述的装置,其特征在于,所述预测模块具体用于:
在所述目标相邻图像块所在的位置存在运动矢量的情况下,将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
15.如权利要求10或11所述的装置,其特征在于,所述预测模块具体用于:
确定所述目标运动矢量精度是否为第一预设精度;
在所述目标运动矢量精度不是第一预设精度的情况下,按照所述目标运动矢量精度对所述目标相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第一预设精度的情况下,将所述目标相邻块的运动矢量指向的位置确定为起始搜索点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
16.如权利要求10-15中任一项所述的装置,其特征在于,所述预测模块具体用于:
在所述目标相邻图像块所在的位置不存在运动矢量的情况下,按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值。
17.如权利要求10-15中任一项所述的装置,其特征在于,所述预测模块具体用于:
在所述目标相邻图像块所在的位置不存在运动矢量的情况下,从所述当前图像块的相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述当前图像块的相邻图像块中存在运动矢量的图像块;
从所述多个第二相邻图像块的运动矢量指向的多个位置中选择一个位置作为搜索起始点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
18.如权利要求10-15中任一项所述的装置,其特征在于,所述预测模块具体用于:
确定所述目标运动矢量精度是否为第二预设精度;
在所述目标运动矢量精度不是第二预设精度的情况下,按照所述当前图像块的多个相邻图像块的预设排列顺序从所述多个相邻图像块中获取第一相邻图像块,其中,所述多个相邻图像块的预设排列顺序是按照所述多个相邻图像块的位置对应的运动矢量精度从小到大的顺序对所述多个相邻图像块进行排列得到的,所述第一相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
按照所述目标运动矢量精度对所述第一相邻图像块的运动矢量的精度进行调整,得到调整后的运动矢量,其中,所述调整后的运动矢量的精度为目标运动矢量精度;
将所述调整后的运动矢量确定为所述当前图像块的运动矢量预测值;
在所述目标运动矢量精度是第二预设精度的情况下,从所述当前图像块的多个相邻图像块中获取多个第二相邻图像块,其中,所述第二相邻图像块为所述多个相邻图像块中存在运动矢量的图像块;
从所述多个第二相邻图像块的运动矢量指向的多个位置选择一个位置作为搜索起始点;
从所述起始搜索点开始搜索,得到至少一个运动矢量;
从所述至少一个运动矢量中选择一个运动矢量作为目标运动矢量;
按照所述目标运动矢量精度对所述目标运动矢量的精度进行调整,得到调整后的目标运动矢量,其中,所述调整后的目标运动矢量的精度为目标运动矢量精度;
将所述调整后的目标运动矢量确定为所述当前图像块的运动矢量预测值。
19.一种终端设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的程序,当所述程序被执行时,所述处理器用于执行如权利要求1-9中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711297953.9A CN109905714B (zh) | 2017-12-08 | 2017-12-08 | 帧间预测方法、装置及终端设备 |
PCT/CN2018/119389 WO2019109955A1 (zh) | 2017-12-08 | 2018-12-05 | 帧间预测方法、装置及终端设备 |
EP18885344.4A EP3703372A1 (en) | 2017-12-08 | 2018-12-05 | Interframe prediction method and apparatus, and terminal device |
US16/894,268 US11290724B2 (en) | 2017-12-08 | 2020-06-05 | Inter prediction method and apparatus, and terminal device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711297953.9A CN109905714B (zh) | 2017-12-08 | 2017-12-08 | 帧间预测方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109905714A true CN109905714A (zh) | 2019-06-18 |
CN109905714B CN109905714B (zh) | 2022-12-27 |
Family
ID=66750772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711297953.9A Active CN109905714B (zh) | 2017-12-08 | 2017-12-08 | 帧间预测方法、装置及终端设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11290724B2 (zh) |
EP (1) | EP3703372A1 (zh) |
CN (1) | CN109905714B (zh) |
WO (1) | WO2019109955A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110234013A (zh) * | 2019-06-20 | 2019-09-13 | 电子科技大学 | 一种帧级运动矢量精度比特分配的优化方法 |
CN114009037A (zh) * | 2019-06-22 | 2022-02-01 | 北京字节跳动网络技术有限公司 | 帧内块复制模式的运动候选列表构建 |
CN114287129A (zh) * | 2019-08-24 | 2022-04-05 | 北京字节跳动网络技术有限公司 | 初始化基于历史的运动矢量预测器表 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102349788B1 (ko) * | 2015-01-13 | 2022-01-11 | 인텔렉추얼디스커버리 주식회사 | 영상의 부호화/복호화 방법 및 장치 |
KR102297479B1 (ko) | 2020-04-10 | 2021-09-03 | 삼성전자주식회사 | 움직임 벡터의 부호화 장치 및 방법, 및 움직임 벡터의 복호화 장치 및 방법 |
CN112055207B (zh) * | 2020-08-06 | 2024-05-31 | 浙江大华技术股份有限公司 | 时域运动矢量预测方法、设备及存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1592421A (zh) * | 2003-05-07 | 2005-03-09 | 株式会社Ntt都科摩 | 活动图像编码装置和方法以及活动图像解码装置和方法 |
US20060188024A1 (en) * | 2005-01-07 | 2006-08-24 | Yoshinori Suzuki | Motion image encoding apparatus, motion image decoding apparatus, motion image encoding method, motion image decoding method, motion image encoding program, and motion image decoding program |
CN101340578A (zh) * | 2007-07-03 | 2009-01-07 | 株式会社日立制作所 | 运动矢量估计装置、编码器及摄像机 |
CN101605256A (zh) * | 2008-06-12 | 2009-12-16 | 华为技术有限公司 | 一种视频编解码的方法及装置 |
US20110206125A1 (en) * | 2010-02-19 | 2011-08-25 | Quallcomm Incorporated | Adaptive motion resolution for video coding |
US20120057632A1 (en) * | 2009-03-06 | 2012-03-08 | Kazushi Sato | Image processing device and method |
CN102377992A (zh) * | 2010-08-06 | 2012-03-14 | 华为技术有限公司 | 运动矢量的预测值的获取方法和装置 |
CN102611886A (zh) * | 2011-01-22 | 2012-07-25 | 华为技术有限公司 | 一种运动预测或补偿方法 |
US20120207220A1 (en) * | 2009-08-21 | 2012-08-16 | Sk Telecom Co., Ltd. | Method and apparatus for encoding/decoding images using adaptive motion vector resolution |
US20120314771A1 (en) * | 2009-08-21 | 2012-12-13 | Sk Telecom Co., Ltd. | Method and apparatus for interpolating reference picture and method and apparatus for encoding/decoding image using same |
KR20130002221A (ko) * | 2011-06-28 | 2013-01-07 | 주식회사 케이티 | Inter 예측에서의 MVP후보 결정 방법 |
CN103024378A (zh) * | 2012-12-06 | 2013-04-03 | 浙江大学 | 一种视频编解码中运动信息导出方法及装置 |
CN103338377A (zh) * | 2013-07-11 | 2013-10-02 | 青岛海信信芯科技有限公司 | 用于确定运动估计中最优运动矢量的方法 |
CN103561263A (zh) * | 2013-11-06 | 2014-02-05 | 北京牡丹电子集团有限责任公司数字电视技术中心 | 基于运动矢量约束和加权运动矢量的运动补偿预测方法 |
CN104427345A (zh) * | 2013-09-11 | 2015-03-18 | 华为技术有限公司 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
US20150085933A1 (en) * | 2012-04-30 | 2015-03-26 | Humax Co., Ltd. | Method and apparatus for encoding multi-view images, and method and apparatus for decoding multi-view images |
CN106165419A (zh) * | 2014-01-09 | 2016-11-23 | 高通股份有限公司 | 用于视频译码的自适应运动向量分辨率信令 |
CN107277506A (zh) * | 2017-08-15 | 2017-10-20 | 中南大学 | 一种基于自适应运动矢量精度的运动矢量精度快速选择方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06343172A (ja) * | 1993-06-01 | 1994-12-13 | Matsushita Electric Ind Co Ltd | 動きベクトル検出方法及び動きベクトル符号化方法 |
KR960010198B1 (ko) * | 1993-07-21 | 1996-07-26 | 배순훈 | 동영상 부호화기의 움직임 추정방법 및 장치 |
JP4317814B2 (ja) * | 2004-12-06 | 2009-08-19 | 株式会社ルネサステクノロジ | 動画像情報の符号化装置及び符号化方法 |
US20120051431A1 (en) * | 2010-08-25 | 2012-03-01 | Qualcomm Incorporated | Motion direction based adaptive motion vector resolution signaling for video coding |
US10327008B2 (en) * | 2010-10-13 | 2019-06-18 | Qualcomm Incorporated | Adaptive motion vector resolution signaling for video coding |
GB2488815C (en) * | 2011-03-09 | 2018-03-28 | Canon Kk | Video decoding |
CN102801972B (zh) * | 2012-06-25 | 2017-08-29 | 北京大学深圳研究生院 | 基于特征的运动矢量估计和传递方法 |
WO2016119104A1 (en) * | 2015-01-26 | 2016-08-04 | Mediatek Inc. | Motion vector regularization |
JP6837965B2 (ja) * | 2014-10-31 | 2021-03-03 | サムスン エレクトロニクス カンパニー リミテッド | 符号化装置及び復号装置 |
CN106331703B (zh) * | 2015-07-03 | 2020-09-08 | 华为技术有限公司 | 视频编码和解码方法、视频编码和解码装置 |
-
2017
- 2017-12-08 CN CN201711297953.9A patent/CN109905714B/zh active Active
-
2018
- 2018-12-05 EP EP18885344.4A patent/EP3703372A1/en active Pending
- 2018-12-05 WO PCT/CN2018/119389 patent/WO2019109955A1/zh unknown
-
2020
- 2020-06-05 US US16/894,268 patent/US11290724B2/en active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1592421A (zh) * | 2003-05-07 | 2005-03-09 | 株式会社Ntt都科摩 | 活动图像编码装置和方法以及活动图像解码装置和方法 |
US20060188024A1 (en) * | 2005-01-07 | 2006-08-24 | Yoshinori Suzuki | Motion image encoding apparatus, motion image decoding apparatus, motion image encoding method, motion image decoding method, motion image encoding program, and motion image decoding program |
CN101340578A (zh) * | 2007-07-03 | 2009-01-07 | 株式会社日立制作所 | 运动矢量估计装置、编码器及摄像机 |
CN101605256A (zh) * | 2008-06-12 | 2009-12-16 | 华为技术有限公司 | 一种视频编解码的方法及装置 |
US20120057632A1 (en) * | 2009-03-06 | 2012-03-08 | Kazushi Sato | Image processing device and method |
US20120207220A1 (en) * | 2009-08-21 | 2012-08-16 | Sk Telecom Co., Ltd. | Method and apparatus for encoding/decoding images using adaptive motion vector resolution |
US20120314771A1 (en) * | 2009-08-21 | 2012-12-13 | Sk Telecom Co., Ltd. | Method and apparatus for interpolating reference picture and method and apparatus for encoding/decoding image using same |
US20110206125A1 (en) * | 2010-02-19 | 2011-08-25 | Quallcomm Incorporated | Adaptive motion resolution for video coding |
CN102783149A (zh) * | 2010-02-19 | 2012-11-14 | 高通股份有限公司 | 用于视频译码的适应性运动分辨率 |
CN102377992A (zh) * | 2010-08-06 | 2012-03-14 | 华为技术有限公司 | 运动矢量的预测值的获取方法和装置 |
CN102611886A (zh) * | 2011-01-22 | 2012-07-25 | 华为技术有限公司 | 一种运动预测或补偿方法 |
KR20130002221A (ko) * | 2011-06-28 | 2013-01-07 | 주식회사 케이티 | Inter 예측에서의 MVP후보 결정 방법 |
US20150085933A1 (en) * | 2012-04-30 | 2015-03-26 | Humax Co., Ltd. | Method and apparatus for encoding multi-view images, and method and apparatus for decoding multi-view images |
CN103024378A (zh) * | 2012-12-06 | 2013-04-03 | 浙江大学 | 一种视频编解码中运动信息导出方法及装置 |
CN103338377A (zh) * | 2013-07-11 | 2013-10-02 | 青岛海信信芯科技有限公司 | 用于确定运动估计中最优运动矢量的方法 |
CN104427345A (zh) * | 2013-09-11 | 2015-03-18 | 华为技术有限公司 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
CN103561263A (zh) * | 2013-11-06 | 2014-02-05 | 北京牡丹电子集团有限责任公司数字电视技术中心 | 基于运动矢量约束和加权运动矢量的运动补偿预测方法 |
CN106165419A (zh) * | 2014-01-09 | 2016-11-23 | 高通股份有限公司 | 用于视频译码的自适应运动向量分辨率信令 |
CN107277506A (zh) * | 2017-08-15 | 2017-10-20 | 中南大学 | 一种基于自适应运动矢量精度的运动矢量精度快速选择方法及装置 |
Non-Patent Citations (1)
Title |
---|
YI-JEN CHIU: "Decoder-side Motion Estimation and Wiener filter for HEVC", 《2013 VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110234013A (zh) * | 2019-06-20 | 2019-09-13 | 电子科技大学 | 一种帧级运动矢量精度比特分配的优化方法 |
CN110234013B (zh) * | 2019-06-20 | 2022-04-26 | 电子科技大学 | 一种帧级运动矢量精度比特分配的优化方法 |
CN114009037A (zh) * | 2019-06-22 | 2022-02-01 | 北京字节跳动网络技术有限公司 | 帧内块复制模式的运动候选列表构建 |
US12088786B2 (en) | 2019-06-22 | 2024-09-10 | Beijing Bytedance Network Technology Co., Ltd | Motion candidate list construction for intra block copy mode |
CN114287129A (zh) * | 2019-08-24 | 2022-04-05 | 北京字节跳动网络技术有限公司 | 初始化基于历史的运动矢量预测器表 |
US12120302B2 (en) | 2019-08-24 | 2024-10-15 | Beijing Bytedance Network Technology Co., Ltd | Coded representation of history-based motion vector prediction tables |
Also Published As
Publication number | Publication date |
---|---|
US11290724B2 (en) | 2022-03-29 |
WO2019109955A1 (zh) | 2019-06-13 |
US20200304801A1 (en) | 2020-09-24 |
EP3703372A4 (en) | 2020-09-02 |
CN109905714B (zh) | 2022-12-27 |
EP3703372A1 (en) | 2020-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109905714A (zh) | 帧间预测方法、装置及终端设备 | |
CN112005551B (zh) | 一种视频图像预测方法及装置 | |
CN109274969A (zh) | 色度预测的方法和设备 | |
CN104937936A (zh) | 用于帧内预测的模式决策简化 | |
CN103404144A (zh) | 视频译码中的经量化脉码调制 | |
CN109996072A (zh) | 视频图像的处理方法及装置 | |
CN103141100A (zh) | 用于视频译码的帧内平滑滤波器 | |
CN109996080A (zh) | 图像的预测方法、装置及编解码器 | |
CN105103550A (zh) | 基于绝对变换差的总和的用于视频编码的帧内速率控制 | |
CN106998470A (zh) | 解码方法、编码方法、解码设备和编码设备 | |
CN105684443B (zh) | 屏幕图像编码方法及其装置和屏幕图像解码方法及其装置 | |
US20230010907A1 (en) | Inter prediction method and apparatus | |
CN110121073A (zh) | 一种双向帧间预测方法及装置 | |
CN109922340B (zh) | 图像编解码方法、装置、系统及存储介质 | |
CN109565588A (zh) | 色度预测的方法及装置 | |
US11109060B2 (en) | Image prediction method and apparatus | |
CN107079159B (zh) | 基于多核系统的并行视频解码的方法和设备 | |
WO2019233423A1 (zh) | 获取运动矢量的方法和装置 | |
CN109756737B (zh) | 图像预测方法和装置 | |
EP3854078A1 (en) | Translational and affine candidates in a unified list | |
CN111355961A (zh) | 一种帧间预测的方法和装置 | |
CN111050164B (zh) | 一种编解码的方法和装置 | |
CN104662905A (zh) | 使用多个假设估计因子的帧间预测方法及其装置 | |
CN104885452A (zh) | 用于估计视频质量评估的内容复杂度的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |