帧间预测方法、图像处理装置以及计算机可读存储介质与流程

文档序号:23098165发布日期:2020-11-27 13:01阅读:280来源:国知局
帧间预测方法、图像处理装置以及计算机可读存储介质与流程

本申请涉及图像编解码技术领域,特别是涉及一种帧间预测方法、图像处理装置以及计算机可读存储介质。



背景技术:

因为视频图像的数据量比较大,在进行视频图像交互时,需要对视频图像进行编解码,视频编码的主要作用是将视频像素数据(rgb,yuv等)压缩成为视频码流,从而降低视频的数据量,实现降低传输过程中的网络带宽和减少存储空间的目的。

视频编码系统主要分为视频采集、预测、变换量化和熵编码几大部分,其中预测分为帧内预测和帧间预测两部分,分别是为了去除视频图像在空间和时间上的冗余。

在现有的预测标准中,双向预测模式需要传输两个方向的运动信息,为了进一步提升编码效率,去除对称冗余,smvd(symmetricmotionvectordifference,对称运动矢量差)预测模式被提出,smvd仅需要传输前向运动信息,而后向运动信息经过推导获得。smvd已普及至最新的视频编码标准中,例如:h.266/vvc、avs3等。



技术实现要素:

为解决上述问题,本申请提供了一种帧间预测方法、图像处理装置以及计算机可读存储介质,能够增加smvd技术的应用范围,从而获取较高的编码增益。

本申请采用的一个技术方案是:提供一种帧间预测方法,该方法包括:构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量;利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果;选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。

其中,该方法还包括:获取当前编码块的前向参考帧列表和后向参考帧列表;对于前向参考帧列表中的任一图像帧,在后向参考帧列表中查找是否有相匹配的镜像帧;若是,则执行利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测。

其中,对于前向参考帧列表中的任一图像帧,在后向参考帧列表中查找是否有相匹配的镜像帧,包括:获取当前编码块对应的当前编码帧的第一播放序号、前向参考帧列表中的任一图像帧的第二播放序号、以及后向参考帧列表中的任一图像帧的第三播放序号;判断第二播放序号与第一播放序号的差值,与第一播放序号和第三播放序号的差值,是否相等;若是,则确定对于前向参考帧列表中的任一图像帧,在后向参考帧列表中查找到相匹配的镜像帧。

其中,利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果,包括:利用前向运动矢量候选列表和后向运动矢量候选列表,确定基础运动矢量;对基础运动矢量进行修正,以得到最终运动矢量。

其中,利用前向运动矢量候选列表和后向运动矢量候选列表,确定基础运动矢量,包括:利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行双向预测;根据双向预测结果最佳时所对应的前向运动矢量差值和后向运动矢量差值,确定基础运动矢量。

其中,根据双向预测结果最佳时所对应的前向运动矢量差值和后向运动矢量差值,确定基础运动矢量,包括:根据前向运动矢量差值和后向运动矢量差值,确定运动矢量差均值;根据前向运动矢量预测值和运动矢量差均值,确定前向运动矢量,以及根据后向运动矢量预测值和运动矢量差均值,确定后向运动矢量;基于前向运动矢量和后向运动矢量,确定运动矢量组合。

其中,对基础运动矢量进行修正,以得到最终运动矢量,包括:以基础运动矢量为起始搜索点进行第一运动搜索,在搜索至每个搜索点时进行运动补偿,并根据每个搜索点对应的代价值对基础运动矢量进行第一次更新;以更新后的基础运动矢量为起始搜索点进行第二运动搜索,在搜索至每个搜索点时进行运动补偿,并根据每个搜索点对应的代价值对基础运动矢量进行第二次更新,以得到最终运动矢量;其中,第一运动搜索和第二运动搜索交替执行,第一运动搜索的复杂度大于第二运动搜索的复杂度,在第二运动搜索过程中,利用修正工具对基础运动矢量和/或所述基础运动对应的像素预测值进行修正。

其中,修正工具包括基于bio修正工具或bgc修正工具中至少一种。

其中,第一运动搜索为钻石搜索,第二运动搜索为十字搜索。

其中,预测结果包括第一运动矢量以及对应的第一像素预测值;选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果,包括:对第一运动矢量进行修正,以得到第二运动矢量;对第二运动矢量对应的像素预测值进行修正,以得到第二像素预测值;分别计算第一像素预测值和第二像素预测值对应的预测代价值;选择预测代价值最小的一个像素预测值作为当前编码块的对称运动矢量差预测结果。

其中,对第一运动矢量进行修正,以得到第二运动矢量,包括:采用dmvr工具对第一运动矢量进行修正,以得到第二运动矢量。

其中,对第二运动矢量对应的像素预测值进行修正,以得到第二像素预测值,包括:采用bio工具对第二运动矢量进行运动补偿,以得到前向像素预测值、后向像素预测值和预测值偏置项;根据前向像素预测值、后向像素预测值和预测值偏置项,确定双向像素预测值;采用bgc工具对双向像素预测值进行修正,以得到第二像素预测值。

本申请采用的另一个技术方案是:提供一种图像处理装置,该图像处理装置包括:构建模块,用于构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量;预测模块,用于利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果;选择模块,用于选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。

本申请采用的另一个技术方案是:提供一种图像处理装置,该图像处理装置包括相互连接的处理器和存储器,存储器用于存储程序数据,处理器用于执行程序数据以实现如上述的方法。

本申请采用的另一个技术方案是:提供一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有程序数据,程序数据在被处理器执行时,用以实现如上述的方法。

本申请提供的帧间预测方法包括:构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量;利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果;选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。通过上述方式,在进行smvd时,可以对更多满足条件的mvp做smvd技术,放宽了做smvd的条件限制,使得基于smvd技术的帧间预测技术更能发挥出其优势,从而获取较高的编码增益。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请提供的前向参考帧、当前帧和后向参考帧的示意图;

图2是本申请提供的帧间预测方法第一实施例的流程示意图;

图3是本申请提供的帧间预测方法第二实施例的流程示意图;

图4是步骤32一实施例的流程示意图;

图5是本申请提供的钻石搜索方式的编码块示意图;

图6是本申请提供的十字搜索方式的编码块示意图;

图7是步骤33一实施例的流程示意图;

图8是本申请提供的图像处理装置第一实施例的结构示意图;

图9是本申请提供的图像处理装置第二实施例的结构示意图;

图10是本申请提供的计算机可读存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

常用的帧间预测模式分为常规amvp模式、常规merge模式、三角模式、hash(哈希)模式和仿射模式等几大类,这些模式都是利用帧与帧之间的相关性采用不同的预测方式来获得最终的预测值。

一般来说,时间上相邻帧像素点的亮度和色度信号值比较接近,具有强相关性。帧间预测通过运动搜索等方法在参考帧中寻找与当前块最为接近的匹配块,并记录当前块与匹配块间的运动信息如运动矢量mv(motionvector)和参考帧索引。对运动信息进行编码,传输到解码端。在解码端,解码器只要通过相应句法元素解析出当前块的mv,就可找到当前块的匹配块。并将匹配块的像素值拷贝到当前块,即为当前块的帧间预测值。

在相关技术中,smvd模式只应用于双向b帧,且用于常规amvp模式中。当使用smvd模式时,码流中不需要传输后向运动矢量差mvd1,mvd1由前向运动矢量差mvd0推导出。

如图1所示,图1是本申请提供的前向参考帧、当前帧和后向参考帧的示意图。

在参考帧list1中寻找参考帧list0中的参考图像的镜像参考图像,将此镜像图像在list1中的索引做为ref_idx_l1。若不存在镜像图像,则将list1中距离当前图像最近(指的是视频播放顺序上的距离最近)的参考图像的索引做为ref_idx_l1。则后向mvd1由前向mvd0推导获得:

其中,poclist0为前向参考帧的poc值,poclist1为后向参考帧的poc值,poccur为当前帧的poc值。

具体地,smvd模式主要包括smvd启用条件的判断、smvd的基础mv(运动矢量)确认、基础mv的修正和rdo(rate–distortionoptimization,率失真优化)过程。

参阅图2,图2是本申请提供的帧间预测方法第一实施例的流程示意图,该方法包括:

步骤21:获取当前编码块的前向参考帧列表和后向参考帧列表。

其中,在一般的编码过程中,将当前编码帧划分为多个编码块,一个编码块包括至少一个像素点,例如,可以包括2*2个像素点或4*4个像素点。在双向预测中,一个编码块对应一个前向参考帧列表list0和一个后向参考帧列表list1。

步骤22:对于前向参考帧列表中的任一图像帧,在后向参考帧列表中查找是否有相匹配的镜像帧。

可以理解地,在前向参考帧列表list0和后向参考帧列表list1中,只要有任意一对参考图像帧为镜像帧,则可以确定开启smvd模式。其中,镜像帧可以通过以下的方式判断:

步骤221:获取当前编码块对应的当前编码帧的第一播放序号、前向参考帧列表中的任一图像帧的第二播放序号、以及后向参考帧列表中的任一图像帧的第三播放序号。

其中,播放序号poc(pictureordercount)用于表示图像帧的播放顺序。

步骤222:判断第二播放序号与第一播放序号的差值,与第一播放序号和第三播放序号的差值,是否相等。

具体地,以前向参考帧列表list0中的图像帧为基准(记为f(i),i代表前向参考帧列表list0中参考帧序号,f(i)(poc)就是f(i)帧的poc值),然后在后向参考帧列表list1中去循环查找每一帧(记为b(j),j代表后续参考帧列表list1中的参考帧序号,b(j)(poc)就是b(j)的poc值)。记c(poc)为当前待编码块所处于的当前帧的poc值,那么,只要满足如下条件就开启smvd技术:

f(i)(poc)-c(poc)=c(poc)-b(j)(poc)

步骤223:若是,则确定对于前向参考帧列表中的任一图像帧,在后向参考帧列表中查找到相匹配的镜像帧。

在步骤22的判断结果为是时,则执行步骤23。

步骤23:开启smvd模式。

可以理解地,一般的技术中是通过如下方式判断:

当前待编码帧的poc-(参考帧列表list0的第1个参考帧的poc)=(参考帧列表list1的第1个参考帧的poc)-当前待编码帧的poc}

这样方式只考虑到了参考帧列表中的第1个参考帧的poc值,而本实施例中不仅对前向参考帧列表list0的第一帧去在后向参考帧列表list1中去寻找满足“poc镜像”条件的帧,而是对前向参考帧列表list0的所有帧都去依次寻找满足条件的镜像帧,即:(前向参考帧列表list0的其中一参考帧的poc)-当前待编码帧的poc=当前待编码帧的poc-(后向参考帧列表list1的另一参考帧的poc),通过这样的方式,可以对更多满足条件的图像帧做smvd技术,放宽了做smvd的条件限制,使得基于smvd技术的帧间预测技术更能发挥出其优势,从而获取较高的编码增益。

参阅图3,图3是本申请提供的帧间预测方法第二实施例的流程示意图,该方法包括:

步骤31:构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量。

一般情况下,会为当前编码块建立一个mvp(运动矢量预测)候选列表,列表内有多个候选mv(每个候选mv包括前向和后向两个mv),mv候选列表构建包含空域mv、时域mv、hmvp(历史运动矢量)、和零mv等,优先级也是从前到后添加入候选列表中。其中,hmvp是指已编码块的运动矢量。

在本实施例中,mvp候选列表中至少包括hmvp,即需要对hmvp做后续的smvd技术。通过这样的方式,可以对更多满足条件的hmvp做smvd技术,放宽了做smvd的条件限制,使得基于smvd技术的帧间预测技术更能发挥出其优势,从而获取较高的编码增益。

步骤32:利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果。

参阅图4,图4是步骤32一实施例的流程示意图,步骤32可以具体包括:

步骤321:利用前向运动矢量候选列表和后向运动矢量候选列表,确定基础运动矢量。

其中,前向运动矢量候选列表可以是前向参考帧列表list0中的任意一帧的运动矢量候选列表,后向运动矢量候选列表可以是后向参考帧列表list1中的任意一帧的运动矢量候选列表。

可选地,利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行双向预测;根据双向预测结果最佳时所对应的前向运动矢量差值和后向运动矢量差值,确定基础运动矢量。

下面介绍单向预测和双向预测:

单向预测时:

遍历参考帧列表(b帧list0和list1)所有参考帧,每一个参考帧均获取最佳的mv,比较各个参考帧的最佳mv对应的代价,获取代价最小的参考帧mv作为最佳mv。

双向预测时:

1)对单向预测获取的两个列表list0和list1中各自最佳的mv,对两个mv对应的的代价进行比较,将代价较大list记为a,代价较小的list记为b;

2)对代价较小的list对应的最佳mv进行运动补偿,获取预测值pred,通过该值和当前块原始像素值org,获取lista方向预测值org_bi,作为lista方向原始像素值进行后续运动搜索;

org_bi[i]=((org[i])<<1)-pred[i]

其中,org为当前块的原始像素,pred为当前块代价小的list方向的预测值pred,org_bi作为后续运动搜索过程中另一个list方向当前块的原始像素,与运动搜索得到的mv对应的参考像素进行代价计算,i表示像素在块中位置;

3)遍历lista中所有参考帧,以单向预测lista中时最佳mv作为运动搜索起始点,进行运动搜索获取代价最小的mv,需注意,这里初始代价设为最大值,即一定会更新最佳mv;

4)对lista进行运动补偿,获取预测值pred,通过该值和当前块原始像素值org,获取listb方向预测值,作为listb方向原始像素值进行后续运动搜索,具体计算方式同上述步骤2)中的公式;

5)遍历listb中所有参考帧,以单向预测listb中时最佳mv作为运动搜索起始点,进行运动搜索获取代价最小的mv,需注意,这里初始代价为lista中最佳值,不一定会更新最佳mv;

6)对获取的两个list的最佳mv进行运动补偿,获取预测值。

其中,根据双向预测结果最佳时所对应的前向运动矢量差值和后向运动矢量差值,确定基础运动矢量,具体为:

根据前向运动矢量差值和后向运动矢量差值,确定运动矢量差均值;根据前向运动矢量预测值和运动矢量差均值,确定前向运动矢量,以及根据后向运动矢量预测值和运动矢量差均值,确定后向运动矢量;基于前向运动矢量和后向运动矢量,确定运动矢量组合。

其中,采用普通双向预测最佳时的前向mvd0与后向mvd1的加权操作后得到的mvd,由此mvd得到的前后向mv作为smvd的基础mv,然后基于该基础mv去做smvd的后续相关操作或者技术。

例如,在完成普通双向帧间预测模式后,我们获取了普通双向预测最佳时的前向mvd0和后向mvd1,则mvd=0.5*mvd0+0.5*mvd1,那么前向mv0=前向mvp0+mvd,后向mv1=后向mvp1-mvd,即由mv0和mv1形成基础mv,然后基于此时的基础mv去做mv的细化操作。

可选地,若在进行普通双向帧间预测模式中没有开启dmvr(decoder-sidemotionvectorrefinement,解码端运动矢量修正)对运动矢量进行修正,则开启dmvr工具,这样会使得最终获取到的mvd0和mvd1更加精准。

dmvr是对双向预测最佳mv的进一步修正,通过利用mv在参考帧找到对应的参考块,然后在参考块附近搜索代价(前向和后向参考块的差异sad(sumofabsoluteerror,绝对误差和))最小的预测块,进而得到最佳的一个deltamv来修正最佳mv的值。具体分以下几个步骤:

1)首先利用前后向mv分别获取前后向整像素位置的预测块;

2)然后利用前后向mv,分别在参考帧上获取当前块的前向和后向预测值,对应的前向和后向预测块分别为pre1和pre2;

3)对当前块内的每个m*n子块(如果当前块宽小于16时,m为当前块的宽,否则m为16;如果当前块高小于16时,n为当前块的高,否则n为16),每个子块都需要计算25组前向和后向预测值的sad,通过比较所有sad的大小,选取sad最小的两个预测值,此时的偏移为当前子块的整像素deltamv,每个子块都有一个deltamv。

步骤322:对基础运动矢量进行修正,以得到最终运动矢量。

其中,mv的修正,也叫做mv的细化,主要是为了提升其准确度,以便获取更加精准的mvd0进行帧间预测。

可选地,在一实施例中,步骤332可以具体包括以下两种方式:

第一种:以基础运动矢量为起始搜索点进行第一运动搜索,在搜索至每个搜索点时进行运动补偿,并根据每个搜索点对应的代价值对基础运动矢量进行第一次更新。

第二种:以更新后的基础运动矢量为起始搜索点进行第二运动搜索,在搜索至每个搜索点时进行运动补偿,并根据每个搜索点对应的代价值对基础运动矢量进行第二次更新,以得到最终运动矢量。

其中,第一运动搜索和第二运动搜索交替执行,第一运动搜索的复杂度大于第二运动搜索的复杂度,在第二运动搜索过程中,利用修正工具对基础运动矢量和/或所述基础运动对应的像素预测值进行修正。

其中,第一种方式可以具体采用钻石(菱形)搜索方式,如图5所示,图5是本申请提供的钻石搜索方式的编码块示意图,其中坐标原点表示搜索起始点,其他黑点表示各个搜索点相对于起始点的位置,搜索至每个点后都进行运动补偿(此时,关闭基于bio的预测值修正技术、关闭基于bgc的预测值修正技术),从而得到搜索至每个点的代价,并与起始点时的代价进行比较;以最小代价的点的mv对基础mv进行更新。

其中,第二种方式可以具体采用十字搜索方式,如图6所示,图6是本申请提供的十字搜索方式的编码块示意图,其中坐标原点表示搜索起始点,其他黑点表示各个搜索点相对于起始点的位置,搜索至每个点后都进行运动补偿(此时,开启基于bio的预测值修正技术、开启基于bgc的预测值修正技术),从而得到搜索至每个点的代价,并与起始点时的代价进行比较;以最小代价的点的mv对基础mv进行更新,以得到最终mv。

值得说明的是,在其他实施例中,除上述基于bio的预测值修正技术和基于bgc的预测值修正技术之外,也可以采用其他的的预测值修正技术或者运动矢量修正技术,即在采用复杂的运动搜索和简单的运动搜索交替进行时,在简单的运动搜索过程中使用预测值修正技术或者运动矢量修正技术均在本申请的保护范围内。通过上述的方式,由于仅在简单的运动搜索过程中使用预测值修正技术或者运动矢量修正技术,可以降低资源的占用率,提高预测效率。

下面对上述的bio的预测值修正技术和bgc的预测值修正技术进行介绍:

bio(bi-directionalopticalflow,双向光流)是采样点级别的运动优化,双向指的是仅在双向预测的亮度块运动补偿中使用。这里双向帧是指当前帧时间轴上的前面和后面的帧。双向光流首先利用当前块前向预测值和后向预测值及梯度信息,推导出当前块内每个4*4块的运动位移,然后结合这个梯度值来获取当前块的预测值。双向光流中光流的意思就是利用了运动矢量和梯度相乘后得到一个修正值。

bgc(bi-directionalgradientcorrection,双向预测梯度值修正)仅用于双向预测cu,设两个方向得到的单向预测值分别为pred0和pred1,修正前的双向预测值为predbi,则采用bgc修正后的双向预测值pred为:

其中,pred0表示list0方向预测值,pred1表示list1方向预测值,predbi表示list0和list1方向预测值的平均值,计算公式为(pred0+pred1)>>1,k表示修正强度,一般设为固定值3;ibgflag为0表示不进行梯度修正,为1表示进行梯度修正;ibgidx为0表示前向梯度修正,为1表示后向梯度修正;pred为修正后的预测值。

步骤33:选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。

其中,预测结果中的最终mv对应的前向mvd0就是最终的前向mvd0。基于最终的前向mvd0,则:前向mv0=前向mvd0+前向mvp0,后向mv1=(-前向mvd0)+后向mvp1,基于此时的前向mv0和后向mv1做基于sse(误差平方和)的rdo过程,从而获取到最终的率失真代价。

在完成上述步骤之后,得出的最终率失真代价会与其他帧间预测模式的率失真代价做比较,最终选择率失真代价最小的预测模式作为最终的帧间预测模式进行编码传输。

可选地,如图7所示,图7是步骤33一实施例的流程示意图,设定步骤32中的预测结果包括第一运动矢量,步骤33可以包括:

步骤331:对第一运动矢量进行修正,以得到第二运动矢量。

可选地,本步骤中可以采用dmvr工具对第一运动矢量进行修正,以得到第二运动矢量。

具体地,基于最终的前向mvd0,则:前向mv0=前向mvd0+前向mvp0,后向mv1=(-前向mvd0)+后向mvp1;此时开启dmvr工具,获取得到deltamv,则此时的前向mv0’=mv0+deltamv,后向mv1’=mv1-deltamv。

步骤332:对第二运动矢量对应的像素预测值进行修正,以得到第二像素预测值。

基于上述步骤中得到的mv0’和mv1’去做运动补偿,得到前向预测值pred0和后向预测值pred1,在获取预测值的时候开启bio,得到预测值偏置项b,从而得到双向预测值为predbi=(pred0+pred1+b+1)》1;开启bgc工具,对predbi进行修正,并将predbi修正后的预测值作为第二像素预测值。

步骤333:分别计算第一像素预测值和第二像素预测值对应的预测代价值。

步骤334:选择预测代价值最小的一个像素预测值作为当前编码块的对称运动矢量差预测结果。

区别于现有技术,本申请实施例提供的一种帧间预测方法,该方法包括:构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量;利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果;选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。通过上述方式,在进行smvd时,可以对更多满足条件的mvp做smvd技术,放宽了做smvd的条件限制,使得基于smvd技术的帧间预测技术更能发挥出其优势,从而获取较高的编码增益。

参阅图8,图8是本申请提供的图像处理装置第一实施例的结构示意图,该图像处理装置80包括构建模块81、预测模块82和选择模块83。

其中,构建模块81用于构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量;预测模块82用于利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果;选择模块83用于选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。

参阅图9,图9是本申请提供的图像处理装置第二实施例的结构示意图,该图像处理装置90包括处理器91和存储器92。

存储器92用于存储程序数据,处理器91用于执行程序数据以实现如下方法:

构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量;利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果;选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。

参阅图10,图10是本申请提供的计算机可读存储介质一实施例的结构示意图,该计算机可读存储介质100中存储有程序数据101,该程序数据在被处理器执行时,用以实现如下的方法:

构建当前编码块的运动矢量候选列表;其中,运动矢量候选列表包括前向运动矢量候选列表和后向运动矢量候选列表,前向运动矢量候选列表和后向运动矢量候选列表中至少包括历史运动矢量;利用前向运动矢量候选列表和后向运动矢量候选列表,对当前编码块进行对称运动矢量差预测,以得到至少一个预测结果;选择预测代价值最小的一个预测结果作为当前编码块的对称运动矢量差预测结果。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是根据本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1