CN106331703B - 视频编码和解码方法、视频编码和解码装置 - Google Patents

视频编码和解码方法、视频编码和解码装置 Download PDF

Info

Publication number
CN106331703B
CN106331703B CN201510391858.XA CN201510391858A CN106331703B CN 106331703 B CN106331703 B CN 106331703B CN 201510391858 A CN201510391858 A CN 201510391858A CN 106331703 B CN106331703 B CN 106331703B
Authority
CN
China
Prior art keywords
search
image
motion vector
pixel
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510391858.XA
Other languages
English (en)
Other versions
CN106331703A (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.)
Peking University
Huawei Technologies Co Ltd
Original Assignee
Peking University
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 Peking University, Huawei Technologies Co Ltd filed Critical Peking University
Priority to CN201510391858.XA priority Critical patent/CN106331703B/zh
Priority to EP16820797.5A priority patent/EP3306936B1/en
Priority to PCT/CN2016/088157 priority patent/WO2017005146A1/zh
Priority to CN201680037414.9A priority patent/CN108141607A/zh
Publication of CN106331703A publication Critical patent/CN106331703A/zh
Priority to US15/860,531 priority patent/US10523965B2/en
Application granted granted Critical
Publication of CN106331703B publication Critical patent/CN106331703B/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/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/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/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
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/182Methods 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 a pixel

Abstract

本发明实施例公开了一种视频编码和解码方法、视频编码和解码装置。本发明实施例方法包括:获取当前图像,根据所述当前图像获取所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;获取当前块以及所述当前块的参考图像;确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点;根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块;获取运动矢量信息和预测残差信号,将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流,所述参考图像的信息用于指示所述参考图像。本发明实施例能够结合视频特性进行编码和解码。

Description

视频编码和解码方法、视频编码和解码装置
技术领域
本发明涉及图像处理技术领域,尤其涉及一种视频编码和解码方法、视频编码和解码装置。
背景技术
随着互联网科技的迅猛发展以及人们物质精神文化的日益丰富,在互联网中针对视频的应用需求尤其是针对高清视频的应用需求越来越多,而高清视频的数据量非常大,要想高清视频能在带宽有限的互联网中传输,必须首先解决的问题就是高清视频压缩编码问题。目前,国际上有两个国际组织专门进行视频编码标准的制定工作,即国际标准化组织(International Organization for Standardization,简称为“ISO”)/国际电工委员会(International Electrotechnical Commission,简称为“IEC”)下的运动图像专家组(Motion Picture Experts Group,简称为“MPEG”)和国际电信联盟电信标准化组(International Telecommunication Union-Telecommunication standardizationsector,简称为“ITU-T”)的视频编码专家组(Video Coding Experts Group,简称为“VCEG”)。成立于1986年的MPEG专门负责制定多媒体领域内的相关标准,主要应用于存储、广播电视、因特网或无线网上的流媒体等。ITU-T则主要制定面向实时视频通信领域的视频编码标准,如视频电话、视频会议等应用。
在过去的几十年里,国际上已经成功制定了面向各种应用的视频编码标准,主要包括:用于影音光碟(Video Compact Disc,简称为“VCD”)的MPEG-1标准,用于数字多功能光盘(Digital Video Disc,简称为“DVD”)和数字视频广播(Digital VideoBroadcasting,简称为“DVB”)的MPEG-2标准,用于视频会议的H.261标准以及H.263标准、H.264标准,允许对任意形状的对象编码的MPEG-4标准,以及最新的高性能视频编码(HighEfficiency Video Coding,简称为“HEVC”)标准。
由于视频序列相邻图像之间存在很大的时间相关性,可将图像序列的每图像图像分成若干互不重叠的编码块,并认为编码块内所有像素点的运动都相同,以编码块为单位分配运动矢量。在对当前编码图像中的当前编码块进行图像间预测时,将已重建的编码图像作为参考图像,对当前编码块在参考图像中一定搜索区域内进行运动搜索,找到与当前编码块满足匹配准则的块,即为匹配块。当前编码块与参考图像中匹配块之间空间位置相对偏移量即为运动矢量(Motion Vector,MV),得到运动矢量的过程被称为运动估计(Motion Estimation,ME)。对视频进行压缩编码时,将参考图像信息、运动矢量信息和匹配块重建像素值与当前块原始像素值之间的差异(残差值)进行编码后发送到解码端。解码端从已解码的参考图像中找到运动矢量所指向位置的块,和残差值相加后恢复出当前块。利用运动估计可去除视频序列的图像间冗余,使视频传输的比特数大为减少。
由于物体运动的连续性,在相邻图像之间,块的运动矢量并不都是以整像素为基本单位,可能真正的运动位移量是以1/4的像素,甚至1/8的像素等亚像素为单位的。H.264和HEVC都采用固定的亮度1/4像素运动矢量精度,色度1/8像素运动矢量精度,相比于整像素运动矢量精度极大地提高了编码性能。当采用亚像素运动矢量精度时,相应地,对当前块在参考图像中给定搜索范围内搜索其匹配块过程中的搜索步长也是亚像素运动矢量精度。而且,在对一个视频序列中的所有视频图像进行编码时,各视频图像的当前块在参考图像中所使用的搜索步长均采用固定的亚像素运动矢量精度。
然而,本申请的发明人发现,对不同内容特性的视频序列,采用固定的运动矢量精度不利于视频序列的编码。
发明内容
本发明实施例提供了一种视频编码和解码方法、视频编码和解码装置,能够结合视频特性进行编码和解码。
本发明实施例第一方面提供了一种视频编码方法,包括:
获取当前图像,根据所述当前图像获取所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块;
确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点;
根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块;
获取运动矢量信息和预测残差信号,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流,所述参考图像的信息用于指示所述参考图像。
结合第一方面,在第一种可能的实施方式中,所述方法还包括:
将所述运动矢量精度的信息和/或所述搜索起点的信息写入所述码流,其中,所述运动矢量精度的信息用于指示所述运动矢量精度,所述搜索起点的信息用于指示所述搜索起点。
结合第一方面,在第二种可能的实施方式中,所述搜索步长集合为{1/2x},x为正整数。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述根据所述运动矢量精度从所述目标整像素点开始搜索匹配块包括:
将所述目标整像素点作为起始点;
设置j的初始值为1,执行预置步骤:
从与所述起始点相邻的所有1/2j像素点中获取目标1/2j像素点;
确定j是否等于x,若等于,则确定所述目标1/2j像素点的位置为所述匹配块的位置;
若所述j不等于x,将所述目标1/2j像素点作为起始点,将j的值加1后重复所述预置步骤。
结合第一方面,在第四种可能的实施方式中,所述搜索步长集合为{yI y=1/2x,x为正整数};
所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述方法还包括:
根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应;其中,
其中,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域包括:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
结合第一方面的第四种可能的实施方式或者第五种可能的实施方式,在第一方面的第六种可能的实施方式中,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2,m1<m2;
所述根据所述运动矢量精度从所述目标整像素点开始搜索匹配块包括:
根据所述目标整像素点获取当前起始点;
获取与所述当前起始点相邻的所有y2像素点;
当所述所有y2像素点全部位于所述m2对应的搜索区域外时,确定所述当前起始点的位置为所述匹配块的位置;
当所述所有y2像素点的至少部分位于所述m2对应的搜索区域内时,执行以下步骤:
从位于所述m2对应的搜索区域内的y2像素点中获取目标y2像素点;
获取与所述目标y2像素点相邻的所有y1像素点;
当所述所有y1像素点全部位于所述m1对应的搜索区域外时,确定所述目标y2像素点的位置为所述匹配块的位置;
当所述所有y1像素点的至少部分位于所述m1对应的搜索区域内时,从位于所述m1对应的搜索区域内的y1像素点中获取目标y1像素点,确定所述目标y1像素点的位置为所述匹配块的位置。
结合第一方面的第四种可能的实施方式,在第一方面的第七种可能的实施方式中,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
结合第一方面,在第八种可能的实施方式中,所述根据所述当前图像获取所述当前图像的运动矢量精度包括:
获取所述当前图像的量化参数以及已编码图像集合,所述已编码图像集合包括至少一个已编码图像;
获取所述已编码图像集合中各已编码图像的编码信息,所述编码信息包括所述已编码图像中各编码块的运动矢量差值以及所述已编码图像中各编码块所包含的像素点个数,其中,所述编码块的运动矢量差值用于指示所述编码块为当前块时的所述运动矢量信息;
计算所述已编码图像集合中每个已编码图像的运动剧烈程度,其中,所述编码图像的运动剧烈程度为所述编码图像中各编码块的第一数值的平均值,所述编码块的第一数值为所述编码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述编码块所包含的像素点个数的乘积;
将所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值作为所述已编码图像集合的运动剧烈程度;
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
结合第一方面的第八种可能的实施方式,在第一方面的第九种可能的实施方式中,所述根据所述当前图像获取所述当前图像的运动矢量精度还包括:
获取参考参数,所述参考参数包括所述当前图像的纹理复杂度、所述已编码图像集合的纹理复杂度和所述已编码图像集合的图像间噪声中的一项,或者包括所述当前图像的纹理复杂度和所述已编码图像集合的纹理复杂度中的一项,以及所述已编码图像集合的图像间噪声;
其中,
当所述参考参数包括所述当前图像的纹理复杂度时,所述获取参考参数包括:
获取所述当前图像中各像素点的像素值;
计算所述当前图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述当前图像的纹理复杂度;
当所述参考参数包括所述已编码图像集合的纹理复杂度时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的像素值;
计算所述已编码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已编码图像的纹理复杂度;
将所述已编码图像集合中各编码图像的纹理复杂度的加权平均值作为所述已编码图像集合的纹理复杂度;
当所述参考参数包括所述已编码图像集合的图像间噪声时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的预测误差;
计算所述各编码图像的第二平均值,所述第二平均值为所述编码图像的各像素点的预测误差绝对值的平均值;
将所述已编码图像集合中各已编码图像的第二平均值的加权平均值作为所述已编码图像集合的图像间噪声;
所述根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度具体包括:
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述参考参数按预置策略确定所述当前图像的运动矢量精度。
结合第一方面,在第一方面的第十种可能的实施方式中,所述根据所述当前图像获取所述当前图像的运动矢量精度包括:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
本发明第二方面提供一种视频解码方法,包括:
获取当前图像以及所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
获取所述目前块的运动矢量信息、预测残差信号,以及所述目前块的参考图像、所述参考图像中的搜索起点;其中,所述目前块为所述当前图像中当前待解码的图像块,所述运动矢量信息包括所述目前块在所述参考图像中的匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
根据所述参考图像、所述搜索起点、所述运动矢量信息、所述当前图像的运动矢量精度查找所述目前块的匹配块;
根据所述匹配块和所述预测残差信号获取所述目前块的重建像素值。
结合第二方面,在第一种可能的实施方式中,
所述搜索步长集合为{1/2x},x为正整数。
结合第二方面,在第二种可能的实施方式中,
所述搜索步长集合为{yIy=1/2x,x∈N+};
所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述方法还包括:
根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,不同阈值对应的搜索区域内的搜索步长分别为所述搜索步长集合中的不同元素;其中,
所述阈值集合中的各元素分别对应所述搜索步长集合中的不同元素;其中,对所述搜索步长集合中大小排序相邻的y1和y2,y1<y2,y2对应的阈值对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
结合第二方面的第二种可能的实施方式,在第三种可能的实施方式中,
所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域包括:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,
所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2;
所述根据所述参考图像、所述搜索起点、所述运动矢量信息、所述当前图像的运动矢量精度查找所述匹配块包括:
确定参照搜索区域,所述参照搜索区域的中心Ce位于所述m1对应的搜索区域的中心Ce1与所述m2对应的搜索区域的中心Ce2之间,且Ce=f1(Ce1,Ce2);所述参照搜索区域的边长L大于所述m1对应的搜索区域的边长L1且小于所述m2对应的搜索区域的边长L2,且L=f2(L1,L2);f1(x1,x2)=f2(x1,x2);
确定临时点,所述临时点相对所述搜索起点的运动矢量为所述运动矢量信息中的搜索步数和搜索方向,搜索步长为所述搜索步长集合中的最小元素;
当所述临时点位于所述参照搜索区域外时,确定第一步数、第二步数和第三步数,所述搜索步数为所述第一步数、第二步数和第三步数的和;其中所述第一步数实际对应的搜索步长为y1,所述第二步数实际对应的搜索步长为y2,所述第三步数实际对应的搜索步长为y3,其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
当所述临时点位于所述参照搜索区域内时,执行以下步骤:
当所述临时点位于所述m1对应的搜索区域外时,确定第三步数和第四步数,所述搜索步数为所述第三步数和所述第四步数的和;其中,所述第三步数实际对应的搜索步长为y1,所述四步数实际对应的搜索步长为y2;
当所述临时点位于所述m1对应的搜索区域内时,确定所述搜索步数实际对应的搜索步长为y1。
结合第二方面的第二种可能的实施方式,在第五种可能的实施方式中,
所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
结合第二方面,在第六种可能的实施方式中,
所述获取当前图像以及所述当前图像的运动矢量精度包括:
接收视频码流;
从所述视频码流中读取所述当前图像以及所述当前图像的运动矢量精度。
结合第二方面,在第七种可能的实施方式中,
所述获取当前图像以及所述当前图像的运动矢量精度包括:
接收视频压缩码流;
从所述视频压缩码流中读取所述当前图像;
获取所述当前图像的量化参数;
确定已解码图像集合,所述已解码图像集合包括当前的至少一个已解码图像;
获取所述已解码图像集合中各已解码图像的解码信息,所述解码信息包括所述已解码图像中各解码块的运动矢量差值以及所述已解码图像中各解码块所包含的像素点个数,其中,所述解码块的运动矢量差值用于指示所述解码块为所述目前块时的所述运动矢量信息;
计算所述已解码图像集合中的每个解码图像的运动剧烈程度,其中,所述解码图像的运动剧烈程度为所述解码图像中各解码块的第一数值的平均值,所述解码块的第一数值为所述解码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述解码块所包含的像素点个数的乘积;
将所述已解码图像集合中各解码图像的运动剧烈程度的加权平均值作为所述已解码图像集合的运动剧烈程度;
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度。
结合第二方面的第七种可能的实施方式,在第八种可能的实施方式中,
所述获取当前图像以及所述当前图像的运动矢量精度还包括:
获取所述已解码图像集合中各已解码图像中的所有像素点的像素值;
计算所述已解码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已解码图像的纹理复杂度;
将所述已解码图像集合中各已解码图像的纹理复杂度的加权平均值作为所述已解码图像集合的纹理复杂度;
所述根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度具体包括:
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述已解码图像集合的纹理复杂度按预置策略确定所述当前图像的运动矢量精度。
结合第二方面,在第九种可能的实施方式中,
所述获取所述当前图像的运动矢量精度包括:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
本发明实施例第三方面一种视频编码装置,包括:
第一获取单元,用于当前图像,根据所述当前图像获取所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
第二获取单元,用于获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块;
第一确定单元,用于确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点;
搜索单元,用于根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块;
第三获取单元,用于获取运动矢量信息和预测残差信号,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
写入单元,用于将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流,所述参考图像的信息用于指示所述参考图像。
结合第三方面,在第一种可能的实施方式中,所述写入单元还用于将所述运动矢量精度的信息和/或所述搜索起点的信息写入所述码流,其中,所述运动矢量精度的信息用于指示所述运动矢量精度,所述搜索起点的信息用于指示所述搜索起点。
结合第三方面,在第二种可能的实施方式中,所述搜索步长集合为{1/2x},x为正整数。
结合第三方面的第二种可能的实施方式,在第三方面的第三种可能的实施方式中,所述搜索单元具体用于:
将所述目标整像素点作为起始点;
设置j的初始值为1,执行预置步骤:
从与所述起始点相邻的所有1/2j像素点中获取目标1/2j像素点;
确定j是否等于x,若等于,则确定所述目标1/2j像素点的位置为所述匹配块的位置;
若所述j不等于x,将所述目标1/2j像素点作为起始点,将j的值加1后重复所述预置步骤。
结合第三方面,在第四种可能的实施方式中,所述搜索步长集合为{yI y=1/2x,x为正整数};所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述视频编码装置还包括:
第二确定单元,用于根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应;其中,
其中,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
结合第三方面的第四种可能的实施方式,在第三方面的第五种可能的实施方式中,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述第二确定单元具体用于:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
结合第三方面的第四种可能的实施方式或者第五种可能的实施方式,在第三方面的第六种可能的实施方式中,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2,m1<m2;
所述搜索单元具体用于:
根据所述目标整像素点获取当前起始点;
获取与所述当前起始点相邻的所有y2像素点;
当所述所有y2像素点全部位于所述m2对应的搜索区域外时,确定所述当前起始点的位置为所述匹配块的位置;
当所述所有y2像素点的至少部分位于所述m2对应的搜索区域内时,执行以下步骤:
从位于所述m2对应的搜索区域内的y2像素点中获取目标y2像素点;
获取与所述目标y2像素点相邻的所有y1像素点;
当所述所有y1像素点全部位于所述m1对应的搜索区域外时,确定所述目标y2像素点的位置为所述匹配块的位置;
当所述所有y1像素点的至少部分位于所述m1对应的搜索区域内时,从位于所述m1对应的搜索区域内的y1像素点中获取目标y1像素点,确定所述目标y1像素点的位置为所述匹配块的位置。
结合第三方面的第四种可能的实施方式,在第三方面的第七种可能的实施方式中,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
结合第三方面,在第八种可能的实施方式中,所述第一获取单元具体用于:
获取所述当前图像的量化参数以及已编码图像集合,所述已编码图像集合包括至少一个已编码图像;
获取所述已编码图像集合中各已编码图像的编码信息,所述编码信息包括所述已编码图像中各编码块的运动矢量差值以及所述已编码图像中各编码块所包含的像素点个数,其中,所述编码块的运动矢量差值用于指示所述编码块为当前块时的所述运动矢量信息;
计算所述已编码图像集合中每个已编码图像的运动剧烈程度,其中,所述编码图像的运动剧烈程度为所述编码图像中各编码块的第一数值的平均值,所述编码块的第一数值为所述编码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述编码块所包含的像素点个数的乘积;
将所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值作为所述已编码图像集合的运动剧烈程度;
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
结合第三方面的第八种可能的实施方式,在第三方面的第九种可能的实施方式中,所述第一获取单元还用于:
获取参考参数,所述参考参数包括所述当前图像的纹理复杂度、所述已编码图像集合的纹理复杂度和所述已编码图像集合的图像间噪声中的一项,或者包括所述当前图像的纹理复杂度和所述已编码图像集合的纹理复杂度中的一项,以及所述已编码图像集合的图像间噪声;
其中,
当所述参考参数包括所述当前图像的纹理复杂度时,所述第一获取单元用于:
获取所述当前图像中各像素点的像素值;
计算所述当前图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述当前图像的纹理复杂度;
当所述参考参数包括所述已编码图像集合的纹理复杂度时,所述第一获取单元用于:
获取所述已编码图像集合中各已编码图像中各像素点的像素值;
计算所述已编码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已编码图像的纹理复杂度;
将所述已编码图像集合中各编码图像的纹理复杂度的加权平均值作为所述已编码图像集合的纹理复杂度;
当所述参考参数包括所述已编码图像集合的图像间噪声时,所述第一获取单元用于:
获取所述已编码图像集合中各已编码图像中各像素点的预测误差;
计算所述各编码图像的第二平均值,所述第二平均值为所述编码图像的各像素点的预测误差绝对值的平均值;
将所述已编码图像集合中各已编码图像的第二平均值的加权平均值作为所述已编码图像集合的图像间噪声;
所述根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度具体包括:
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述参考参数按预置策略确定所述当前图像的运动矢量精度。
结合第三方面,在第三方面的第十种可能的实施方式中,所述第一获取单元具体用于:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
本发明第四方面提供一种视频解码装置,包括:
第一获取单元,用于获取当前图像以及所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
第二获取单元,用于获取所述目前块的运动矢量信息、预测残差信号,以及所述目前块的参考图像、所述参考图像中的搜索起点;其中,所述目前块为所述当前图像中当前待解码的图像块,所述运动矢量信息包括所述目前块在所述参考图像中的匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
查找单元,用于根据所述参考图像、所述搜索起点、所述运动矢量信息、所述当前图像的运动矢量精度查找所述目前块的匹配块;
重建单元,用于根据所述匹配块和所述预测残差信号获取所述目前块的重建像素值。
结合第四方面,在第一种可能的实施方式中,
所述搜索步长集合为{1/2x},x为正整数。
结合第四方面,在第二种可能的实施方式中,
所述搜索步长集合为{yIy=1/2x,x∈N+};所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述视频编码装置还包括:
确定单元,用于根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,不同阈值对应的搜索区域内的搜索步长分别为所述搜索步长集合中的不同元素;其中,
所述阈值集合中的各元素分别对应所述搜索步长集合中的不同元素;其中,对所述搜索步长集合中大小排序相邻的y1和y2,y1<y2,y2对应的阈值对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
结合第四方面的第二种可能的实施方式,在第三种可能的实施方式中,
所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述确定单元具体用于:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
结合第四方面的第三种可能的实施方式,在第四种可能的实施方式中,
所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2;
所述查找单元具体用于:
确定参照搜索区域,所述参照搜索区域的中心Ce位于所述m1对应的搜索区域的中心Ce1与所述m2对应的搜索区域的中心Ce2之间,且Ce=f1(Ce1,Ce2);所述参照搜索区域的边长L大于所述m1对应的搜索区域的边长L1且小于所述m2对应的搜索区域的边长L2,且L=f2(L1,L2);f1(x1,x2)=f2(x1,x2);
确定临时点,所述临时点相对所述搜索起点的运动矢量为所述运动矢量信息中的搜索步数和搜索方向,搜索步长为所述搜索步长集合中的最小元素;
当所述临时点位于所述参照搜索区域外时,确定第一步数、第二步数和第三步数,所述搜索步数为所述第一步数、第二步数和第三步数的和;其中所述第一步数实际对应的搜索步长为y1,所述第二步数实际对应的搜索步长为y2,所述第三步数实际对应的搜索步长为y3,其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
当所述临时点位于所述参照搜索区域内时,执行以下步骤:
当所述临时点位于所述m1对应的搜索区域外时,确定第三步数和第四步数,所述搜索步数为所述第三步数和所述第四步数的和;其中,所述第三步数实际对应的搜索步长为y1,所述四步数实际对应的搜索步长为y2;
当所述临时点位于所述m1对应的搜索区域内时,确定所述搜索步数实际对应的搜索步长为y1。
结合第四方面的第二种可能的实施方式,在第五种可能的实施方式中,
所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
结合第四方面,在第六种可能的实施方式中,
所述第一获取单元具体用于:
接收视频码流;
从所述视频码流中读取所述当前图像以及所述当前图像的运动矢量精度。
结合第四方面,在第七种可能的实施方式中,
所述第一获取单元具体用于:
接收视频压缩码流;
从所述视频压缩码流中读取所述当前图像;
获取所述当前图像的量化参数;
确定已解码图像集合,所述已解码图像集合包括当前的至少一个已解码图像;
获取所述已解码图像集合中各已解码图像的解码信息,所述解码信息包括所述已解码图像中各解码块的运动矢量差值以及所述已解码图像中各解码块所包含的像素点个数,其中,所述解码块的运动矢量差值用于指示所述解码块为所述目前块时的所述运动矢量信息;
计算所述已解码图像集合中的每个解码图像的运动剧烈程度,其中,所述解码图像的运动剧烈程度为所述解码图像中各解码块的第一数值的平均值,所述解码块的第一数值为所述解码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述解码块所包含的像素点个数的乘积;
将所述已解码图像集合中各解码图像的运动剧烈程度的加权平均值作为所述已解码图像集合的运动剧烈程度;
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度。
结合第四方面的第七种可能的实施方式,在第八种可能的实施方式中,
所述第一获取单元还用于:
获取所述已解码图像集合中各已解码图像中的所有像素点的像素值;
计算所述已解码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已解码图像的纹理复杂度;
将所述已解码图像集合中各已解码图像的纹理复杂度的加权平均值作为所述已解码图像集合的纹理复杂度;
所述根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度具体包括:
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述已解码图像集合的纹理复杂度按预置策略确定所述当前图像的运动矢量精度。
结合第四方面,在第九种可能的实施方式中,
所述第一获取单元具体用于:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
从以上技术方案可以看出,本发明实施例具有以下优点:
本申请的发明人发现,对不同的内容特性的视频序列,自适应地选择该视频序列中的视频图像的运动矢量精度更利于该视频图像的编码,例如,对应运动缓慢、纹理细节少的视频图像,在参考图像中搜索匹配块时,采用较小精度的运动矢量相比于采用较大精度的运动矢量,可以节约对运动矢量编码所需的比特,同时减少运动估计过程中运动搜索的步骤以及对参考图像进行内插的计算量,节省编码和解码时间;对于运动剧烈、纹理复杂的视频图像,在参考图像中搜索匹配块时,采用较小精度的运动矢量可比采用较大精度的运动矢量得到与当前块更加相似的匹配块,减小预测残差,提高编码效率;基于上述发现,本发明实施例中,根据当前图像获取当前图像的内容特性,或者其他实施例中的根据当前图像以及已编码图像获取当前图像的内容特性,进而确定与该当前图像的内容特性相符合的运动矢量精度,以便在当前块的参考图像中搜索该当前块的匹配块时,根据目标整像素点和该运动矢量精度来搜索匹配块。
附图说明
图1为本发明的一个实施例提供的一种视频编码方法的流程示意图;
图2和图3分别为本发明的视频编码方法中搜索区域的结构示意图;
图4为本发明的视频编码方法的另一个实施例的流程示意图;
图5为本发明的一个实施例提供的一种视频编码方法的流程示意图;
图6为本发明的视频解码方法的另一个实施例的流程示意图;
图7为本发明实施例的一种视频编码装置的结构示意图;
图8为本发明实施例的一种视频解码装置的结构示意图;
图9为本发明实施例的另一种视频编码装置的结构示意图;
图10为本发明实施例的另一种视频解码装置的结构示意图。
具体实施方式
本发明实施例提供了一种视频编码和解码方法、视频编码和解码装置,能够结合视频特性进行编码和解码。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下分别进行详细说明。
先介绍本发明实施例提供的视频编码方法,本发明实施例提供的视频编码方法的执行主体是视频编码装置,其中,该视频编码装置可以是任何需要输出、存储视频的装置,如手机,笔记本电脑,平板电脑,个人电脑等设备。
参见图1,图1为本发明的一个实施例提供的一种视频编码方法的流程示意图。如图1所示,本发明的一个实施例提供的一种视频编码方法可包括以下内容:
101、获取当前图像,根据所述当前图像获取所述当前图像的运动矢量精度。
根据所述当前图像获取所述当前图像的运动矢量精度多种方法。例如,首先计算能够指示当前图像的内容特性的参数。视频编码装置内设置有列表,该列表内存有不同的参数分别对应的运动矢量精度,获取到当前图像的参数后,根据查表法来确定当前图像的运动矢量精度。
本实施例中,运动矢量精度用于指示以预设起始点开始进行搜索当前块的匹配块时的搜索步长。其中,该预设起始点为步骤103中的目标整像素点。运动矢量精度包括搜索步长集合,所述搜索步长集合包括至少一个搜索步长,且每个搜索步长小于一个像素单位。
本实施例中,运动矢量精度可以是单一运动矢量精度,或者,优选的,也可以是分阶运动矢量精度。当运动矢量精度为单一运动矢量时,搜索步长集合为{1/2x},其中x为正整数。也即搜索步长集合中仅包括一个搜索步长,该搜索步长为1/2x像素单位。例如,该搜索步长可以为1/2像素单位、1/4像素单位、1/8像素单位或者1/16像素单位等等,在此不做限制。
当运动矢量精度为分阶运动矢量精度时,搜索步长集合为{yIy=1/2x,x位正整数}。也即搜索步长集合中包括至少一个搜索步长,各搜索步长的取值为=1/2x,也即各搜索步长为1/2x像素单位,其中不同的搜索步长对应的x的取值不同。运动矢量精度还包括阈值集合,该阈值集合包括至少一个阈值。其中,各阈值分别用于指示参考图像中的一个搜索区域。运动矢量精度中的搜索步长集合中的各搜索步长与阈值集合中的各阈值一一对应,每个阈值所指示的搜索区域内以该阈值所对应的搜索步长作为搜索步长。
102、获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块。
其中,所述当前块为所述当前图像中当前待编码的图像块。对当前块进行编码时,在参考图像中根据一定的匹配准则找出与当前块最相似的块,称为该当前块的匹配块。因此,需确定当前块的参考图像。确定的方法有多种,此为现有技术,在此不再赘述。
103、确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点。
确定参考图像中的搜索起点的方法多种。例如,在HEVC使用的其中一种图像间预测模式,也即Inter模式中,可采用先进的运动矢量预测方法(英文全称:Advanced MotionVector Prediction,缩写:AMVP)得到当前块的运动矢量预测值(英文全称:Motion VectorPredictor,MVP)集合,再将该MVP集合中率失真代价最小的MVP作为当前块的MVP。当然,实际应用中还有其他方法来确定当前块的MVP,此为现有技术,在此不再赘述。该MVP所指向的参考图像中的位置为当前块在参考图像中的预测匹配块的位置。
然而,MVP所指向的预测匹配块实际上并不是参考图像中与当前块相似度最高的匹配块,为减少计算当前块与匹配块之间的残差,还以该MVP所指向的预测匹配块的位置为搜索起点,在参考图像内进一步搜索当前图像的匹配块的位置。
确定参考图像中的搜索起点后,以该搜索起点为起始点进行以一个像素单位为搜索步长进行整像素运动搜索。整像素运动搜索的方法有多种,例如采用钻石型搜索、全搜索或者快速搜索等方法,这些方法为现有技术,在此不再赘述。在搜索中,将所搜索到的率失真代价最小的整像素点作为目标整像素点。
104、根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块。
获取到目标整像素点后,以该目标整像素点为起始点,根据运动矢量精度所包含的搜索步长集合中的搜索步长来搜索当前块的匹配块。实际应用中,一般通过搜索匹配块的左上角的点来搜索匹配块,当然,也可以是通过搜索匹配块中的其他点来搜索匹配块,在此不作限制。下面以运动矢量精度为单一运动矢量精度为例对搜索匹配块的过程进行描述。
具体的,在运动矢量精度为单一运动矢量精度时,也即运动矢量精度中的搜索步长集合中仅有的一个元素为1/2x时,搜索匹配块具体包括:
将所述目标整像素点作为起始点,设置j的初始值为1,执行预置步骤:
从与所述起始点相邻的所有1/2j像素点中获取目标1/2j像素点;
确定j是否等于x,若等于,则确定所述目标1/2j像素点的位置为所述匹配块的位置;
若所述j不等于x,将所述目标1/2j像素点作为起始点,将j的值加1后重复所述预置步骤。
具体举例来说,运动矢量精度中的搜索步长为1/8像素单位时,查找目标整像素点周围相邻的八个1/2像素点,根据预置原则将其中的一个确定为目标1/2像素点。该预置原则可以为选择率失真代价最小的像素点,或者其他原则,在此不作限制。以目标1/2像素点为起始点,查找目标1/2像素点周围相邻的八个1/4像素点,根据预置原则将其中的一个确定为目标1/4像素点。以目标1/4像素点为起始点,查找目标1/4像素点周围相邻的八个1/8像素点,根据预置原则将其中的一个确定为目标1/8像素点。该目标1/8像素点的位置即为匹配块的位置。
105、获取运动矢量信息和预测残差信号,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差。
获取到匹配块后,可根据匹配块的位置和搜索起点的位置计算匹配块相对于所述搜索起点的运动矢量信息,也即该匹配块相对该搜索起点的搜索步数和搜索方向。
获取到匹配块后,可计算匹配块上各像素点的像素值与当前块上各像素点的像素值的差值,得到匹配块与当前块的预测残差信号。
106、将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流。
本实施例中,所述参考图像的信息用于指示所述参考图像,以便视频解码装置可以根据该参考图像的信息从各解码图像中确定参考图像。例如,该参考图像的信息可以是参考图像的索引,在此不作限制。
视频解码装置接收到视频码流后,在对当前块进行解码时,可根据参考图像的信息和搜索起点的信息确定参考图像中的搜索起点的位置。由于运动矢量信息中没有指示搜索步数中各搜索步对应的步长,因此,视频解码装置还需要获取当前块的运动矢量精度,也即搜索步长,以使得视频解码装置可以根据匹配块相对搜索起点的搜索步数、搜索方向和搜索步长来确定匹配块的位置。
因此,对当前块编码时,需将该当前块的参考图像的信息、运动矢量信息、预测残差信号、运动矢量精度的信息以及搜索起点的信息写入码流。
其中,该运动矢量精度的信息用于指示该运动矢量精度。例如,在视频编码装置和视频解码装置内各预设有运动矢量精度集合。该运动矢量精度的信息具体为该运动矢量精度的索引,以便视频解码装置根据该运动矢量精度的信息从运动矢量精度集合中查找到该当前图像的运动矢量精度。或者,该运动矢量精度的信息也可以是该运动矢量精度的具体数值,在此不作限制。
其中,该搜索起点的信息用于指示所述搜索起点。例如,该搜索起点的信息为该搜索起点相对于当前块的运动矢量,在此不作限制。
然而,由于视频解码装置也可以采用相同的方法来计算当前图像的运动矢量精度,因此,视频编码装置在对当前块编码时,也可以不将当前图像的运动矢量精度写入码流,以减少当前块编码所需的比特数,而是由视频解码装置来自行计算。
或者,由于视频解码装置也可以采用相同的方法来获取当前块的MVP,也即所述搜索起点的位置,例如标准264中规定编码端和解码端采用相同方法获取MVP,因此,视频编码装置在对当前块编码时,也可以不将所述搜索起点的信息写入码流,以减少当前块编码所需的比特数,而是由视频解码装置来自行获取。
本申请的发明人发现,对不同的内容特性的视频序列,自适应地选择该视频序列中的视频图像的运动矢量精度更利于该视频图像的编码,例如,对应运动缓慢、纹理细节少的视频图像,在参考图像中搜索匹配块时,采用较小精度的运动矢量相比于采用较大精度的运动矢量,可以节约对运动矢量编码所需的比特,同时减少运动估计过程中运动搜索的步骤以及对参考图像进行内插的计算量,节省编码和解码时间;对于运动剧烈、纹理复杂的视频图像,在参考图像中搜索匹配块时,采用较小精度的运动矢量可比采用较大精度的运动矢量得到与当前块更加相似的匹配块,减小预测残差,提高编码效率;基于上述发现,本发明实施例中,通过当前图像获取当前图像的内容特性,进而确定与该当前图像的内容特性相符合的运动矢量精度,以便在当前块的参考图像中搜索该当前块的匹配块时,根据目标整像素点和该运动矢量精度来搜索匹配块。
可选的,在本发明的一些可能的实施方式中,当前图像的运动矢量精度为分阶运动矢量精度,也即所述搜索步长集合为{yIy=1/2x,x为正整数};所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值。在步骤104之前,还包括:根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域。其中,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应。其中,当阈值集合包括至少两个元素时,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
其中,搜索步长集合的取值有多可能。例如,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16},在此不作限制。
其中,阈值所对应的搜索区域的形状有多种。下面以搜索区域的形状为正方形进行举例描述。
搜索步长集合为{y1,y2},阈值集合为{m1,m2},其中y1<y2,m1<m2,y1与m1对应,y2与m2对应,其中,m1为2的正整数倍或0,所述m2为4的正整数倍。所述根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域包括:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
为方便理解,下面以y1=1/8,y2=1/4,m1=2,m2=4进行举例描述。
请参阅图2和图3,图2和图3分别为本发明的视频编码方法中搜索区域的结构示意图。如图2所示,图中的圆块为1/2像素点,正方块为1/4像素点,三角块为1/8像素点。所述搜索起点(图中标识为阴影块)位于1/2像素点上,那么:
第一正方形(图中标记为P1)为:以搜索起点为中心,2*2*最小像素单元(也即1/8像素单位)=1/2像素单位为边长。
第二正方形(图中标记为P2)为:以搜索起点为中心,2*4*最小像素单元(也即1/8像素单位)=1像素单位为边长。
m1对应的搜索区域为第一正方形,在该搜索区域内搜索时采用的搜索步长为1/8像素单位。m2对应的搜索区域为第一正方形和第二正方形之间的区域,在该搜索区域内搜索时采用的搜索步长为1/4像素单位。
如图3所示,图中的圆块为1/2像素点,正方块为1/4像素点,三角块为1/8像素点。所述搜索起点(图中标识为阴影块)位于1/8像素点上,那么:
第三正方形(图中标记为P3)为:以距离搜索起点最近的1/4像素点为中心,2*2*最小像素单元(也即1/8像素单位)=1/2像素单位为边长。
第四正方形(图中标记为P4)为:以距离搜索起点最近的1/2像素点为中心,2*4*最小像素单元(也即1/8像素单位)=1像素单位为边长。
m1对应的搜索区域为第三正方形,在该搜索区域内搜索时采用的搜索步长为1/8像素单位。m2对应的搜索区域为第三正方形和第四正方形之间的区域,在该搜索区域内搜索时采用的搜索步长为1/4像素单位。
其中,距离搜索起点最近的y2像素点和y3像素点分别有至少一个,可取其中任意一个y2像素点和y3像素点分别作为第三正方形P3和第四正方形P4的中心。优选的,取位于所述搜索起点的同一侧的y2像素点和y3像素点分别作为第三正方形P3和第四正方形P4的中心,以避免第三正方形P3不能全部位于第四正方形P4内。
上面实施例中以搜索区域的形状为正方形进行了举例描述。实际应用中,该搜索区域的形状还可以是圆形、正六边形或者其他形状,在此不作限制。
进一步,可选的,在本发明的一些可能的实施方式中,步骤104根据所述运动矢量精度从所述目标整像素点开始搜索匹配块包括:
S1、根据所述目标整像素点获取当前起始点;
S2、获取与所述当前起始点相邻的所有y2像素点;
S3、当所述所有y2像素点全部位于所述m2对应的搜索区域外时,确定所述当前起始点的位置为所述匹配块的位置;
S4、当所述所有y2像素点的至少部分位于所述m2对应的搜索区域内时,执行以下步骤:
S5、从位于所述m2对应的搜索区域内的y2像素点中获取目标y2像素点;
S6、获取与所述目标y2像素点相邻的所有y1像素点;
S7、当所述所有y1像素点全部位于所述m1对应的搜索区域外时,确定所述目标y2像素点的位置为所述匹配块的位置;
S8、当所述所有y1像素点的至少部分位于所述m1对应的搜索区域内时,从位于所述m1对应的搜索区域内的y1像素点中获取目标y1像素点,确定所述目标y1像素点的位置为所述匹配块的位置。
其中,在步骤S1中,如何根据目标整像素点获取当前起始点取决于y2的取值。例如,当y2=1/4时,首先查找目标整像素点周围相邻的所有1/2像素点,然后根据预置原则(例如选择率失真代价最小的像素点)从中确定目标1/2像素点,并将该目标1/2像素点作为当前起始点。当y2=1/8时,首先根据目标整像素点获取目标1/2像素点,查找目标1/2像素点周围相邻的所有1/4像素点,然后根据预置原则(例如选择率失真代价最小的像素点)从中确定目标1/4像素点,并将该目标1/4像素点作为当前起始点。同理,当y2=1/16时,可获取目标1/8像素点作为当前起始点。以此类推。
为便于更好的理解和实施本发明实施例的上述方案,下面通过一些具体应用场景进行举例说明。
请参见图4,图4为本发明的视频编码方法的另一个实施例的流程示意图。本实施例中,视频编码方法包括:
401、获取当前图像,根据所述当前图像获取所述当前图像的运动矢量精度。
其中,所述运动矢量精度具体包括搜索步长集合{1/8,1/4},以及阈值集合{m1,m2}。
402、获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块。
403、确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点。
404、判断所述搜索起点是否位于整像素点或者1/2像素点上。
若是,则执行步骤405。
若否,则执行步骤406。
405、将第一正方形内的区域作为所述m1对应的搜索区域;将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域。
其中,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形。所述最小像素单元为所述搜索步长集合中的最小元素。
406、将第三正方形内的区域作为所述m1对应的搜索区域,将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域。
其中,所述第三正方形为以距离所述搜索起点最近的1/4像素点为中心,2m1*最小像素单元为边长的正方形;所述第四正方形为以距离所述搜索起点最近的1/2像素点为中心,2m2*最小像素单元为边长的正方形;其中。所述最小像素单元为所述搜索步长集合中的最小元素。
为描述方便,设运动矢量Ce(Cex,Cey)指向第三正方形的中心,运动矢量Cq(Cqx,Cqy)指向第四正方形的中心。具体的,可通过以下两个公式分别计算Ce(Cex,Cey)和Cq(Cqx,Cqy)。
Figure BDA0000752433110000292
Figure BDA0000752433110000291
其中,MVPx为当前块的MVP在水平方向上的分量,MVPy为当前块的MVP在竖直方向上的分量。
407、根据所述目标整像素点获取当前起始点。
查找目标整像素点周围相邻的所有1/2像素点,然后根据预置原则(例如选择率失真代价最小的像素点)从中确定目标1/2像素点,并将该目标1/2像素点作为当前起始点。
408、获取与所述当前起始点相邻的所有1/4像素点。
409、判断所述所有1/4像素点是否全部位于所述m2对应的搜索区域外,若是,则执行步骤410;若否,则执行步骤411。
具体的,可通过公式(1)计算所述所有1/4像素点是否全部位于所述m2对应的搜索区域外。
|MV'quater x-Cqx|>m2或者|MV'quater y-Cqy|>m2 (1)
其中,MV‘quater为每一个1/4像素点相对于所述当前块在参考帧中相同位置的运动矢量,MV‘quater x为MV‘quater的水平分量,MV‘quater y为MV‘quater的竖直分量。当全部1/4像素点满足公式(1)时,执行步骤410;若至少一个1/4像素点不满足公式(1),则执行步骤411。
410、确定所述目标1/2像素点的位置为所述匹配块的位置。
具体的,可通过以下公式计算所述匹配块相对于搜索起点的运动矢量MVD,在下面公式中,MVDx为MVD在水平方向上的分量,MVDy为MVD在竖直方向上的分量,MVhalf为目标1/2像素点相对于所述当前块在参考帧中相同位置的运动矢量。
当|MVhalf x-Cqx|>THq时,判断MVhalf所指向位置在Cq的左边还是右边。
若是左边,则通过下面公式计算MVDx
MVDx=Cex-THe+((Cqx-THq)-(Cex-THe))/2+(MVhalfx-(Cqx-THq))/4-MVPx,
MVDy=(MVhalf y-Cqy)/4
若是右边,则通过下面公式计算MVDx
MVDx=Cex+THe+((Cqx+THq)-(Cex+THe))/2+(MVhalfx-(Cqx+THq))/4-MVPx,
MVDy=(MVhalf y-Cqy)/4
否则,当|MVhalf y-Cqy|>THq时,判断MVhalf所指向位置在Cq的上边还是下边。
若是上边,则通过下面公式计算MVDy
MVDy=Cey-THe+((Cqy-THq)-(Cey-THe))/2+(MVhalfy-(Cqy-THq))/4-MVPy,
MVDx=(MVhalf x-Cqy)/4
若是下边,则通过下面公式计算MVDy
MVDy=Cey+THe+((Cqy+THq)-(Cey+THe))/2+(MVhalfy-(Cqy+THq))/4-MVPx,
MVDx=(MVhalf x-Cqx)/4
411、从位于所述m2对应的搜索区域内的1/4像素点中获取目标1/4像素点。
具体的,可遍历位于所述m2对应的搜索区域内的所有1/4像素点,根据预置原则(例如选择率失真代价最小的像素点)确定目标1/4像素点。
412、获取与所述目标1/4像素点相邻的所有1/8像素点。
413、判断所述所有1/8像素点是否全部位于所述m1对应的搜索区域外,若是,则执行步骤414;若否,则执行步骤415。
具体的,可通过公式(2)计算所述所有1/8像素点是否全部位于所述m1对应的搜索区域外。
|MV'eight x-Cex|>m1,或|MV'eight y-Cey|>m1 (2),
其中,MV‘eight为各1/8像素点相对于所述当前块的运动矢量,MV‘eightx为MV‘eight的水平分量,MV‘eighty为MV‘eight的竖直分量。当全部1/8像素点满足公式(2)时,执行步骤414;若至少一个1/8像素点不满足公式(2),则执行步骤415。
414、确定所述目标1/4像素点的位置为所述匹配块的位置。
具体的,可通过以下公式计算所述匹配块相对于搜索起点的运动矢量MVD。在下面公式中,MVDx为MVD在水平方向上的分量,MVDy为MVD在竖直方向上的分量,MVquater为目标1/4像素点相对于所述当前块在参考帧中相同位置的运动矢量。
当|MVquater x-Cex|>THe时,判断MVquater所指向位置在Ce的左边还是右边。
若是左边,则通过下面公式计算MVDx
MVDx=Cex-THe+(MVquater x-(Cex-THe))/2-MVPx,
MVDy=(MVquater y-Cey)/2
若是右边,则通过下面公式计算MVDx
MVDx=Cex+THe+(MVquater x-(Cex+THe))/2-MVPx,
MVDy=(MVquater y-Cey)/2
否则,当|MVquater y-Cey|>THe时,判断MVquater所指向位置在Ce的上边还是下边。
若是上边,则通过下面公式计算MVDy
MVDy=Cey-THe+(MVquater y-(Cey-THe))/2-MVPy,
MVDx=(MVquater x-Cex)/2
若是下边,则通过下面公式计算MVDy
MVDy=Cey+THe+(MVquater y-(Cey+THe))/2-MVPy,
MVDx=(MVquater x-Cex)/2
415、从位于所述m1对应的搜索区域内的1/8像素点中获取目标1/8像素点,确定所述目标1/8像素点的位置为所述匹配块的位置。
具体的,可通过下面公式计算所述匹配块相对于搜索起点的运动矢量MVD。
MVDx=MVeightx-MVPx,MVDy=MVeighty-MVPy
416、获取运动矢量信息和预测残差信号。
其中,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差。
417、将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流。
本发明实施例中,根据所述当前图像获取所述当前图像的运动矢量精度。实际应用中,有多种方法根据所述当前图像获取所述当前图像的运动矢量精度。
可选的,在本发明的一些可能的实施方式中,根据所述当前图像获取所述当前图像的运动矢量精度包括:获取所述当前图像的量化参数;获取所述当前图像的分辨率中的宽度值;根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。其中,所述预置策略可以是查表法,或者是阈值法,或者是利用公式计算出决策因子,根据决策因子与预设值比较的结果来选择当前图像的运动矢量精度,或者是其他策略,在此不作限制。
具体举例来说,所述预置策略为查表法。视频编码装置内预存有如下表1,其中,表1中第一行表示所述当前图像的量化参数的值所在范围,第一列表示所述当前图像的分辨率中的宽度值的所在范围。获取到获取所述当前图像的分辨率中的宽度值和所述当前图像的量化参数后,在表1中查找当前图像的运动矢量精度。
表1
Figure BDA0000752433110000321
Figure BDA0000752433110000331
可选的,在本发明的一些可能的实施方式中,由于运动的连续性,还可根据已编码图像集合和当前图像获取到该当前图像的内容特性,进而根据该内容特性来确定当前图像的运动矢量精度。其中,所述已编码图像集合包括至少一个已编码图像。已编码图像集合中的各已编码图像可以是视频序列中与该当前图像相邻的已编码图像,也可以是与该当前图像相隔至少一个图像的已编码图像,在此不作限制。
进一步,可选的,在本发明的一些可能的实施方式中,根据所述当前图像和所述已编码图像集合获取所述当前图像的运动矢量精度包括:
S10、获取所述当前图像的量化参数以及已编码图像集合。
S11、获取所述已编码图像集合中各已编码图像的编码信息。
本实施例中,所述已编码图像集合包括至少一个已编码图像。优选的,所述已编码图像集合中仅有一个元素,该元素为与所述当前图像时间上相邻的已编码图像。由于与当前图像时间上相邻的已编码图像与该当前图像的内容特性较相似,采用该已编码图像来获取当前图像的运动矢量精度能够让该当前图像的运动矢量精度更加符合该当前图像的内容特性,而且,所述已编码图像集合仅包括一个元素,能够减少计算量。
所述编码信息包括所述已编码图像中各编码块的运动矢量差值以及所述已编码图像中各编码块所包含的像素点个数,其中,所述编码块的运动矢量差值用于指示所述编码块为当前块时的所述运动矢量信息。也即所述编码块为当前块时,所述编码块的运动矢量差值为该编码块的匹配块相对于该编码块的参考图像上的搜索起点的运动矢量。
S12、计算所述已编码图像集合中每个已编码图像的运动剧烈程度。
其中,所述已编码图像的运动剧烈程度为所述已编码图像中各编码块的第一数值的加权平均值,所述编码块的第一数值为所述编码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述编码块所包含的像素点个数的乘积。
具体的,以M表示所述已编码图像的运动剧烈程度,以mvdx表示所述编码块的运动矢量差值的水平分量,以mvdy表示所述编码块的运动矢量差值的竖直分量,以pusize表示所述编码块所包含的像素点个数,则,
Figure BDA0000752433110000341
S13、将所述已编码图像集合中各已编码图像的运动剧烈程度的加权平均值作为所述已编码图像集合的运动剧烈程度。
具体的,各已编码图像的运动剧烈程度的加权值可以相同,也可以不同,在此不作限制。
S14、根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
所述预置策略可以是查表法,或者是阈值法,或者是利用公式计算出决策因子,根据决策因子与预设值比较的结果来选择当前图像的运动矢量精度,或者是其他策略,在此不作限制。
例如,所述预置策略为查表法。视频编码装置内预存有如下表2,其中,表2中第一行表示所述当前图像的量化参数的值所在范围,第一列表示所述已编码图像集合的运动剧烈程度的值所在范围。获取到所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数后,在表2中查找当前图像的运动矢量精度。
表2
Figure BDA0000752433110000342
Figure BDA0000752433110000351
进一步,可选的,在本发明的一些可能的实施方式中,所述根据所述当前图像和已编码图像集合获取所述当前图像的运动矢量精度还包括:
S15、获取参考参数。
所述参考参数包括所述当前图像的纹理复杂度、所述已编码图像集合的纹理复杂度和所述已编码图像集合的图像间噪声中的一项,或者包括所述当前图像的纹理复杂度和所述已编码图像集合的纹理复杂度中的一项,以及所述已编码图像集合的图像间噪声。
其中,当所述参考参数包括所述当前图像的纹理复杂度时,所述获取参考参数包括:
获取所述当前图像中各像素点的像素值;
计算所述当前图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述当前图像的纹理复杂度。
具体的,以A表示所述当前图像的纹理复杂度,以sx,y表示所述当前图像中的像素点的像素值,其中x,y为该像素点的坐标,则,
Figure BDA0000752433110000352
其中,当所述参考参数包括所述已编码图像集合的纹理复杂度时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的像素值;
计算所述已编码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已编码图像的纹理复杂度;
将所述已编码图像集合中各已编码图像的纹理复杂度的加权平均值作为所述已编码图像集合的纹理复杂度。
具体的,以Bi表示第i个所述已编码图像的纹理复杂度,以sx,y表示所述编码图像中的像素点的像素值,其中x,y为该像素点的坐标,以B表示所述已编码图像集合的纹理复杂度,则,
Figure BDA0000752433110000353
其中,当所述参考参数包括所述已编码图像集合的图像间噪声时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的预测误差;
计算所述各编码图像的第二平均值,所述第二平均值为所述编码图像的各像素点的预测误差绝对值的平均值;
将所述已编码图像集合中各已编码图像的第二平均值的加权平均值作为所述已编码图像集合的图像间噪声。
具体的,以Ni表示第i个所述已编码图像的预测误差,以sx,y表示所述编码图像中的像素点的原始像素值,s′x+u,y+v表示所述编码图像中相应位置上像素点的预测像素值,其中x,y为该像素点的坐标,以N表示所述已编码图像集合的纹理复杂度,则,
Figure BDA0000752433110000361
所述步骤S14具体为根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述参考参数按预置策略确定所述当前图像的运动矢量精度。
其中,预置策略有多种,下面对其中的几种进行举例描述:
方法一:
S21、根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数确定所述当前图像的初始运动矢量精度。
其中,获取所述当前图像的初始运动矢量精度的方法可参考所述步骤S14中举例所描述的查找所述表1的查表法。
S22、获取运动矢量精度集合以及所述运动矢量精度集合中各元素的索引。
具体的,本实施例中,运动矢量精度集合为{1/2,(0,4),(0,8),1/4,(2,4),(2,8),(4,8),1/8}。各运动矢量精度集合中的各运动矢量精度的索引值如表3所示。
表3
Figure BDA0000752433110000362
S23、计算第一比值RN,所述第一比值RN为当前图像的预测误差所消耗的比特BN与所述已编码图像集合的预测误差所消耗的比特BF的比值。
S24、计算第二比值RMVD,所述第二比值RMVD为当前图像的运动矢量差值MVD所消耗的比特第二比值BMVD与所述已编码图像集合的预测误差所消耗的比特BF的比值。
S25、根据RN和RMVD获取调整步长Offset。
其中,Offset为-1≤Offset≤3内的整数;根据以下公式获取Offset,其中,式中
Figure BDA0000752433110000372
表示向下取整函数。
Offset=F1-F2
Figure BDA0000752433110000371
S26、根据调整步长Offset对所述初始运动矢量精度进行调整。
其中,当Offset值为-1时,将索引值加1;当Offset值为3时,将索引值减1;当Offset值为0,1,2时,索引值不变。
方法二:
S31、根据所述当前图像的纹理复杂度或者所述已编码图像集合的纹理复杂度A、所述已编码图像集合的图像间噪声N以及所述已编码图像集合的运动剧烈程度M计算决策因子F。
具体的,F=12M+7N-5A。当然,M、N、A的参数也可以是其他,在此不作限制。
实际应用中,在计算决策因子F时,也可以不采用所述已编码图像集合的图像间噪声N,即只根据所述当前图像的纹理复杂度或者所述已编码图像集合的纹理复杂度A以及所述已编码图像集合的运动剧烈程度M计算决策因子F。
具体的,F=12M-5A。当然,M、A的参数也可以是其他,在此不作限制。
S32、根据所述当前图像的量化参数QP获取阈值Th0和Th1
其中,可根据以下公式计算阈值Th0和Th1
Th0=a0QP2+b0QP+c0
Th1=a1QP2+b1QP+c1
具体的,式中系数a0,a1,b0,b1,c0,c1分别是-0.02,0.57,16,-0.03,0.6,38;当然,式中系数也可以为其他数值,在此不作限制。
S33、将F与阈值Th0和Th1进行比较得到MVR1
具体的,可根据以下公式获取MVR1
Figure BDA0000752433110000381
S34、统计所述已编码图像集合中运动矢量差值MVD的绝对值的分布情况。
其中,分别统计运动矢量差值的水平分量mvdx的绝对值和运动矢量差值的竖直分量mvdy的绝对值在以下五个区间这些区间的分布概率得到:
Figure BDA0000752433110000382
S35、利用如下公式获得当前图像的运动矢量精度MVR。
Figure BDA0000752433110000383
上面对本发明实施例的视频编码方法进行了描述。下面介绍本发明实施例提供的视频解码方法,本发明实施例提供的视频解码方法的执行主体是视频解码装置,其中,该视频解码装置可以是任何需要输出、播放视频的装置,如手机,笔记本电脑,平板电脑,个人电脑等设备。
参见图5,图5为本发明的一个实施例提供的一种视频编码方法的流程示意图。如图5所示,本发明的一个实施例提供的一种视频编码方法可包括以下内容:
501、获取当前图像以及所述当前图像的运动矢量精度。
502、获取所述目前块的运动矢量信息、预测残差信号,以及所述目前块的参考图像、所述参考图像中的搜索起点。
其中,步骤501和步骤502之间没有必然的执行先后顺序,例如步骤501可先于或晚于步骤502执行,或者步骤501和步骤502也可同步执行,或者步骤501和步骤502也可穿插执行。
视频解码装置接收到视频码流后,对该视频码流进行解码,以还原原始视频序列中的各视频图像。本实施例中,当前图像为当前待解码的图像图像。在对当前图像解码时,通过依次对当前图像中的每一个图像块进行重建来获得该当前图像的重建像素值,当前待解码的图像块称为目前块。其中,视频码流中包含目前块的参考图像的信息、所述运动矢量信息以及所述预测残差信号。
其中,获取所述目前块的参考图像时,通过从视频码流中提取出所述参考图像的信息,根据该信息查找到该信息所指示的参考图像。例如,该参考图像的信息可以是参考图像的索引,在此不作限制。
其中,搜索起点在参考图像中的位置用于指示所述目前块在参考图像中的预测匹配块的位置。运动矢量信息用于指示所述目前块在参考图像中的匹配块相对于预测匹配块的搜索步数和搜索方向。运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位,其中所述搜索步长集合用于指示所述搜索步数的步长的信息。具体的,运动矢量信息中的搜索步数中各搜索步的步长为所述搜索步长集合中的最小元素。所述预测残差信号用于指示所述当前块和所述匹配块之间的残差。
获取所述参考图像中的搜索起点的方法有多种。例如,视频码流中还包含有搜索起点的信息。视频解码装置通过从视频码流中提取出所述搜索起点的信息,根据该信息查找到该信息所指示的搜索起点。或者,在编码端和解码端统一使用相同的方法计算当前图像在参考图像中的搜索起点。这样,视频解码装置所接收到的视频码流中没有搜索起点的信息,而是由视频解码装置自行计算获取。
获取所述运动矢量精度的方法有多种。例如,视频码流中还包含有运动矢量精度的信息。视频解码装置接收到视频码流后,通过从视频码流中读取出所述运动矢量精度的信息,根据该信息确定运动矢量精度。其中,该运动矢量精度的信息可以是运动矢量精度的索引,或者是运动矢量精度的数值,在此不作限制。或者,在编码端和解码端统一使用相同的方法计算当前图像的运动矢量精度。这样,视频解码装置所接收到的视频码流中没有运动矢量精度的信息,而是由视频解码装置自行计算获取。
本实施例中,运动矢量精度可以是单一运动矢量精度,或者,优选的,也可以是分阶运动矢量精度。当运动矢量精度为单一运动矢量时,搜索步长集合为{1/2x},其中x为正整数。也即搜索步长集合中仅包括一个搜索步长,该搜索步长为1/2x像素单位。例如,该搜索步长可以为1/2像素单位、1/4像素单位、1/8像素单位或者1/16像素单位等等,在此不做限制。
当运动矢量精度为分阶运动矢量精度时,搜索步长集合为{yIy=1/2x,x位正整数}。也即搜索步长集合中包括至少一个搜索步长,各搜索步长的取值为=1/2x,也即各搜索步长为1/2x像素单位,其中不同的搜索步长对应的x的取值不同。运动矢量精度还包括阈值集合,该阈值集合包括至少一个阈值。其中,各阈值分别用于指示参考图像中的一个搜索区域。运动矢量精度中的搜索步长集合中的各搜索步长与阈值集合中的各阈值一一对应,每个阈值所指示的搜索区域内以该阈值所对应的搜索步长作为搜索步长。
503、根据所述参考图像的信息、所述搜索起点的信息、所述运动矢量信息、所述当前图像的运动矢量精度的信息查找所述目前块的匹配块。
由于运动矢量信息包含有匹配块相对于搜索起点的搜索步数和搜索方向,而当前图像的运动矢量精度的信息包含有该搜索步数所对应的搜索步长,因此可以在参考图像上以搜索起点为起始点,根据运动矢量信息以及当前图像的运动矢量精度的信息查找到目前块的匹配块。
在根据运动矢量信息以及当前图像的运动矢量精度的信息查找到目前块的匹配块时,运动矢量精度为单一运动矢量精度还是分阶运动矢量精度时分别对应的算法并不相同。例如,当运动矢量精度为单一运动矢量精度时,可通过以下公式来计算出匹配块的运动矢量,其中,MVR为运动矢量精度。
Figure BDA0000752433110000411
504、根据所述匹配块和所述预测残差信号获取所述目前块的重建像素值。
预测残差信号为匹配块上各像素点的像素值与目前块上各像素点的像素值的残差,因此,将匹配块上各像素点的像素值分别与预测残差信号中对应的像素点的像素值相加,即可得到目前块的重建像素值。
本申请的发明人发现,对不同的内容特性的视频序列,自适应地选择该视频序列中的视频图像的运动矢量精度更利于该视频图像的编码,例如,对应运动缓慢、纹理细节少的视频图像,在参考图像中搜索匹配块时,采用较小精度的运动矢量相比于采用较大精度的运动矢量,可以节约对运动矢量编码所需的比特,同时减少运动估计过程中运动搜索的步骤以及对参考图像进行内插的计算量,节省编码和解码时间;对于运动剧烈、纹理复杂的视频图像,在参考图像中搜索匹配块时,采用较小精度的运动矢量可比采用较大精度的运动矢量得到与当前块更加相似的匹配块,减小预测残差,提高编码效率;基于上述发现,本发明实施例中,在编码端通过当前图像和已编码图像集合获取当前图像的内容特性,进而确定与该当前图像的内容特性相符合的运动矢量精度;这样,在解码端搜索匹配块时先获取当前图像的运动矢量精度和运动矢量信息,根据该运动矢量精度和运动矢量信息来搜索匹配块。
可选的,在本发明的一些可能的实施方式中,当前图像的运动矢量精度为分阶运动矢量精度,也即所述搜索步长集合为{yIy=1/2x,x为正整数};所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值。在步骤503之前,还包括:根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域。其中,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应。其中,当阈值集合包括至少两个元素时,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
其中,搜索步长集合的取值有多可能。例如,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16},在此不作限制。
其中,阈值所对应的搜索区域的形状有多种。下面以搜索区域的形状为正方形进行举例描述。
搜索步长集合为{y1,y2},阈值集合为{m1,m2},其中y1<y2,m1<m2,y1与m2对应,y2与m1对应,其中,m1为2的正整数倍或0,所述m2为4的正整数倍。所述根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域包括:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
为方便理解,下面以y1=1/8,y2=1/4,m1=2,m2=4进行举例描述。
请参阅图2和图3。如图2所示,图中的圆块为1/2像素点,正方块为1/4像素点,三角块为1/8像素点。所述搜索起点(图中标识为阴影块)位于1/2像素点上,那么:
第一正方形(图中标记为P1)为:以搜索起点为中心,2*2*最小像素单元(也即1/8像素单位)=1/2像素单位为边长。
第二正方形(图中标记为P2)为:以搜索起点为中心,2*4*最小像素单元(也即1/8像素单位)=1像素单位为边长。
m1对应的搜索区域为第一正方形,在该搜索区域内搜索时采用的搜索步长为1/8像素单位。m2对应的搜索区域为第一正方形和第二正方形之间的区域,在该搜索区域内搜索时采用的搜索步长为1/4像素单位。
如图3所示,图中的圆块为1/2像素点,正方块为1/4像素点,三角块为1/8像素点。所述搜索起点(图中标识为阴影块)位于1/8像素点上,那么:
第三正方形(图中标记为P3)为:以距离搜索起点最近的1/4像素点为中心,2*2*最小像素单元(也即1/8像素单位)=1/2像素单位为边长。
第四正方形(图中标记为P4)为:以距离搜索起点最近的1/2像素点为中心,2*4*最小像素单元(也即1/8像素单位)=1像素单位为边长。
m1对应的搜索区域为第三正方形,在该搜索区域内搜索时采用的搜索步长为1/8像素单位。m2对应的搜索区域为第三正方形和第四正方形之间的区域,在该搜索区域内搜索时采用的搜索步长为1/4像素单位。
其中,距离搜索起点最近的y2像素点和y3像素点分别有至少一个,可取其中任意一个y2像素点和y3像素点分别作为第三正方形P3和第四正方形P4的中心。优选的,取位于所述搜索起点的同一侧的y2像素点和y3像素点分别作为第三正方形P3和第四正方形P4的中心,以避免第三正方形P3不能全部位于第四正方形P4内。
上面实施例中以搜索区域的形状为正方形进行了举例描述。实际应用中,该搜索区域的形状还可以是圆形、正六边形或者其他形状,在此不作限制。
本实施例中,由于运动矢量精度为分阶运动矢量精度,也即对不同的搜索区域采用不同的搜索步长。但视频解码装置并不确定编码端中对当前块进行编码时,在当前块的参考图像上根据搜索起点搜索匹配块时,是否采用了该搜索区域内的搜索步长,还是仅仅采用了默认的最大搜索步长,也即一个像素单位。也即视频解码装置要获取所接收到的运动矢量信息中的搜索步数中各搜索步所对应的搜索步长。
因此,视频解码装置需首先判断编码端在搜索匹配块时,是否曾在运动矢量精度所划分出的搜索区域内进行搜索。本实施例中,通过确定参照搜索区域以及临时点来进行判断,下面进行具体描述。
进一步,可选的,在本发明的一些可能的实施方式中,步骤503根据所述参考图像、所述搜索起点、所述运动矢量信息、所述当前图像的运动矢量精度查找所述匹配块包括:
S1、确定参照搜索区域。
其中,所述参照搜索区域的中心Ce位于所述m1对应的搜索区域的中心Ce1与所述m2对应的搜索区域的中心Ce2之间,且Ce=f1(Ce1,Ce2)。具体举例来说,中心Ce的坐标为(Cex,Cey),中心Ce1的坐标为(Ce1x,Ce1y),中心Ce2的坐标为(Ce2x,Ce2y),那么Cex=(Ce1x+Ce2x)/2,Cey=(Ce1y+Ce2y)/2。
其中,所述参照搜索区域的边长L大于所述m1对应的搜索区域的边长L1且小于所述m2对应的搜索区域的边长L2,且L=f2(L1,L2),f1(x1,x2)=f2(x1,x2),也即根据中心Ce1和中心Ce2计算中心Ce所用的计算规则,与根据边长L1和边长L2计算边长L所用的计算规则一样。具体举例来说,当Cex=(Ce1x+Ce2x)/2,Cey=(Ce1y+Ce2y)/2时,L=(L1+L2)/2。
S2、确定临时点。
所述临时点相对所述搜索起点的运动矢量为所述运动矢量信息中的搜索步数和搜索方向,搜索步长为所述搜索步长集合中的最小元素;
S3、当所述临时点位于所述参照搜索区域外时,确定第一步数、第二步数和第三步数。
所述搜索步数为所述第一步数、第二步数和第三步数的和;其中所述第一步数实际对应的搜索步长为y1,所述第二步数实际对应的搜索步长为y2,所述第三步数实际对应的搜索步长为y3,其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
S4、当所述临时点位于所述参照搜索区域内时,执行以下步骤:
S5、当所述临时点位于所述m1对应的搜索区域外时,确定第三步数和第四步数。
其中,所述搜索步数为所述第三步数和所述第四步数的和;其中,所述第三步数实际对应的搜索步长为y1,所述四步数实际对应的搜索步长为y2。
S6、当所述临时点位于所述m1对应的搜索区域内时,确定所述搜索步数实际对应的搜索步长为y1。
确定运动矢量信息终的搜索步数实际对应的搜索步长后,即可根据该搜搜步数、搜索步长以及搜索方向确定匹配块的位置。
为便于更好的理解和实施本发明实施例的上述方案,下面通过一些具体应用场景进行举例说明。
请参见图6,图6为本发明的视频解码方法的另一个实施例的流程示意图。本实施例中,视频解码方法包括:
601、获取当前图像以及所述当前图像的运动矢量精度。
其中,所述运动矢量精度具体包括搜索步长集合{1/8,1/4},以及阈值集合{m1,m2}。
602、获取所述目前块的运动矢量信息、预测残差信号,以及所述目前块的参考图像、所述参考图像中的搜索起点。
603、判断所述搜索起点是否位于整像素点或者1/2像素点上。
若是,则执行步骤604。
若否,则执行步骤605。
604、将第一正方形内的区域作为所述m1对应的搜索区域;将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域。
其中,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形。所述最小像素单元为所述搜索步长集合中的最小元素。
为描述方便,设运动矢量Ce1(Ce1x,Ce1y)指向m1对应的搜索区域的中心,运动矢量Ce2(Ce2x,Ce2y)指向m2对应的搜索区域的中心。
605、将第三正方形内的区域作为所述m1对应的搜索区域,将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域。
其中,所述第三正方形为以距离所述搜索起点最近的1/4像素点为中心,2m1*最小像素单元为边长的正方形;所述第四正方形为以距离所述搜索起点最近的1/2像素点为中心,2m2*最小像素单元为边长的正方形;其中。所述最小像素单元为所述搜索步长集合中的最小元素。
为描述方便,设运动矢量Ce1(Ce1x,Ce1y)指向第三正方形的中心,也即指向m1对应的搜索区域的中心,运动矢量Ce2(Ce2x,Ce2y)指向第四正方形的中心,也即指向m2对应的搜索区域的中心。
具体的,可通过公式(1)计算Ce1(Ce1x,Ce1y),通过公式(2)计算Ce2(Ce2x,Ce2y)。
Figure BDA0000752433110000461
Figure BDA0000752433110000462
其中,MVPx为当前块的MVP在水平方向上的分量,MVPy为当前块的MVP在竖直方向上的分量。
606、确定参照搜索区域。
其中,所述参照搜索区域的中心Ce位于所述m1对应的搜索区域的中心Ce1与所述m2对应的搜索区域的中心Ce2之间,且Ce=f1(Ce1,Ce2)。具体举例来说,中心Ce的坐标为(Cex,Cey),中心Ce1的坐标为(Ce1x,Ce1y),中心Ce2的坐标为(Ce2x,Ce2y),那么Cex=(Ce1x+Ce2x)/2,Cey=(Ce1y+Ce2y)/2。
其中,所述参照搜索区域的边长L大于所述m1对应的搜索区域的边长L1且小于所述m2对应的搜索区域的边长L2,且L=f2(L1,L2),f1(x1,x2)=f2(x1,x2),也即根据中心Ce1和中心Ce2计算中心Ce所用的计算规则,与根据边长L1和边长L2计算边长L所用的计算规则一样。具体举例来说,当Cex=(Ce1x+Ce2x)/2,Cey=(Ce1y+Ce2y)/2时,L=(L1+L2)/2。
607、确定临时点。
所述临时点相对所述搜索起点的运动矢量为所述运动矢量信息中的搜索步数和搜索方向,搜索步长为所述搜索步长集合中的最小元素。
具体的,设临时点的坐标为MVt(MVtx,MVty)。那么,MVtx=MVDx+MVPx,MVty=MVDy+MVPy
608、判断所述临时点是否位于所述参照搜索区域外,若是,执行步骤609,若否,则执行步骤610。
具体的,可通过公式(3)计算所述临时点是否位于所述参照搜索区域外。
|MVtx-Cex|>L或者|MVty-Cey|>L (3)
当满足公式(3)时,执行步骤609;若不满足公式(3),则执行步骤610。
609、确定第一步数、第二步数和第三步数。
其中,所述搜索步数为所述第一步数、第二步数和第三步数的和;其中所述第一步数实际对应的搜索步长为y1(也即1/8),所述第二步数实际对应的搜索步长为y2(也即1/4),所述第三步数实际对应的搜索步长为y3(也即1/2),其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
确定运动矢量信息中的搜索步数中分别对应搜索步长为y1、y2和y3的第一步数、第二步数和第三步数,即可根据临时点的运动矢量MVt计算匹配块的运动矢量MV。具体的,可通过以下步骤和公式进行计算。在下面公式中,MVx为MV在水平方向上的分量,MVy为MV在竖直方向上的分量。
当|MVtx-Cex|>L时,则判断MVt所指向位置在Ce的左边还是右边。
若是左边,则通过下面公式计算MVx
MVx=MVtx×4-(Cex-THe)×4-((Cqx-THq)-(Cex-THe))×2+(Cqx-THq),MVy=MVDy×4+Cqy
若是右边,则通过下面公式计算MVx
MVx=MVtx×4-(Cex+THe)×4-((Cqx+THq)-(Cex+THe))×2+(Cqx+THq),MVy=MVDy×4+Cqy
否则,当|MVty-Cey|>L时,则判断MVt所指向位置在Ce的上边还是下边。
若是上边,则通过下面公式计算MVy
MVy=MVty×4-(Cey-THe)×4-((Cqy-THq)-(Cey-THe))×2+(Cqy-THq),MVx=MVDx×4+Cqx
若是下边,则通过下面公式计算MVy
MVy=MVty×4-(Cey+THe)×4-((Cqy+THq)-(Cey+THe))×2+(Cqy+THq),MVx=MVDx×4+Cqy
610、判断所述临时点是否位于所述m1对应的搜索区域外,若是,执行
步骤611,若否,则执行步骤612。
具体的,可通过公式(4)计算所述临时点是否位于所述m1对应的搜索区域外。
|MVtx-Cex|>m1或者|MVty-Cey|>m1 (4)
当满足公式(4)时,执行步骤611;若不满足公式(4),则执行步骤612。
611、确定第三步数和第四步数。
其中,所述搜索步数为所述第三步数和所述第四步数的和;其中,所述第三步数实际对应的搜索步长为y1,所述四步数实际对应的搜索步长为y2。
确定运动矢量信息中的搜索步数中分别对应搜索步长为y1和y2的第三步数和所述第四步数,即可根据临时点的运动矢量MVt计算匹配块的运动矢量MV。具体的,可通过以下步骤和公式进行计算。在下面公式中,MVx为MV在水平方向上的分量,MVy为MV在竖直方向上的分量
当|MVtx-Cex|>m1时,则判断MVt所指向位置在Ce的左边还是右边。
若是左边,则通过下面公式计算MVx
MVx=MVtx×2-(Cex-THe)×2+(Cqx-THe),MVy=MVDy×2+Cey
若是左边,则通过下面公式计算MVx
MVx=MVtx×2-(Cex+THe)×2+(Cqx+THe),MVy=MVDy×2+Cey
否则,当|MVty-Cey|>m1时,则判断MVt所指向位置在Ce的左边还是右边。
若是上边,则通过下面公式计算MVy
MVy=MVty×2-(Cey-THe)×2+(Cqy-THe),MVx=MVDx×2+Cex
若是下边,则通过下面公式计算MVy
MVy=MVty×2-(Cey+THe)×2+(Cqy+THe),MVx=MVDx×2+Cex
612、确定所述搜索步数实际对应的搜索步长为y1。
那么,可根据下面公式直接计算匹配块的运动矢量MV。
MVx=MVDx+MVPx,MVy=MVDy+MVPy
613、根据所述匹配块和所述预测残差信号获取所述目前块的重建像素值。
获取到运动匹配块的运动矢量后,可根据该运动矢量从参考帧中确定匹配块的位置,并获取匹配块的各像素点的像素值,进而将匹配块上各像素点的像素值分别与预测残差信号中对应的像素点的像素值相加,即可得到目前块的重建像素值。
本发明实施例中,需获取所述当前图像的运动矢量精度包括。实际应用中,有多种方法获取所述当前图像的运动矢量精度包括。例如,视频解码装置可采用预设方法自行计算当前图像的运动矢量精度,其中,视频编码装置也采用该预设方法来计算当前图像的运动矢量精度,以保证编码端和解码端所采用的运动矢量精度一致。
可选的,在本发明的一些可能的实施方式中,获取所述当前图像的运动矢量精度包括:获取所述当前图像的量化参数;获取所述当前图像的分辨率中的宽度值;根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。其中,所述预置策略可以是查表法,或者是阈值法,或者是利用公式计算出决策因子,根据决策因子与预设值比较的结果来选择当前图像的运动矢量精度,或者是其他策略,在此不作限制。
具体举例来说,所述预置策略为查表法。视频编码装置内预存有如上表1,其中,表1中第一行表示所述当前图像的量化参数的值所在范围,第一列表示所述当前图像的分辨率中的宽度值的所在范围。获取到获取所述当前图像的分辨率中的宽度值和所述当前图像的量化参数后,在表1中查找当前图像的运动矢量精度。
可选的,在本发明的一些可能的实施方式中,由于运动的连续性,解码端可根据已编码图像集合和当前图像获取到该当前图像的内容特性,进而根据该内容特性来确定当前图像的运动矢量精度。其中,所述已编码图像集合包括至少一个已编码图像。已编码图像集合中的各已编码图像可以是视频序列中与该当前图像相邻的已编码图像,也可以是与该当前图像相隔至少一个图像的已编码图像,在此不作限制。所述获取所述当前图像的运动矢量精度包括:
S10、获取所述当前图像的量化参数;
S11、确定已解码图像集合,获取所述已解码图像集合中各已解码图像的解码信息。
本实施例中,所述已编码图像集合包括至少一个已编码图像。优选的,所述已编码图像集合中仅有一个元素,该元素为与所述当前图像时间上相邻的已编码图像。由于与当前图像时间上相邻的已编码图像与该当前图像的内容特性较相似,采用该已编码图像来获取当前图像的运动矢量精度能够让该当前图像的运动矢量精度更加符合该当前图像的内容特性,而且,所述已编码图像集合仅包括一个元素,能够减少计算量。
所述解码信息包括所述已解码图像中各解码块的运动矢量差值以及所述已解码图像中各解码块所包含的像素点个数,其中,所述解码块的运动矢量差值用于指示所述解码块为所述目前块时的所述运动矢量信息。也即所述解码块为当前块时,所述解码块的运动矢量差值为该解码块的匹配块相对于该解码块的参考图像上的搜索起点的运动矢量。
S12、计算所述已解码图像集合中的每个解码图像的运动剧烈程度。
其中,所述解码图像的运动剧烈程度为所述解码图像中各解码块的第一数值的平均值,所述解码块的第一数值为所述解码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述解码块所包含的像素点个数的乘积。
具体的,以M表示所述已解码图像的运动剧烈程度,以mvdx表示所述解码块的运动矢量差值的水平分量,以mvdy表示所述解码块的运动矢量差值的竖直分量,以pusize表示所述解码块所包含的像素点个数,则,
Figure BDA0000752433110000501
S13、将所述已解码图像集合中各解码图像的运动剧烈程度的加权平均值作为所述已解码图像集合的运动剧烈程度。
具体的,各已解码图像的运动剧烈程度的加权值可以相同,也可以不同,在此不作限制。
S14、根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度。
所述预置策略可以是查表法,或者是阈值法,或者是利用公式计算出决策因子,根据决策因子与预设值比较的结果来选择当前图像的运动矢量精度,或者是其他策略,在此不作限制。
例如,所述预置策略为查表法。视频解码装置内预存有如上表2,其中,表2中第一行表示所述当前图像的量化参数的值所在范围,第一列表示所述已解码图像集合的运动剧烈程度的值所在范围。获取到所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数后,在表2中查找当前图像的运动矢量精度。
进一步,可选的,在本发明的一些可能的实施方式中,所述根据所述当前图像和已编码图像集合获取所述当前图像的运动矢量精度还包括:
S15、获取所述已解码图像集合的纹理复杂度。
其中,所述获取所述已解码图像集合的纹理复杂度包括:
获取所述已解码图像集合中各已解码图像中的所有像素点的像素值;
计算所述已解码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已解码图像的纹理复杂度;
将所述已解码图像集合中各已解码图像的纹理复杂度的加权平均值作为所述已解码图像集合的纹理复杂度。
具体的,以Ai表示所述已解码图像集合中第i个已解码图像的纹理复杂度,以sx,y表示所述当前图像中的像素点的像素值,其中x,y为该像素点的坐标,以A表示所述已编码图像集合的纹理复杂度,则,
Figure BDA0000752433110000511
所述步骤S14具体为根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述已解码图像集合的纹理复杂度按预置策略确定所述当前图像的运动矢量精度。
其中,预置策略有多种,下面对其中的一种进行举例描述:
S21、根据所述已解码图像集合的纹理复杂度A以及所述已解码图像集合的运动剧烈程度M计算决策因子F。
具体的,F=12M-5A。当然,M、A的参数也可以是其他,在此不作限制。
S22、根据所述当前图像的量化参数QP获取阈值Th0和Th1
其中,可根据以下公式计算阈值Th0和Th1
Th0=a0QP2+b0QP+c0
Th1=a1QP2+b1QP+c1
具体的,式中系数a0,a1,b0,b1,c0,c1分别是-0.02,0.57,16,-0.03,0.6,38;当然,式中系数也可以为其他数值,在此不作限制。
S23、将F与阈值Th0和Th1进行比较得到MVR1
具体的,可根据以下公式获取MVR1
Figure BDA0000752433110000521
S24、统计所述已解码图像集合中运动矢量差值MVD的绝对值的分布情况。
其中,分别统计运动矢量差值的水平分量mvdx的绝对值和运动矢量差值的竖直分量mvdy的绝对值在以下五个区间这些区间的分布概率得到:
Figure BDA0000752433110000522
S25、利用如下公式获得当前图像的运动矢量精度MVR。
Figure BDA0000752433110000523
上面对本发明的视频编码方法和视频解码方法进行了描述。为便于更好的理解和实施本发明实施的上述技术方案,下面还提供用于实施上述方案的相关装置。
参见图7,本发明实施例提供的一种视频编码装置,可包括:
第一获取单元701,用于当前图像,根据所述当前图像获取所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
第二获取单元702,用于获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块;
第一确定单元703,用于确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点;
搜索单元704,用于根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块;
第三获取单元705,用于获取运动矢量信息和预测残差信号,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
写入单元706,用于将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流,所述参考图像的信息用于指示所述参考图像。
在本发明的一些可能的实施方式中,所述写入单元706还用于将所述运动矢量精度的信息和/或所述搜索起点的信息写入所述码流,其中,所述运动矢量精度的信息用于指示所述运动矢量精度,所述搜索起点的信息用于指示所述搜索起点。
在本发明的一些可能的实施方式中,所述搜索步长集合为{1/2x},x为正整数。
进一步的,在本发明的一些可能的实施方式中,所述搜索单元搜索单元704具体用于:
将所述目标整像素点作为起始点;
设置j的初始值为1,执行预置步骤:
从与所述起始点相邻的所有1/2j像素点中获取目标1/2j像素点;
确定j是否等于x,若等于,则确定所述目标1/2j像素点的位置为所述匹配块的位置;
若所述j不等于x,将所述目标1/2j像素点作为起始点,将j的值加1后重复所述预置步骤。
在本发明的一些可能的实施方式中,所述搜索步长集合为{yIy=1/2x,x为正整数};所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述视频编码装置还包括:
第二确定单元707,用于根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应;其中,
其中,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
进一步的,在本发明的一些可能的实施方式中,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述第二确定单元707具体用于:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
又进一步的,在本发明的一些可能的实施方式中,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2,m1<m2;
所述搜索单元704具体用于:
根据所述目标整像素点获取当前起始点;
获取与所述当前起始点相邻的所有y2像素点;
当所述所有y2像素点全部位于所述m2对应的搜索区域外时,确定所述当前起始点的位置为所述匹配块的位置;
当所述所有y2像素点的至少部分位于所述m2对应的搜索区域内时,执行以下步骤:
从位于所述m2对应的搜索区域内的y2像素点中获取目标y2像素点;
获取与所述目标y2像素点相邻的所有y1像素点;
当所述所有y1像素点全部位于所述m1对应的搜索区域外时,确定所述目标y2像素点的位置为所述匹配块的位置;
当所述所有y1像素点的至少部分位于所述m1对应的搜索区域内时,从位于所述m1对应的搜索区域内的y1像素点中获取目标y1像素点,确定所述目标y1像素点的位置为所述匹配块的位置。
在本发明的一些可能的实施方式中,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
在本发明的一些可能的实施方式中,所述第一获取单元701具体用于:
获取所述当前图像的量化参数以及已编码图像集合,所述已编码图像集合包括至少一个已编码图像;
获取所述已编码图像集合中各已编码图像的编码信息,所述编码信息包括所述已编码图像中各编码块的运动矢量差值以及所述已编码图像中各编码块所包含的像素点个数,其中,所述编码块的运动矢量差值用于指示所述编码块为当前块时的所述运动矢量信息;
计算所述已编码图像集合中每个已编码图像的运动剧烈程度,其中,所述编码图像的运动剧烈程度为所述编码图像中各编码块的第一数值的平均值,所述编码块的第一数值为所述编码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述编码块所包含的像素点个数的乘积;
将所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值作为所述已编码图像集合的运动剧烈程度;
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
进一步的,在本发明的一些可能的实施方式中,所述第一获取单元701还用于:
获取参考参数,所述参考参数包括所述当前图像的纹理复杂度、所述已编码图像集合的纹理复杂度和所述已编码图像集合的图像间噪声中的一项,或者包括所述当前图像的纹理复杂度和所述已编码图像集合的纹理复杂度中的一项,以及所述已编码图像集合的图像间噪声;
其中,
当所述参考参数包括所述当前图像的纹理复杂度时,所述第一获取单元701用于:
获取所述当前图像中各像素点的像素值;
计算所述当前图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述当前图像的纹理复杂度;
当所述参考参数包括所述已编码图像集合的纹理复杂度时,所述第一获取单元用于:
获取所述已编码图像集合中各已编码图像中各像素点的像素值;
计算所述已编码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已编码图像的纹理复杂度;
将所述已编码图像集合中各编码图像的纹理复杂度的加权平均值作为所述已编码图像集合的纹理复杂度;
当所述参考参数包括所述已编码图像集合的图像间噪声时,所述第一获取单元701用于:
获取所述已编码图像集合中各已编码图像中各像素点的预测误差;
计算所述各编码图像的第二平均值,所述第二平均值为所述编码图像的各像素点的预测误差绝对值的平均值;
将所述已编码图像集合中各已编码图像的第二平均值的加权平均值作为所述已编码图像集合的图像间噪声;
所述根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度具体包括:
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述参考参数按预置策略确定所述当前图像的运动矢量精度。
在本发明的一些可能的实施方式中,所述第一获取单元具体用于:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
上面对本发明的视频解码装置进行了描述,下面对本发明的视频解码装置进行描述。
参见图8,本发明实施例提供的一种视频解码装置,可包括:
第一获取单元801,用于获取当前图像以及所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
第二获取单元802,用于获取所述目前块的运动矢量信息、预测残差信号,以及所述目前块的参考图像、所述参考图像中的搜索起点;其中,所述目前块为所述当前图像中当前待解码的图像块,所述运动矢量信息包括所述目前块在所述参考图像中的匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
查找单元803,用于根据所述参考图像、所述搜索起点、所述运动矢量信息、所述当前图像的运动矢量精度查找所述目前块的匹配块;
重建单元804,用于根据所述匹配块和所述预测残差信号获取所述目前块的重建像素值。
在本发明的一些可能的实施方式中,所述搜索步长集合为{1/2x},x为正整数。
在本发明的一些可能的实施方式中,所述搜索步长集合为{yIy=1/2x,x∈N+};所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述视频编码装置还包括:
确定单元805,用于根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,不同阈值对应的搜索区域内的搜索步长分别为所述搜索步长集合中的不同元素;其中,
所述阈值集合中的各元素分别对应所述搜索步长集合中的不同元素;其中,对所述搜索步长集合中大小排序相邻的y1和y2,y1<y2,y2对应的阈值对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
进一步,在本发明的一些可能的实施方式中,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述确定单元805具体用于:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
又进一步,在本发明的一些可能的实施方式中,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2;
所述查找单元803具体用于:
确定参照搜索区域,所述参照搜索区域的中心Ce位于所述m1对应的搜索区域的中心Ce1与所述m2对应的搜索区域的中心Ce2之间,且Ce=f1(Ce1,Ce2);所述参照搜索区域的边长L大于所述m1对应的搜索区域的边长L1且小于所述m2对应的搜索区域的边长L2,且L=f2(L1,L2);f1(x1,x2)=f2(x1,x2);
确定临时点,所述临时点相对所述搜索起点的运动矢量为所述运动矢量信息中的搜索步数和搜索方向,搜索步长为所述搜索步长集合中的最小元素;
当所述临时点位于所述参照搜索区域外时,确定第一步数、第二步数和第三步数,所述搜索步数为所述第一步数、第二步数和第三步数的和;其中所述第一步数实际对应的搜索步长为y1,所述第二步数实际对应的搜索步长为y2,所述第三步数实际对应的搜索步长为y3,其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
当所述临时点位于所述参照搜索区域内时,执行以下步骤:
当所述临时点位于所述m1对应的搜索区域外时,确定第三步数和第四步数,所述搜索步数为所述第三步数和所述第四步数的和;其中,所述第三步数实际对应的搜索步长为y1,所述四步数实际对应的搜索步长为y2;
当所述临时点位于所述m1对应的搜索区域内时,确定所述搜索步数实际对应的搜索步长为y1。
在本发明的一些可能的实施方式中,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
在本发明的一些可能的实施方式中,所述第一获取单元801具体用于:
接收视频码流;
从所述视频码流中读取所述当前图像以及所述当前图像的运动矢量精度。
在本发明的一些可能的实施方式中,所述第一获取单元801具体用于:
接收视频压缩码流;
从所述视频压缩码流中读取所述当前图像;
获取所述当前图像的量化参数;
确定已解码图像集合,所述已解码图像集合包括当前的至少一个已解码图像;
获取所述已解码图像集合中各已解码图像的解码信息,所述解码信息包括所述已解码图像中各解码块的运动矢量差值以及所述已解码图像中各解码块所包含的像素点个数,其中,所述解码块的运动矢量差值用于指示所述解码块为所述目前块时的所述运动矢量信息;
计算所述已解码图像集合中的每个解码图像的运动剧烈程度,其中,所述解码图像的运动剧烈程度为所述解码图像中各解码块的第一数值的平均值,所述解码块的第一数值为所述解码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述解码块所包含的像素点个数的乘积;
将所述已解码图像集合中各解码图像的运动剧烈程度的加权平均值作为所述已解码图像集合的运动剧烈程度;
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度。
进一步的,在本发明的一些可能的实施方式中,所述第一获取单元801还用于:
获取所述已解码图像集合中各已解码图像中的所有像素点的像素值;
计算所述已解码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已解码图像的纹理复杂度;
将所述已解码图像集合中各已解码图像的纹理复杂度的加权平均值作为所述已解码图像集合的纹理复杂度;
所述根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度具体包括:
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述已解码图像集合的纹理复杂度按预置策略确定所述当前图像的运动矢量精度。
在本发明的一些可能的实施方式中,所述第一获取单元801具体用于:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
参见图9,图9是本发明的另一个实施例提供的视频编码装置900的结构框图。其中,视频编码装置900可包括:至少1个处理器901、存储器905和至少1个通信总线902。可选的,视频编码装置900还可包括:至少1个网络接口904和/或用户接口903。其中,用户接口903例如包括显示器(例如触摸屏、LCD、全息成像(Holographic)、CRT或者投影(Projector)等)、点击设备(例如鼠标或轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,存储器905可以包括只读存储器和随机存取存储器,并向处理器901提供指令和数据。存储器905中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器905存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统9051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块9052,包含各种应用程序,用于实现各种应用业务。
在本发明的实施例中,通过调用存储器905存储的程序或指令,处理器901用于获取当前图像,根据所述当前图像获取所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块;确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点;根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块;获取运动矢量信息和预测残差信号,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流,所述参考图像的信息用于指示所述参考图像。
可选的,所述处理器901还用于将所述运动矢量精度的信息和/或所述搜索起点的信息写入所述码流,其中,所述运动矢量精度的信息用于指示所述运动矢量精度,所述搜索起点的信息用于指示所述搜索起点。
可选的,所述搜索步长集合为{1/2x},x为正整数。
可选的,所述根据所述运动矢量精度从所述目标整像素点开始搜索匹配块包括:
将所述目标整像素点作为起始点;
设置j的初始值为1,执行预置步骤:
从与所述起始点相邻的所有1/2j像素点中获取目标1/2j像素点;
确定j是否等于x,若等于,则确定所述目标1/2j像素点的位置为所述匹配块的位置;
若所述j不等于x,将所述目标1/2j像素点作为起始点,将j的值加1后重复所述预置步骤。
可选的,所述搜索步长集合为{yIy=1/2x,x为正整数};
所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述处理器901还用于根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应;其中,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
可选的,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域包括:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
可选的,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2,m1<m2;
所述根据所述运动矢量精度从所述目标整像素点开始搜索匹配块包括:
根据所述目标整像素点获取当前起始点;
获取与所述当前起始点相邻的所有y2像素点;
当所述所有y2像素点全部位于所述m2对应的搜索区域外时,确定所述当前起始点的位置为所述匹配块的位置;
当所述所有y2像素点的至少部分位于所述m2对应的搜索区域内时,执行以下步骤:
从位于所述m2对应的搜索区域内的y2像素点中获取目标y2像素点;
获取与所述目标y2像素点相邻的所有y1像素点;
当所述所有y1像素点全部位于所述m1对应的搜索区域外时,确定所述目标y2像素点的位置为所述匹配块的位置;
当所述所有y1像素点的至少部分位于所述m1对应的搜索区域内时,从位于所述m1对应的搜索区域内的y1像素点中获取目标y1像素点,确定所述目标y1像素点的位置为所述匹配块的位置。
可选的,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
可选的,所述根据所述当前图像获取所述当前图像的运动矢量精度包括:
获取所述当前图像的量化参数以及已编码图像集合,所述已编码图像集合包括至少一个已编码图像;
获取所述已编码图像集合中各已编码图像的编码信息,所述编码信息包括所述已编码图像中各编码块的运动矢量差值以及所述已编码图像中各编码块所包含的像素点个数,其中,所述编码块的运动矢量差值用于指示所述编码块为当前块时的所述运动矢量信息;
计算所述已编码图像集合中每个已编码图像的运动剧烈程度,其中,所述编码图像的运动剧烈程度为所述编码图像中各编码块的第一数值的平均值,所述编码块的第一数值为所述编码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述编码块所包含的像素点个数的乘积;
将所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值作为所述已编码图像集合的运动剧烈程度;
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
可选的,所述根据所述当前图像获取所述当前图像的运动矢量精度还包括:
获取参考参数,所述参考参数包括所述当前图像的纹理复杂度、所述已编码图像集合的纹理复杂度和所述已编码图像集合的图像间噪声中的一项,或者包括所述当前图像的纹理复杂度和所述已编码图像集合的纹理复杂度中的一项,以及所述已编码图像集合的图像间噪声;
其中,
当所述参考参数包括所述当前图像的纹理复杂度时,所述获取参考参数包括:
获取所述当前图像中各像素点的像素值;
计算所述当前图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述当前图像的纹理复杂度;
当所述参考参数包括所述已编码图像集合的纹理复杂度时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的像素值;
计算所述已编码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已编码图像的纹理复杂度;
将所述已编码图像集合中各编码图像的纹理复杂度的加权平均值作为所述已编码图像集合的纹理复杂度;
当所述参考参数包括所述已编码图像集合的图像间噪声时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的预测误差;
计算所述各编码图像的第二平均值,所述第二平均值为所述编码图像的各像素点的预测误差绝对值的平均值;
将所述已编码图像集合中各已编码图像的第二平均值的加权平均值作为所述已编码图像集合的图像间噪声;
所述根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度具体包括:
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述参考参数按预置策略确定所述当前图像的运动矢量精度。
可选的,所述根据所述当前图像获取所述当前图像的运动矢量精度包括:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
参见图10,图10是本发明的另一个实施例提供的视频解码装置900的结构框图。其中,视频解码装置1000参见图10,图10是本发明的另一个实施例提供的视频解码装置1000的结构框图。其中,视频解码装置1000可包括:至少1个处理器1001、存储器1005和至少1个通信总线1002。可选的,视频解码装置1000还可包括:至少1个网络接口1004和/或用户接口1003。其中,用户接口1003例如包括显示器(例如触摸屏、LCD、全息成像(Holographic)、CRT或者投影(Projector)等)、点击设备(例如鼠标或轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,存储器1005可以包括只读存储器和随机存取存储器,并向处理器1001提供指令和数据。存储器1005中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器1005存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统10051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块10052,包含各种应用程序,用于实现各种应用业务。
在本发明的实施例中,通过调用存储器1005存储的程序或指令,处理器1001可包括:至少1个处理器1001、存储器1005和至少1个通信总线1002。可选的,视频解码装置1000还可包括:至少1个网络接口1004和/或用户接口1003。其中,用户接口1003例如包括显示器(例如触摸屏、LCD、全息成像(Holographic)、CRT或者投影(Projector)等)、点击设备(例如鼠标或轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,存储器1005可以包括只读存储器和随机存取存储器,并向处理器1001提供指令和数据。存储器1005中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器1005存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统10051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块10052,包含各种应用程序,用于实现各种应用业务。
在本发明的实施例中,通过调用存储器1005存储的程序或指令,处理器1001用于获取当前图像以及所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;获取所述目前块的运动矢量信息、预测残差信号,以及所述目前块的参考图像、所述参考图像中的搜索起点;其中,所述目前块为所述当前图像中当前待解码的图像块,所述运动矢量信息包括所述目前块在所述参考图像中的匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;根据所述参考图像、所述搜索起点、所述运动矢量信息、所述当前图像的运动矢量精度查找所述目前块的匹配块;根据所述匹配块和所述预测残差信号获取所述目前块的重建像素值。
可选的,所述搜索步长集合为{1/2x},x为正整数。
可选的,所述搜索步长集合为{yIy=1/2x,x∈N+};
可选的,所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;所述处理器还用于根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,不同阈值对应的搜索区域内的搜索步长分别为所述搜索步长集合中的不同元素;其中,
所述阈值集合中的各元素分别对应所述搜索步长集合中的不同元素;其中,对所述搜索步长集合中大小排序相邻的y1和y2,y1<y2,y2对应的阈值对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
可选的,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域包括:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
可选的,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2;
所述根据所述参考图像、所述搜索起点、所述运动矢量信息、所述当前图像的运动矢量精度查找所述匹配块包括:
确定参照搜索区域,所述参照搜索区域的中心Ce位于所述m1对应的搜索区域的中心Ce1与所述m2对应的搜索区域的中心Ce2之间,且Ce=f1(Ce1,Ce2);所述参照搜索区域的边长L大于所述m1对应的搜索区域的边长L1且小于所述m2对应的搜索区域的边长L2,且L=f2(L1,L2);f1(x1,x2)=f2(x1,x2);
确定临时点,所述临时点相对所述搜索起点的运动矢量为所述运动矢量信息中的搜索步数和搜索方向,搜索步长为所述搜索步长集合中的最小元素;
当所述临时点位于所述参照搜索区域外时,确定第一步数、第二步数和第三步数,所述搜索步数为所述第一步数、第二步数和第三步数的和;其中所述第一步数实际对应的搜索步长为y1,所述第二步数实际对应的搜索步长为y2,所述第三步数实际对应的搜索步长为y3,其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
当所述临时点位于所述参照搜索区域内时,执行以下步骤:
当所述临时点位于所述m1对应的搜索区域外时,确定第三步数和第四步数,所述搜索步数为所述第三步数和所述第四步数的和;其中,所述第三步数实际对应的搜索步长为y1,所述四步数实际对应的搜索步长为y2;
当所述临时点位于所述m1对应的搜索区域内时,确定所述搜索步数实际对应的搜索步长为y1。
可选的,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
可选的,所述获取当前图像以及所述当前图像的运动矢量精度包括:
接收视频码流;从所述视频码流中读取所述当前图像以及所述当前图像的运动矢量精度。
可选的,所述获取当前图像以及所述当前图像的运动矢量精度包括:
接收视频压缩码流;从所述视频压缩码流中读取所述当前图像;
获取所述当前图像的量化参数;确定已解码图像集合,所述已解码图像集合包括当前的至少一个已解码图像;
获取所述已解码图像集合中各已解码图像的解码信息,所述解码信息包括所述已解码图像中各解码块的运动矢量差值以及所述已解码图像中各解码块所包含的像素点个数,其中,所述解码块的运动矢量差值用于指示所述解码块为所述目前块时的所述运动矢量信息;
计算所述已解码图像集合中的每个解码图像的运动剧烈程度,其中,所述解码图像的运动剧烈程度为所述解码图像中各解码块的第一数值的平均值,所述解码块的第一数值为所述解码块的运动矢量差值的水平分量的绝对值与运动矢量差值的竖直分量的绝对值的和与所述解码块所包含的像素点个数的乘积;
将所述已解码图像集合中各解码图像的运动剧烈程度的加权平均值作为所述已解码图像集合的运动剧烈程度;
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度。
可选的,所述获取当前图像以及所述当前图像的运动矢量精度还包括:
获取所述已解码图像集合中各已解码图像中的所有像素点的像素值;
计算所述已解码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已解码图像的纹理复杂度;
将所述已解码图像集合中各已解码图像的纹理复杂度的加权平均值作为所述已解码图像集合的纹理复杂度;
所述根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略获取所述当前图像的运动矢量精度具体包括:
根据所述已解码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述已解码图像集合的纹理复杂度按预置策略确定所述当前图像的运动矢量精度。
可选的,所述获取所述当前图像的运动矢量精度包括:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (22)

1.一种视频编码方法,其特征在于,包括:
获取当前图像,根据所述当前图像获取所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
根据所述当前图像获取所述当前图像的运动矢量精度包括:
根据已编码图像集合的运动剧烈程度和所述当前图像的量化参数按照预置策略确定所述当前图像的运动矢量精度,所述已编码图像集合包括至少一个已编码图像,所述已编码图像集合的运动剧烈程度为所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值,编码图像的运动剧烈程度为所述编码图像中各编码块的第一数值的平均值,所述编码块的第一数值为所述编码块的运动矢量差值的水平分量的绝对值与所述编码块的运动矢量差值的竖直分量的绝对值的和与所述编码块所包含的像素点个数的乘积,所述编码块的运动矢量差值为当所述编码块为当前块时,所述编码块的匹配块相对于所述编码块的参考图像上的搜索起点的运动矢量;
获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块;
确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点;
根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块;
获取运动矢量信息和预测残差信号,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流,所述参考图像的信息用于指示所述参考图像。
2.根据权利要求1所述的视频编码方法,其特征在于,所述方法还包括:
将所述运动矢量精度的信息和/或所述搜索起点的信息写入所述码流,其中,所述运动矢量精度的信息用于指示所述运动矢量精度,所述搜索起点的信息用于指示所述搜索起点。
3.根据权利要求1所述的视频编码方法,其特征在于,所述搜索步长集合为{1/2x},x为正整数。
4.根据权利要求3所述的视频编码方法,其特征在于,所述根据所述运动矢量精度从所述目标整像素点开始搜索匹配块包括:
将所述目标整像素点作为起始点;
设置j的初始值为1,执行预置步骤:
从与所述起始点相邻的所有1/2j像素点中获取目标1/2j像素点;
确定j是否等于x,若等于,则确定所述目标1/2j像素点的位置为所述匹配块的位置;
若所述j不等于x,将所述目标1/2j像素点作为起始点,将j的值加1后重复所述预置步骤。
5.根据权利要求1所述的视频编码方法,其特征在于,所述搜索步长集合为{yIy=1/2x,x为正整数};
所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述方法还包括:
根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应;其中,
其中,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
6.根据权利要求5所述的视频编码方法,其特征在于,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域包括:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
7.根据权利要求5或6所述的视频编码方法,其特征在于,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2,m1<m2;
所述根据所述运动矢量精度从所述目标整像素点开始搜索匹配块包括:
根据所述目标整像素点获取当前起始点;
获取与所述当前起始点相邻的所有y2像素点;
当所述所有y2像素点全部位于所述m2对应的搜索区域外时,确定所述当前起始点的位置为所述匹配块的位置;
当所述所有y2像素点的至少部分位于所述m2对应的搜索区域内时,执行以下步骤:
从位于所述m2对应的搜索区域内的y2像素点中获取目标y2像素点;
获取与所述目标y2像素点相邻的所有y1像素点;
当所述所有y1像素点全部位于所述m1对应的搜索区域外时,确定所述目标y2像素点的位置为所述匹配块的位置;
当所述所有y1像素点的至少部分位于所述m1对应的搜索区域内时,从位于所述m1对应的搜索区域内的y1像素点中获取目标y1像素点,确定所述目标y1像素点的位置为所述匹配块的位置。
8.根据权利要求5所述的视频编码方法,其特征在于,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
9.根据权利要求1所述的视频编码方法,其特征在于,所述根据所述当前图像获取所述当前图像的运动矢量精度之前,所述方法还包括:
获取所述当前图像的量化参数以及已编码图像集合,所述已编码图像集合包括至少一个已编码图像;
获取所述已编码图像集合中各已编码图像的编码信息,所述编码信息包括所述已编码图像中各编码块的运动矢量差值以及所述已编码图像中各编码块所包含的像素点个数,其中,所述编码块的运动矢量差值用于指示所述编码块为当前块时的所述运动矢量信息;
计算所述已编码图像集合中每个已编码图像的运动剧烈程度;
将所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值作为所述已编码图像集合的运动剧烈程度。
10.根据权利要求9所述的视频编码方法,其特征在于,所述根据所述当前图像获取所述当前图像的运动矢量精度还包括:
获取参考参数,所述参考参数包括所述当前图像的纹理复杂度、所述已编码图像集合的纹理复杂度和所述已编码图像集合的图像间噪声中的一项,或者包括所述当前图像的纹理复杂度和所述已编码图像集合的纹理复杂度中的一项,以及所述已编码图像集合的图像间噪声;
其中,当所述参考参数包括所述当前图像的纹理复杂度时,所述获取参考参数包括:
获取所述当前图像中各像素点的像素值;
计算所述当前图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述当前图像的纹理复杂度;
当所述参考参数包括所述已编码图像集合的纹理复杂度时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的像素值;
计算所述已编码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已编码图像的纹理复杂度;
将所述已编码图像集合中各编码图像的纹理复杂度的加权平均值作为所述已编码图像集合的纹理复杂度;
当所述参考参数包括所述已编码图像集合的图像间噪声时,所述获取参考参数包括:
获取所述已编码图像集合中各已编码图像中各像素点的预测误差;
计算所述各编码图像的第二平均值,所述第二平均值为所述编码图像的各像素点的预测误差绝对值的平均值;
将所述已编码图像集合中各已编码图像的第二平均值的加权平均值作为所述已编码图像集合的图像间噪声;
所述根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度具体包括:
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述参考参数按预置策略确定所述当前图像的运动矢量精度。
11.根据权利要求1所述的视频编码方法,其特征在于,所述根据所述当前图像获取所述当前图像的运动矢量精度包括:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
12.一种视频编码装置,其特征在于,包括:
第一获取单元,用于当前图像,根据所述当前图像获取所述当前图像的运动矢量精度,所述运动矢量精度包括搜索步长集合,所述搜索步长集合中的各搜索步长小于一个像素单位;
所述第一获取单元具体用于:
根据已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度,所述已编码图像集合包括至少一个已编码图像,所述已编码图像集合的运动剧烈程度为所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值,编码图像的运动剧烈程度为所述编码图像中各编码块的第一数值的平均值,所述编码块的第一数值为所述编码块的运动矢量差值的水平分量的绝对值与所述编码块的运动矢量差值的竖直分量的绝对值的和与所述编码块所包含的像素点个数的乘积,所述编码块的运动矢量差值为当所述编码块为当前块时,所述编码块的匹配块相对于所述编码块的参考图像上的搜索起点的运动矢量;
第二获取单元,用于获取当前块以及所述当前块的参考图像,所述当前块为所述当前图像中当前待编码的图像块;
第一确定单元,用于确定所述参考图像中的搜索起点,从所述搜索起点开始以一个像素单位为搜索步长搜索目标整像素点;
搜索单元,用于根据所述运动矢量精度从所述目标整像素点开始搜索所述当前块的匹配块;
第三获取单元,用于获取运动矢量信息和预测残差信号,所述运动矢量信息包括所述匹配块相对所述搜索起点的搜索步数和搜索方向,所述预测残差信号用于指示所述当前块和所述匹配块之间的残差;
写入单元,用于将所述参考图像的信息、所述运动矢量信息以及所述预测残差信号写入码流,所述参考图像的信息用于指示所述参考图像。
13.根据权利要求12所述的视频编码装置,其特征在于,
所述写入单元还用于将所述运动矢量精度的信息和/或所述搜索起点的信息写入所述码流,其中,所述运动矢量精度的信息用于指示所述运动矢量精度,所述搜索起点的信息用于指示所述搜索起点。
14.根据权利要求12所述的视频编码装置,其特征在于,所述搜索步长集合为{1/2x},x为正整数。
15.根据权利要求14所述的视频编码装置,其特征在于,所述搜索单元具体用于:
将所述目标整像素点作为起始点;
设置j的初始值为1,执行预置步骤:
从与所述起始点相邻的所有1/2j像素点中获取目标1/2j像素点;
确定j是否等于x,若等于,则确定所述目标1/2j像素点的位置为所述匹配块的位置;
若所述j不等于x,将所述目标1/2j像素点作为起始点,将j的值加1后重复所述预置步骤。
16.根据权利要求12所述的视频编码装置,其特征在于,所述搜索步长集合为{yIy=1/2x,x为正整数};所述运动矢量精度还包括阈值集合,所述阈值集合包括至少一个阈值;
所述视频编码装置还包括:
第二确定单元,用于根据所述阈值集合中的每一个阈值和所述搜索起点确定所述阈值对应的搜索区域,所述搜索起点位于所述搜索区域内,各阈值对应的搜索区域内的搜索步长分别与所述搜索步长集合中的各元素一一对应;其中,
其中,对所述搜索步长集合中大小排序相邻的步长y1和y2,y1<y2,y2对应的阈值所对应的搜索区域环绕在y1对应的阈值所对应的搜索区域外,并与所述y1对应的阈值对应的搜索区域相接。
17.根据权利要求16所述的视频编码装置,其特征在于,所述阈值集合包括m1和m2,其中,所述m1为2的正整数倍或0,所述m2为4的正整数倍,m1<m2;
所述第二确定单元具体用于:
当所述搜索起点位于整像素点或者1/2像素点上时,执行以下步骤:
将第一正方形内的区域作为所述m1对应的搜索区域,所述第一正方形为以所述搜索起点为中心,2m1*最小像素单元为边长的正方形;
将所述第一正方形和第二正方形之间的区域作为所述m2对应的搜索区域,所述第二正方形为以所述搜索起点为中心,2m2*最小像素单元为边长的正方形;
当所述搜索起点不位于整像素点且不位于1/2像素点上时,执行以下步骤:
将第三正方形内的区域作为所述m1对应的搜索区域;所述第三正方形为以距离所述搜索起点最近的y2像素点为中心,2m1*最小像素单元为边长的正方形;
将所述第三正方形和第四正方形之间的区域作为所述m2对应的搜索区域,所述第四正方形为以距离所述搜索起点最近的y3像素点为中心,2m2*最小像素单元为边长的正方形;其中,当所述搜索步长集合中最大的元素为1/2i时,所述y3=1/2i-1
其中,所述最小像素单元为所述搜索步长集合中的最小元素。
18.根据权利要求16或17所述的视频编码装置,其特征在于,所述搜索步长集合中的元素包括y1,y2,y1<y2;所述阈值集合中的元素包括m1,m2,m1<m2;
所述搜索单元具体用于:
根据所述目标整像素点获取当前起始点;
获取与所述当前起始点相邻的所有y2像素点;
当所述所有y2像素点全部位于所述m2对应的搜索区域外时,确定所述当前起始点的位置为所述匹配块的位置;
当所述所有y2像素点的至少部分位于所述m2对应的搜索区域内时,执行以下步骤:
从位于所述m2对应的搜索区域内的y2像素点中获取目标y2像素点;
获取与所述目标y2像素点相邻的所有y1像素点;
当所述所有y1像素点全部位于所述m1对应的搜索区域外时,确定所述目标y2像素点的位置为所述匹配块的位置;
当所述所有y1像素点的至少部分位于所述m1对应的搜索区域内时,从位于所述m1对应的搜索区域内的y1像素点中获取目标y1像素点,确定所述目标y1像素点的位置为所述匹配块的位置。
19.根据权利要求16所述的视频编码装置,其特征在于,所述搜索步长集为{1/4,1/8},或者为{1/2,1/4,1/8},或者为{1/4,1/8,1/16},或者为{1/2,1/4,1/8,1/16}。
20.根据权利要求12所述的视频编码装置,其特征在于,所述第一获取单元还用于:
获取所述当前图像的量化参数以及已编码图像集合,所述已编码图像集合包括至少一个已编码图像;
获取所述已编码图像集合中各已编码图像的编码信息,所述编码信息包括所述已编码图像中各编码块的运动矢量差值以及所述已编码图像中各编码块所包含的像素点个数,其中,所述编码块的运动矢量差值用于指示所述编码块为当前块时的所述运动矢量信息;
计算所述已编码图像集合中每个已编码图像的运动剧烈程度;
将所述已编码图像集合中各编码图像的运动剧烈程度的加权平均值作为所述已编码图像集合的运动剧烈程度。
21.根据权利要求20所述的视频编码装置,其特征在于,所述第一获取单元还用于:
获取参考参数,所述参考参数包括所述当前图像的纹理复杂度、所述已编码图像集合的纹理复杂度和所述已编码图像集合的图像间噪声中的一项,或者包括所述当前图像的纹理复杂度和所述已编码图像集合的纹理复杂度中的一项,以及所述已编码图像集合的图像间噪声;
其中,当所述参考参数包括所述当前图像的纹理复杂度时,所述第一获取单元用于:
获取所述当前图像中各像素点的像素值;
计算所述当前图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述当前图像的纹理复杂度;
当所述参考参数包括所述已编码图像集合的纹理复杂度时,所述第一获取单元用于:
获取所述已编码图像集合中各已编码图像中各像素点的像素值;
计算所述已编码图像中各像素点与相邻的像素点的像素值之差的平方和的平均值,将所述平均值作为所述已编码图像的纹理复杂度;
将所述已编码图像集合中各编码图像的纹理复杂度的加权平均值作为所述已编码图像集合的纹理复杂度;
当所述参考参数包括所述已编码图像集合的图像间噪声时,所述第一获取单元用于:
获取所述已编码图像集合中各已编码图像中各像素点的预测误差;
计算所述各编码图像的第二平均值,所述第二平均值为所述编码图像的各像素点的预测误差绝对值的平均值;
将所述已编码图像集合中各已编码图像的第二平均值的加权平均值作为所述已编码图像集合的图像间噪声;
所述根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度具体包括:
根据所述已编码图像集合的运动剧烈程度和所述当前图像的量化参数,以及所述参考参数按预置策略确定所述当前图像的运动矢量精度。
22.根据权利要求12所述的视频编码装置,其特征在于,所述第一获取单元具体用于:
获取所述当前图像的量化参数;
获取所述当前图像的分辨率中的宽度值;
根据所述宽度值和所述当前图像的量化参数按预置策略确定所述当前图像的运动矢量精度。
CN201510391858.XA 2015-07-03 2015-07-03 视频编码和解码方法、视频编码和解码装置 Active CN106331703B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201510391858.XA CN106331703B (zh) 2015-07-03 2015-07-03 视频编码和解码方法、视频编码和解码装置
EP16820797.5A EP3306936B1 (en) 2015-07-03 2016-07-01 Video encoding and decoding method
PCT/CN2016/088157 WO2017005146A1 (zh) 2015-07-03 2016-07-01 视频编码和解码方法、视频编码和解码装置
CN201680037414.9A CN108141607A (zh) 2015-07-03 2016-07-01 视频编码和解码方法、视频编码和解码装置
US15/860,531 US10523965B2 (en) 2015-07-03 2018-01-02 Video coding method, video decoding method, video coding apparatus, and video decoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510391858.XA CN106331703B (zh) 2015-07-03 2015-07-03 视频编码和解码方法、视频编码和解码装置

Publications (2)

Publication Number Publication Date
CN106331703A CN106331703A (zh) 2017-01-11
CN106331703B true CN106331703B (zh) 2020-09-08

Family

ID=57684763

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510391858.XA Active CN106331703B (zh) 2015-07-03 2015-07-03 视频编码和解码方法、视频编码和解码装置
CN201680037414.9A Pending CN108141607A (zh) 2015-07-03 2016-07-01 视频编码和解码方法、视频编码和解码装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201680037414.9A Pending CN108141607A (zh) 2015-07-03 2016-07-01 视频编码和解码方法、视频编码和解码装置

Country Status (4)

Country Link
US (1) US10523965B2 (zh)
EP (1) EP3306936B1 (zh)
CN (2) CN106331703B (zh)
WO (1) WO2017005146A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3264768A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with adaptive motion information refinement
US10750181B2 (en) 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding
CN107087171B (zh) * 2017-05-26 2020-02-07 中国科学技术大学 Hevc整像素运动估计方法及装置
US11272207B2 (en) 2017-06-12 2022-03-08 Futurewei Technologies, Inc. Selection and signaling of motion vector (MV) precisions
CN109218733B (zh) * 2017-06-30 2022-03-29 华为技术有限公司 一种确定预测运动矢量预测的方法以及相关设备
CN109660800B (zh) * 2017-10-12 2021-03-12 北京金山云网络技术有限公司 运动估计方法、装置、电子设备及计算机可读存储介质
CN109905714B (zh) * 2017-12-08 2022-12-27 华为技术有限公司 帧间预测方法、装置及终端设备
CN110166778A (zh) * 2018-02-12 2019-08-23 华为技术有限公司 视频解码方法、视频解码器以及电子设备
CN109561315B (zh) * 2018-10-31 2020-10-02 北京金山云网络技术有限公司 一种运动估计方法、装置、电子设备及存储介质
WO2020098810A1 (en) 2018-11-17 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Merge with motion vector difference in video processing
CN111263152B (zh) 2018-11-30 2021-06-01 华为技术有限公司 视频序列的图像编解码方法和装置
CN113196771B (zh) 2018-12-21 2023-12-22 北京字节跳动网络技术有限公司 基于运动矢量精度的运动矢量范围
JP7201906B2 (ja) * 2019-01-15 2023-01-11 日本電信電話株式会社 参照領域決定装置及びプログラム
WO2020177118A1 (en) * 2019-03-07 2020-09-10 Alibaba Group Holding Limited Subsampled residual coding for video compression system
CN112954329B (zh) * 2019-03-11 2022-08-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
WO2020181540A1 (zh) * 2019-03-13 2020-09-17 北京大学 一种视频处理方法、装置、编码设备及解码设备
CN117499661A (zh) 2019-09-09 2024-02-02 北京字节跳动网络技术有限公司 高精度图像和视频编解码的系数缩放
CN112492249B (zh) * 2019-09-11 2024-04-09 瑞昱半导体股份有限公司 图像处理方法及电路
JP7323712B2 (ja) 2019-09-21 2023-08-08 北京字節跳動網絡技術有限公司 画像およびビデオコーディングのための高精度変換および量子化
CN111246208B (zh) * 2020-01-22 2022-04-08 北京字节跳动网络技术有限公司 视频处理方法、装置及电子设备
US11758151B2 (en) * 2020-12-29 2023-09-12 Qualcomm Incorporated Template matching in video coding
US11936877B2 (en) * 2021-04-12 2024-03-19 Qualcomm Incorporated Template matching based affine prediction for video coding
CN115529459B (zh) * 2022-10-10 2024-02-02 格兰菲智能科技有限公司 中心点搜索方法、装置、计算机设备、存储介质
CN116962708B (zh) * 2023-09-21 2023-12-08 北京国旺盛源智能终端科技有限公司 一种智能服务云终端数据优化传输方法及系统

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970003107B1 (ko) * 1993-04-09 1997-03-14 대우전자 주식회사 단계적인 영역분할을 통한 움직임벡터 검출방법 및 장치
JP2000308064A (ja) * 1999-04-22 2000-11-02 Mitsubishi Electric Corp 動きベクトル検出装置
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US6442203B1 (en) * 1999-11-05 2002-08-27 Demografx System and method for motion compensation and frame rate conversion
US7227896B2 (en) * 2001-10-04 2007-06-05 Sharp Laboratories Of America, Inc. Method and apparatus for global motion estimation
US7782951B2 (en) * 2004-05-13 2010-08-24 Ittiam Systems (P) Ltd. Fast motion-estimation scheme
US20060002474A1 (en) * 2004-06-26 2006-01-05 Oscar Chi-Lim Au Efficient multi-block motion estimation for video compression
CN100384216C (zh) * 2004-12-31 2008-04-23 北京中星微电子有限公司 优化搜索算法的视频数据压缩方法及装置
US20060233258A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Scalable motion estimation
US20070121728A1 (en) * 2005-05-12 2007-05-31 Kylintv, Inc. Codec for IPTV
WO2006131891A2 (en) 2005-06-10 2006-12-14 Nxp B.V. Alternating up- and down-ward motion vector
EP1960967B1 (en) * 2005-12-15 2013-03-13 Analog Devices, Inc. Motion estimation using prediction guided decimated search
CN100496130C (zh) * 2006-01-26 2009-06-03 深圳艾科创新微电子有限公司 视频快速运动估计方法
CN101267556B (zh) * 2008-03-21 2011-06-22 海信集团有限公司 快速运动估计方法及视频编解码方法
WO2009131544A1 (en) * 2008-04-25 2009-10-29 Agency For Science, Technology And Research Computed tomography method and apparatus for centre-of-rotation determination
CN101902632B (zh) * 2009-05-25 2013-03-20 华为技术有限公司 像素插值滤波方法及装置,解码方法及系统
KR101441874B1 (ko) 2009-08-21 2014-09-25 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
EP2489189A1 (en) * 2009-10-14 2012-08-22 Thomson Licensing Methods and apparatus for adaptive coding of motion information
CN101699865B (zh) * 2009-10-28 2011-06-01 山东大学 一种块运动自适应的亚像素快速搜索方法
CN101815218B (zh) * 2010-04-02 2012-02-08 北京工业大学 基于宏块特征的快速运动估计视频编码方法
US10327008B2 (en) 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
KR101479130B1 (ko) * 2010-10-18 2015-01-07 에스케이 텔레콤주식회사 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
CN102075760B (zh) * 2010-10-27 2012-11-21 无锡中星微电子有限公司 快速运动估计方法及装置
CN102790884B (zh) * 2012-07-27 2016-05-04 上海交通大学 一种基于分层运动估计的搜索方法及其实现系统
CN103414899B (zh) * 2013-08-16 2016-05-25 武汉大学 一种视频编码的运动估计方法
CN103957420B (zh) * 2014-04-30 2017-02-15 华南理工大学 一种h.264运动估计编码的全面运动估计改进算法
CN104469380B (zh) * 2014-12-25 2019-05-03 中国电子科技集团公司第四十一研究所 基于h.264/avc标准的视频图像预测搜索方法
CN104702957B (zh) * 2015-02-28 2018-10-16 北京大学 运动矢量压缩方法和装置
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US20160337662A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Storage and signaling resolutions of motion vectors
US10477237B2 (en) * 2017-06-28 2019-11-12 Futurewei Technologies, Inc. Decoder side motion vector refinement in video coding

Also Published As

Publication number Publication date
EP3306936A4 (en) 2018-06-13
US10523965B2 (en) 2019-12-31
EP3306936B1 (en) 2021-09-22
US20180131960A1 (en) 2018-05-10
CN108141607A (zh) 2018-06-08
EP3306936A1 (en) 2018-04-11
WO2017005146A1 (zh) 2017-01-12
CN106331703A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN106331703B (zh) 视频编码和解码方法、视频编码和解码装置
JP7313816B2 (ja) 画像予測方法および関連装置
CN107710761B (zh) 图像预测方法和相关设备
CN112087629B (zh) 图像预测方法、装置及计算机可读存储介质
CN108965869B (zh) 图像预测的方法及设备
CN110892719B (zh) 影像编码/解码方法及装置
CN110519600B (zh) 帧内帧间联合预测方法、装置、编解码器及存储装置
CN110832855A (zh) 利用包含追加区域的分割单位的影像解码方法以及装置
CN107852500B (zh) 运动矢量场编码方法和解码方法、编码和解码装置
TW202038611A (zh) 用於視訊寫碼之三角運動資訊
US20190335197A1 (en) Image encoding/decoding method and device, and recording medium having bitstream stored thereon
CN111801941B (zh) 用于利用自适应乘数系数进行图像滤波的方法及装置
CN109996080B (zh) 图像的预测方法、装置及编解码器
CN112543323B (zh) 一种编解码方法、装置及其设备
JP2015103970A (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、及び動画像撮影装置
WO2019172800A1 (en) Loop filter apparatus and method for video coding
CN111869208B (zh) 使用自适应乘数系数进行图像滤波的方法及装置
CN116848843A (zh) 可切换的密集运动向量场插值
CN112449181B (zh) 一种编解码方法、装置及其设备
AU2021286043A1 (en) Encoding and decoding method and apparatus, and device therefor
CN116800985A (zh) 编解码方法和装置
WO2023287966A1 (en) Position dependent reference sample smoothing
CN114391258A (zh) 基于亮度映射的视频或图像编码

Legal Events

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