CN116016945A - 视频编码方法及装置、视频解码方法及装置、电子设备 - Google Patents
视频编码方法及装置、视频解码方法及装置、电子设备 Download PDFInfo
- Publication number
- CN116016945A CN116016945A CN202310008312.6A CN202310008312A CN116016945A CN 116016945 A CN116016945 A CN 116016945A CN 202310008312 A CN202310008312 A CN 202310008312A CN 116016945 A CN116016945 A CN 116016945A
- Authority
- CN
- China
- Prior art keywords
- motion vector
- vector difference
- backward
- image frame
- reference image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开关于一种视频编码方法及装置、视频解码方法及装置、电子设备。视频编码方法包括:在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧;基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差;将前向运动矢量差以及后向运动矢量差的相关信息写入码流。
Description
技术领域
本公开涉及视频处理领域,尤其涉及一种视频编码方法及装置、视频解码方法及装置、电子设备。
背景技术
在视频编码中,预测编码包括帧内预测和帧间预测,相对于帧内预测,帧间预测可以获得更高的压缩比,取得更好的编码性能。对称运动矢量差(Symmetric Motion VectorDifference,缩写为SMVD)是一项帧间预测技术。通常视频中物体的运动具有时序上的连续性,SMVD利用该特点,采用对称的思想通过前向运动矢量差来导出编码块的后向运动矢量差,从而编码块只需要编码前向运动矢量差即可,这种方式节省了编码后向运动矢量差的比特消耗,从而提升的编码效率。
然而,由于SMVD本身对于应用场景有较多的限制,其编码效率也受到限制,例如,SMVD规定后向的运动矢量必须按照前向运动矢量相反的方向进行缩放,导致编码效率较低。
发明内容
本公开提供一种视频编码方法及装置、视频解码方法及装置、电子设备,以至少解决相关技术的编码效率低的问题。
根据本公开实施例的第一方面,提供一种视频编码方法,包括:在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧;基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差;将前向运动矢量差以及后向运动矢量差的相关信息写入码流。
可选地,基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选,包括:对前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选。
可选地,对前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选,包括:对前向运动矢量差的水平分量和垂直分量进行取反处理,得到取反后的水平分量和取反后的垂直分量;基于前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选。
可选地,基于前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选,包括:基于前向运动矢量差的水平分量和垂直分量,得到第一后向运动矢量差候选;基于前向运动矢量差的水平分量和取反后的垂直分量,得到第二后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和垂直分量,得到第三后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到第四后向运动矢量差候选。
可选地,从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差,包括:基于当前块在后向参考图像帧中的初始预测块和每个后向运动矢量差候选,得到每个后向运动矢量差候选对应的预测块,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的;获取每个后向运动矢量差候选对应的预测块分别与当前块的率失真代价;将最小率失真代价对应的后向运动矢量差候选作为后向参考图像帧对应的后向运动矢量差。
可选地,多个后向运动矢量差候选对应有各自的索引,其中,将前向运动矢量差以及后向运动矢量差的相关信息写入码流,包括:将前向运动矢量差以及后向运动矢量差的索引写入码流。
可选地,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧,包括:获取参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价;基于率失真代价,从参考图像帧列表中,获取当前块的前向参考图像帧和后向参考图像帧;其中,将前向运动矢量差以及后向运动矢量差的相关信息写入码流,包括:将前向参考图像帧和后向参考图像帧分别在参考图像帧列表中的索引、前向运动矢量差和后向运动矢量差的相关信息写入码流。
可选地,基于率失真代价,从参考图像帧列表中,获取当前块的前向参考图像帧和后向参考图像帧,包括:遍历参考图像帧列表中的每个参考图像帧,选择出率失真代价最小的第一预定参考图像帧作为当前块的前向参考图像帧,并选择出率失真代价最小的第二预定参考图像帧作为当前块的后向参考图像帧,其中,第一预定参考图像帧的播放顺序在当前图像帧之前,第二预定参考图像帧的播放顺序在当前图像帧之后。
可选地,前向参考图像帧对应的前向运动矢量差通过如下方式获取:获取当前块在前向参考图像帧中的初始预测块与预测块的水平偏移作为前向运动矢量差的水平分量,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的,预测块是基于所述初始预测块进行运动搜索得到的;获取当前块在前向参考图像帧中的初始预测块与预测块的垂直偏移作为前向运动矢量差的垂直分量。
根据本公开实施例的第二方面,提供一种视频解码方法,包括:从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息;基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差;基于前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。
可选地,基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差,包括:基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差。
可选地,基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差,包括:在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和垂直分量组成的情况下,基于前向运动矢量差的水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的垂直分量分别进行取反处理得到取反后的垂直分量,并基于前向运动矢量差的水平分量和取反后的垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和垂直分量组成的情况下,对前向运动矢量差的水平分量分别进行取反处理得到取反后的水平分量,并基于前向运动矢量差的取反后水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的水平分量和垂直分量分别进行取反处理,得到取反后的水平分量和取反后的垂直分量,并基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到后向运动矢量差。
可选地,在后向运动矢量差的相关信息为索引的情况下,基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差,包括:基于后向运动矢量差的索引,确定后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系;基于后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系,以及前向运动矢量差的水平分量、垂直分量,得到后向运动矢量差。
可选地,从接收到的码流中,获取当前块的前向参考图像帧和后向参考图像帧,在当前图像帧对应的参考图像帧列表中的索引,其中,当前块的前向参考图像帧和后向参考图像帧的索引是基于参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价得到的;基于前向参考图像帧和后向参考图像帧的索引,获取当前块的前向参考图像帧和后向参考图像帧;其中,基于前向运动矢量差和后向运动矢量差,对当前块进行运动补偿,包括:基于前向参考图像帧、后向参考图像帧、前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。
根据本公开实施例的第三方面,提供一种视频编码装置,包括:参考图像帧获取单元,被配置为在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧;后向运动矢量差候选获取单元,被配置为基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;后向运动矢量差获取单元,被配置为从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差;编码单元,被配置为将前向运动矢量差以及后向运动矢量差的相关信息写入码流。
可选地,后向运动矢量差候选获取单元,还被配置为对前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选。
可选地,后向运动矢量差候选获取单元,还被配置为对前向运动矢量差的水平分量和垂直分量进行取反处理,得到取反后的水平分量和取反后的垂直分量;基于前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选。
可选地,后向运动矢量差候选获取单元,还被配置为基于前向运动矢量差的水平分量和垂直分量,得到第一后向运动矢量差候选;基于前向运动矢量差的水平分量和取反后的垂直分量,得到第二后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和垂直分量,得到第三后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到第四后向运动矢量差候选。
可选地,后向运动矢量差获取单元,还被配置为基于当前块在后向参考图像帧中的初始预测块和每个后向运动矢量差候选,得到每个后向运动矢量差候选对应的预测块,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的;获取每个后向运动矢量差候选对应的预测块分别与当前块的率失真代价;将最小率失真代价对应的后向运动矢量差候选作为后向参考图像帧对应的后向运动矢量差。
可选地,多个后向运动矢量差候选对应有各自的索引,其中,编码单元,还被配置为将前向运动矢量差以及后向运动矢量差的索引写入码流。
可选地,参考图像帧获取单元,还被配置为获取参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价;基于率失真代价,从参考图像帧列表中,获取当前块的前向参考图像帧和后向参考图像帧;其中,将前向运动矢量差以及后向运动矢量差的相关信息写入码流,包括:将前向参考图像帧和后向参考图像帧分别在参考图像帧列表中的索引、前向运动矢量差和后向运动矢量差的相关信息写入码流。
可选地,参考图像帧获取单元,还被配置为遍历参考图像帧列表中的每个参考图像帧,选择出率失真代价最小的第一预定参考图像帧作为当前块的前向参考图像帧,并选择出率失真代价最小的第二预定参考图像帧作为当前块的后向参考图像帧,其中,第一预定参考图像帧的播放顺序在当前图像帧之前,第二预定参考图像帧的播放顺序在当前图像帧之后。
可选地,前向参考图像帧对应的前向运动矢量差通过如下方式获取:获取当前块在前向参考图像帧中的初始预测块与预测块的水平偏移作为前向运动矢量差的水平分量,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的,预测块是基于所述初始预测块进行运动搜索得到的;获取当前块在前向参考图像帧中的初始预测块与预测块的垂直偏移作为前向运动矢量差的垂直分量。
根据本公开实施例的第四方面,提供一种视频解码装置,包括:信息获取单元,被配置为从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息;后向运动矢量差获取单元,被配置为基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差;补偿单元,被配置为基于前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。
可选地,后向运动矢量差获取单元,还被配置为基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差。
可选地,后向运动矢量差获取单元,还被配置为在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和垂直分量组成的情况下,基于前向运动矢量差的水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的垂直分量分别进行取反处理得到取反后的垂直分量,并基于前向运动矢量差的水平分量和取反后的垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和垂直分量组成的情况下,对前向运动矢量差的水平分量分别进行取反处理得到取反后的水平分量,并基于前向运动矢量差的取反后水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的水平分量和垂直分量分别进行取反处理,得到取反后的水平分量和取反后的垂直分量,并基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到后向运动矢量差。
可选地,在后向运动矢量差的相关信息为索引的情况下,后向运动矢量差获取单元,还被配置为基于后向运动矢量差的索引,确定后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系;基于后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系,以及前向运动矢量差的水平分量、垂直分量,得到后向运动矢量差。
可选地,信息获取单元,还被配置为从接收到的码流中,获取当前块的前向参考图像帧和后向参考图像帧,在当前图像帧对应的参考图像帧列表中的索引,其中,当前块的前向参考图像帧和后向参考图像帧的索引是基于参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价得到的;基于前向参考图像帧和后向参考图像帧的索引,获取当前块的前向参考图像帧和后向参考图像帧;其中,补偿单元,还被配置为基于前向参考图像帧、后向参考图像帧、前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。
根据本公开实施例的第五方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现根据本公开的视频编码方法和/或视频解码方法。
根据本公开实施例的第六方面,提供了一种计算机可读存储介质,当计算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器执行如上根据本公开的视频编码方法和/或视频解码方法。
根据本公开实施例的第七方面,提供了一种计算机程序产品,包括计算机指令,计算机指令被处理器执行时实现根据本公开的视频编码方法和/或视频解码方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
根据本公开的视频编码方法及装置、视频解码方法及装置、电子设备,提供了多个后向运动矢量候选,从多个后向运动矢量候选中确定出后向参考图像帧对应的后向运动矢量,使得确定出的后向运动矢量差,可以帮助当前块在解码的过程中,从后向参考图像帧中找到更匹配的预测块,提高了编码效率。因此,本公开解决了相关技术的编码效率低的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是示出根据本公开的示例性实施例的视频编码方法和视频解码方法的实施场景示意图;
图2是根据一示例性实施例示出的一种视频编码方法的流程图;
图3是根据一示例性实施例示出的一种当前块与预测块的位置示意图;
图4是根据一示例性实施例示出的一种视频解码方法的流程图;
图5是根据一示例性实施例示出的一种运动矢量示意图;
图6是根据一示例性实施例示出的一种视频编码装置的框图;
图7是根据一示例性实施例示出的一种视频解码装置的框图;
图8是根据本公开实施例的一种电子设备800的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
本公开提供了一种视频编码方法和视频解码方法,能够提高视频编解码的效率,下面以视频传输场景为例进行说明。
图1是示出根据本公开的示例性实施例的视频编码方法和视频解码方法的实施场景示意图,如图1所述,该实施场景包括服务器100、用户终端110和用户终端120,其中,用户终端不限于2个,包括并不限于手机、个人计算机等设备,用户终端可以安装获取视频的摄像头,服务器可以是一个服务器,也可以是若干个服务器组成服务器集群,还可以是云计算平台或虚拟化中心。
用户终端110通过摄像头获取一段视频,并需要将该视频发送给用户终端120,在传输的过程中对该视频进行编码以及解码。具体地,对视频的每个图像帧均进行如下编码操作:在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧;基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差;将前向运动矢量差以及后向运动矢量差的相关信息写入码流,并发送给用户终端120。用户终端120接收到该码流后,从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息;基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差;基于前向运动矢量差和后向运动矢量差,对当前块进行运动补偿,从而得到当前块的像素。
需要说明的是,用户终端110和用户终端120可以独立完成该工作,也可以通过服务器100为其提供数据服务,本公开对此并不进行限定。当通过服务器100为其提供数据服务时,用户终端110通过摄像头获取一段视频,并需要将该视频发送给用户终端120,首先用户终端110将该视频上传到服务器100,在传输的过程中服务器100上的编码器会对该视频进行编码,解码器会编码后的视频进行解码,并将解码后的视频发送用户终端120。具体地,服务器100的编码器对视频的每个图像帧均进行如下编码操作:在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧;基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差;将前向运动矢量差以及后向运动矢量差的相关信息写入码流,并发送给服务器100上的解码器。解码器接收到该码流后,从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息;基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差;基于前向运动矢量差和后向运动矢量差,对当前块进行运动补偿,从而得到当前块的像素。在得到视频的所有像素后,服务器100将该像素发送给用户终端120。
下面,将参照附图详细描述根据本公开的示例性实施例的视频编码方法及装置、视频解码方法及装置。
图2是根据一示例性实施例示出的一种视频编码方法的流程图,如图2所示,视频编码方法包括以下步骤:
在步骤S201中,在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧。
具体地,若采用对称运动矢量差(Symmetric Motion Vector Difference,缩写为SMVD)模式,则当前块的前向参考图像帧和后向参考图像帧必须满足以下条件:当前块必须是双向预测,同时,选择的前向参考图像帧必须是所有前向参考图像帧中播放顺序(Picture Order Count,缩写为POC)小于当前图像帧的POC且POC距离当前图像帧最近的一个参考图像帧,同时,选择的后向参考图像帧必须是所有后向参考图像帧中POC大于当前图像帧的POC且POC距离当前图像帧最近的一个参考图像帧。
例如,从当前图像帧的参考图像帧列表中,确定当前块的前向参考图像帧和后向参考图像帧时,可以根据SMVD选取当前块的前向参考图像帧和后向参考图像帧的规则来确定,即前向参考图像帧和后向参考图像帧的POC距离当前图像帧的POC最近,且前向参考图像帧的POC小于当前图像帧的POC,后向参考图像帧的POC大于当前图像帧的POC。假设当前图像帧POC=4,参考图像帧列表中前向参考图像帧包括两帧,POC分别为{1,3},后向参考图像帧也为两帧,POC分别为{5,7}。依据SMVD选取规则,当前图像帧分别选择POC=3与POC=5的参考图像帧作为前向参考图像帧和后向参考图像帧。
需要说明的是,SMVD模式采用上述固定的选取规则,从参考图像帧列表中选择当前块的前向参考图像帧和后向参考图像帧,使得编码端无需编码参考图像帧的相关信息的码率消耗,解码端可以根据该规则自主获取当前块的前向参考图像帧和后向参考图像帧。然而在实际应用中发现,在很多情况下,尤其当视频序列存在较复杂的运动内容时,这种固定的选取规则并不能为当前块找到最优的前向参考图像帧和后向参考图像帧,由于运动具有随机性,有可能POC距离较大的参考图像帧反而是当前块更优的参考图像帧的。因此,本公开放宽对于每个编码块的前向参考图像帧和后向参考图像帧选择的限制,即对于SMVD模式,不再采用固定的选取规则,而是采用率失真代价遍历参考图像帧列表中所有参考图像帧,从中选择对应的编码块最优的前向参考图像帧与后向参考图像帧以及相应的索引,同时选择出的参考图像帧的索引需要一并写进码流中。
根据本公开的示例性实施例,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧,可以包括:获取参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价;基于率失真代价,从参考图像帧列表中,获取当前块的前向参考图像帧和后向参考图像帧。根据本实施例,通过每个参考图像帧中的预测块与当前块的率失真代价,确定出当前块对应的前向参考图像帧和后向参考图像帧,从而放宽了两个参考图像帧的选择限制。
需要说明的是,每个参考图像帧中的预测块是每个参考图像帧中与当前块像素差别最小的编码块,而获取每个参考图像帧中与当前块像素差别最小的编码块的方式,本公开并不进行限定,例如,可以通过高级运动矢量预测(Advanced Motion VectorPrediction,缩写为AMVP)获取,即利用空域和时域的运动矢量的相关性,为当前块建立了候选预测运动矢量(Motion Vector,缩写为MV)列表,编码端从其中选出最优的MV作为运动矢量的预测值(Motion Vector Prediction,缩写为MVP),并对MVP进行差分编码,也即通过运动搜索获得真正的MV,将运动矢量差进行编码,通过该运动搜索得到的真正的MV对应的编码块即预测块。再有,每个参考图像帧中的预测块与当前块的率失真代价,表示了每个预测块与当前块的失真情况,率失真代价越小代表预测块相对于当前块失真越小。需要说明的是,这里还可以采用除率失真代价以外的其他指标,只要能指示失真情况的即可。
根据本公开的示例性实施例,基于率失真代价,从参考图像帧列表中,获取当前块的前向参考图像帧和后向参考图像帧,可以包括:遍历参考图像帧列表中的每个参考图像帧,选择出率失真代价最小的第一预定参考图像帧作为当前块的前向参考图像帧,并选择出率失真代价最小的第二预定参考图像帧作为当前块的后向参考图像帧,其中,第一预定参考图像帧的播放顺序在当前图像帧之前,第二预定参考图像帧的播放顺序在当前图像帧之后。根据本实施例,通过遍历参考图像帧列表,来获取率失真代价最小的前向参考图像帧和后向参考图像帧,可以提高前向参考图像帧和后向参考图像帧的准确性,也提高了编码的准确度。
例如,仍然假设当前图像帧POC=4,参考图像帧列表中第一预定参考图像帧包括两帧,POC分别为{1,3},第二预定参考图像帧也为两帧,POC分别为{5,7}。遍历参考图像帧列表中所有参考图像帧,获取每个参考图像帧中的预测块与当前块的率失真代价,发现率失真代价最小的第一预定参考图像帧是POC=1的参考图像帧,率失真代价最小的第二预定参考图像帧是POC=7的参考图像帧,此时将PCO=1和POC=7的参考图像帧分别作为当前块的前向参考图像帧和后向参考图像帧。
返回图2,在步骤S202中,基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选。
需要说明的是,相关技术中SMVD模式下的规定是通过将前向运动矢量差(MotionVector Difference,缩写为MVD)取反来得到后向MVD。采用这种方式的前提是假定视频中的运动方式在时序上遵循按照固定方向连续运动。然而放宽了对于每个编码块的前向参考图像帧和后向参考图像帧选择的限制之后,所选取的参考图像帧的POC并不一定和当前图像帧的POC距离最小,这就可能导致当前块,前向参考图像帧中的预测块以及后向参考图像帧中的预测块,这三者的运动并不是连续的,如图3所示,当前块位于当前图像帧的正下方,而采用本公开的方式选取当前块的前向参考图像帧和后向参考图像帧,均选择了距离当前图像帧较远的参考图像帧,此时在前向参考图像帧中,经过运动估计找到的最优预测块位于该图像帧的右上角,而后向参考图像帧中,经过运动估计找到的最优的预测块位于该图像帧的左上角,这种情况下,三者的运动在时序上显然不具备连续性。因此,相关技术下SMVD模式中规定的后向MVD通过前向MVD取反得到的操作并不能很好的处理这种情况。基于此,本公开对后向MVD的导出做了优化,即基于前向参考图像帧对应的前向运动矢量差,确定出多个后向运动矢量差候选来选择,而不是单一通过前向运动矢量差进行取反来获取。
根据本公开的示例性实施例,基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选,包括:对前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选。根据本实施例,获取多个向运动矢量差候选,使得不再仅局限于取反后的水平分量和取反后的垂直分量获取单一的后向运动矢量差候选。
例如,可以对前向运动矢量差的水平分量和垂直分量进行取反处理,得到取反后的水平分量和取反后的垂直分量,通过前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量来获取多个后向运动矢量差候选。当然本公开实施例对预定处理并不局限于取反处理,也可以对水平分量和垂直分量进行其他处理,如,可以对前向运动矢量差的水平分量和垂直分量进行细微调整,保证调整后的水平分量和垂直分量仍然与原始的水平分量和垂直分量同属于一个圆的半径。
根据本公开的示例性实施例,对前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选,可以包括:对前向运动矢量差的水平分量和垂直分量进行取反处理,得到取反后的水平分量和取反后的垂直分量;基于前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选。根据本实施例,通过前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,可以获取多个向运动矢量差候选。
根据本公开的示例性实施例,基于前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选,可以包括:基于前向运动矢量差的水平分量和垂直分量,得到第一后向运动矢量差候选;基于前向运动矢量差的水平分量和取反后的垂直分量,得到第二后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和垂直分量,得到第三后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到第四后向运动矢量差候选。根据本实施例,基于前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,可以方便、快速的得到四个后向运动矢量差候选。
具体地,假设前向MVD={mvdx0,mvdy0},本实施例可以对前向MVD的水平分量和垂直分量分别进行取反组合,得到四个后向MVD候选,分别为(MVD1_0,MVD1_1,MVD1_2,MVD1_3),其中,MVD1_0={mvdx0,mvdy0},MVD1_1={mvdx0,-mvdy0},MVD1_2={-mvdx0,mvdy0},MVD1_3={-mvdx0,-mvdy0}。可见,MVD1_3即为按照对前向MVD取反的结果,但是本实施例不局限于该结果,而是从上述四个候选中选择一个最优的候选,作为后向运动矢量差。
根据本公开的示例性实施例,前向参考图像帧对应的前向运动矢量差通过如下方式获取:获取当前块在前向参考图像帧中的初始预测块与预测块的水平偏移作为前向运动矢量差的水平分量,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的,预测块是基于所述初始预测块进行运动搜索得到的;获取当前块在前向参考图像帧中的初始预测块与预测块的垂直偏移作为前向运动矢量差的垂直分量。根据本实施例,可以快速的获取到前向运动矢量差。
例如,可以通过高级运动矢量预测(Advanced Motion Vector Prediction,缩写为AMVP)获取,即利用空域和时域的运动矢量的相关性,为当前块建立了候选预测运动矢量(Motion Vector,缩写为MV)列表,编码端从其中选出最优的MV作为运动矢量的预测值(Motion Vector Prediction,缩写为MVP),并对MVP进行差分编码,也即通过运动搜索获得真正的MV,将运动矢量差进行编码,通过该运动搜索得到的真正的MV对应的编码块即预测块,MVP对应的编码块即初始预测块。
返回图2,在步骤S203中,从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差。本步骤可以获取当前块在后向参考图像帧中,每个后向运动矢量差候选对应的预测块,根据该预测块和当前块的失真情况来选择出后向参考图像帧对应的后向运动矢量差。
根据本公开的示例性实施例,从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差,可以包括:基于当前块在后向参考图像帧中的初始预测块和每个后向运动矢量差候选,得到每个后向运动矢量差候选对应的预测块,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的;获取每个后向运动矢量差候选对应的预测块分别与当前块的率失真代价;将最小率失真代价对应的后向运动矢量差候选作为后向参考图像帧对应的后向运动矢量差。根据本实施例,获取运动矢量差候选对应的预测块,并计算四个预测块与当前块的率失真代价,来确定出最优的后向运动矢量差候选作为后向参考图像帧对应的后向运动矢量差,从而提高编码的准确性。
需要说明的是,上述初始预测块可以通过高级运动向量预测(Advanced MotionVector Prediction,缩写为AMVP)方法获取,此处不展开论述。
在步骤S204中,将前向运动矢量差以及后向运动矢量差的相关信息写入码流。
根据本公开的示例性实施例,多个后向运动矢量差候选对应有各自的索引,其中,将前向运动矢量差以及后向运动矢量差的相关信息写入码流,可以包括:将前向运动矢量差以及后向运动矢量差的索引写入码流。根据本实施例,每个后向运动矢量差均对应有自己的索引,在进行编码时可以仅对后向运动矢量差的索引进行编码,无需对后向运动矢量差进行编码,减小了码率消耗,进一步提高了编码效率。
例如,仍然假设前向MVD={mvdx0,mvdy0},对前向MVD的水平分量和垂直分量分别进行取反组合,得到四个后向MVD候选,分别为(MVD1_0,MVD1_1,MVD1_2,MVD1_3),其中,MVD1_0={mvdx0,mvdy0},MVD1_1={mvdx0,-mvdy0},MVD1_2={-mvdx0,mvdy0},MVD1_3={-mvdx0,-mvdy0}。本实施例中的后向MVD候选的索引的取值范围可以为0~3,分别对应MVD1_0~MVD1_3,根据对应的索引,即可知晓选择了哪一个后向MVD候选。
根据本公开的示例性实施例,当根据参考图像帧列表中每个参考图像帧的预测块与当前块的率失真代价,确定出当前块的前向参考图像帧和后向参考图像帧的时候,将前向运动矢量差以及后向运动矢量差的相关信息写入码流,可以包括:将前向参考图像帧和后向参考图像帧分别在参考图像帧列表中的索引、前向运动矢量差和后向运动矢量差的相关信息写入码流。
图4是根据一示例性实施例示出的一种视频解码方法的流程图,如图4所示,视频解码方法包括以下步骤:
在步骤S401中,从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息。
在步骤S402中,基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差。
根据本公开的示例性实施例,基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差,包括:基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差。根据本实施例,通过前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,可以获取多个向运动矢量差候选,使得不再仅局限于取反后的水平分量和取反后的垂直分量获取单一的后向运动矢量差候选。
根据本公开的示例性实施例,基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差,包括:在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和垂直分量组成的情况下,基于前向运动矢量差的水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的垂直分量分别进行取反处理得到取反后的垂直分量,并基于前向运动矢量差的水平分量和取反后的垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和垂直分量组成的情况下,对前向运动矢量差的水平分量分别进行取反处理得到取反后的水平分量,并基于前向运动矢量差的取反后水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的水平分量和垂直分量分别进行取反处理,得到取反后的水平分量和取反后的垂直分量,并基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到后向运动矢量差。根据本实施例,通过相关信息可以知晓后向运动矢量差与前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量的关系,从而可以方便、快速的得到四个后向运动矢量差候选。
具体地,假设前向MVD={mvdx0,mvdy0},四个后向MVD候选分别为(MVD1_0,MVD1_1,MVD1_2,MVD1_3),其中,MVD1_0={mvdx0,mvdy0},MVD1_1={mvdx0,-mvdy0},MVD1_2={-mvdx0,mvdy0},MVD1_3={-mvdx0,-mvdy0}。编码端可以从上述四个候选中选择一个最优的候选,作为后向运动矢量差,并将其对应的索引写入码流,解码端根据码流中的索引可以知晓后向运动矢量差的组成,进而得到后向运动矢量差。
根据本公开的示例性实施例,在后向运动矢量差的相关信息为索引的情况下,基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差,包括:基于后向运动矢量差的索引,确定后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系;基于后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系,以及前向运动矢量差的水平分量、垂直分量,得到后向运动矢量差。根据本实施例,每个后向运动矢量差均对应有自己的索引,在进行编码时可以仅对后向运动矢量差的索引进行编码,无需对后向运动矢量差进行编码,减小了码率消耗,进一步提高了编码效率。
例如,本实施例中的后向MVD候选的索引的取值范围可以为0~3,分别对应MVD1_0~MVD1_3,根据对应的索引,即可知晓选择了哪一个后向MVD候选。
在步骤S403中,基于前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。
例如,假设前向MVD={mvdx0,mvdy0},后向MVD={mvdx1,mvdy1}={-mvdx0,-mvdy0},在得到前向运动矢量差和后向运动矢量差后,可以通过前向MVD、后向MVD、当前块到前向参考图像帧的初始预测块的前向运动矢量MVP和当前块到后向参考图像帧的初始预测块的后向运动矢量MVP,获取当前块的运动矢量。具体地,如图5所示,先通过前向MVD和当前块到前向参考图像帧的初始预测块的前向运动矢量MVP,得到当前块到前向参考图像帧的预测块的前向运动矢量(Motion Vector,缩写为MV),再通过后向MVD和当前块到后向参考图像帧的初始预测块的后向运动矢量MVP,得到当前块到后向参考图像帧的预测块的后向运动矢量MV,其中,前向MVP={mvpx0,mvpy0},后向MVP={mvpx1,mvpy1}={-mvdx0,-mvdy0},前向MV={mvx0,mvy0},后向MV={mvx1,mvy1},如果码流中携带的后向MVD的索引为3,代表后向MVD={-mvdx0,-mvdy0},此时,前向MV和后向MV导出如下:
在得到当前块的前向MV和后向MV后,即可完成对当前块的运动补偿。
根据本公开的示例性实施例,在当前块的前向参考图像帧和后向参考图像帧的索引是基于参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价得到的情况下,上述解码方法还可以从接收到的码流中,获取当前块的前向参考图像帧和后向参考图像帧,在当前图像帧对应的参考图像帧列表中的索引;基于前向参考图像帧和后向参考图像帧的索引,获取当前块的前向参考图像帧和后向参考图像帧;基于前向参考图像帧、后向参考图像帧、前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。根据本实施例,通过每个参考图像帧中的预测块与当前块的率失真代价,确定出当前块对应的前向参考图像帧和后向参考图像帧,从而放宽了两个参考图像帧的选择限制。
综上,本公开提供了一种针对对称运动矢量差算法的优化方法,首先,修改了SMVD导出参考帧索引的规则,经过优化之后,每个当前块需要将前向与后向最优的参考帧索引分别写进码流中;其次,对后向MVD的导出方式进行了优化,为后向MVD提供了更多的候选,从而让每个当前块可以在后向参考帧中找到更匹配的参考块。通过本公开可以有效的提升SMVD的编码性能,经验证本公开的方法可以提升编码器的编码收益约0.3%左右。
图6是根据一示例性实施例示出的一种视频编码装置的框图。参照图6,该装置包括参考图像帧获取单元60、后向运动矢量差候选获取单元62、后向运动矢量差获取单元64和编码单元66。
参考图像帧获取单元60,被配置为在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定当前图像帧中当前块的前向参考图像帧和后向参考图像帧;后向运动矢量差候选获取单元62,被配置为基于前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;后向运动矢量差获取单元64,被配置为从多个后向运动矢量差候选中选择后向参考图像帧对应的后向运动矢量差;编码单元66,被配置为将前向运动矢量差以及后向运动矢量差的相关信息写入码流。
根据本公开的示例性实施例,后向运动矢量差候选获取单元,还被配置为对前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选。
根据本公开的示例性实施例,后向运动矢量差候选获取单元62,还被配置为对前向运动矢量差的水平分量、垂直分量进行取反处理,得到取反后的水平分量和取反后的垂直分量;基于前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选。
根据本公开的示例性实施例,后向运动矢量差候选获取单元62,还被配置为基于前向运动矢量差的水平分量和垂直分量,得到第一后向运动矢量差候选;基于前向运动矢量差的水平分量和取反后的垂直分量,得到第二后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和垂直分量,得到第三后向运动矢量差候选;基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到第四后向运动矢量差候选。
根据本公开的示例性实施例,多个后向运动矢量差候选对应有各自的索引,其中,编码单元66,还被配置为将前向运动矢量差以及后向运动矢量差的索引写入码流。
根据本公开的示例性实施例,参考图像帧获取单元60,还被配置为获取参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价;基于率失真代价,从参考图像帧列表中,获取当前块的前向参考图像帧和后向参考图像帧;其中,将前向运动矢量差以及后向运动矢量差的相关信息写入码流,包括:将前向参考图像帧和后向参考图像帧分别在参考图像帧列表中的索引、前向运动矢量差和后向运动矢量差的相关信息写入码流。
根据本公开的示例性实施例,参考图像帧获取单元60,还被配置为遍历参考图像帧列表中的每个参考图像帧,选择出率失真代价最小的第一预定参考图像帧作为当前块的前向参考图像帧,并选择出率失真代价最小的第二预定参考图像帧作为当前块的后向参考图像帧,其中,第一预定参考图像帧的播放顺序在当前图像帧之前,第二预定参考图像帧的播放顺序在当前图像帧之后。
根据本公开的示例性实施例,后向运动矢量差获取单元64,还被配置为基于当前块在后向参考图像帧中的初始预测块和每个后向运动矢量差候选,得到每个后向运动矢量差候选对应的预测块,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的;获取每个后向运动矢量差候选对应的预测块分别与当前块的率失真代价;将最小率失真代价对应的后向运动矢量差候选作为后向参考图像帧对应的后向运动矢量差。
根据本公开的示例性实施例,前向参考图像帧对应的前向运动矢量差通过如下方式获取:获取当前块在前向参考图像帧中的初始预测块与预测块的水平偏移作为前向运动矢量差的水平分量,其中,初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的,预测块是基于所述初始预测块进行运动搜索得到的;获取当前块在前向参考图像帧中的初始预测块与预测块的垂直偏移作为前向运动矢量差的垂直分量。
图7是根据一示例性实施例示出的一种视频解码装置的框图。参照图7,该装置包括信息获取单元70、后向运动矢量差获取单元72和补偿单元74。
信息获取单元70,被配置为从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息;后向运动矢量差获取单元72,被配置为基于前向运动矢量差以及后向运动矢量差的相关信息,得到后向运动矢量差;补偿单元74,被配置为基于前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。
根据本公开的示例性实施例,后向运动矢量差获取单元72,还被配置为基于前向运动矢量差的水平分量、垂直分量和后向运动矢量差的相关信息,得到后向运动矢量差。
根据本公开的示例性实施例,后向运动矢量差获取单元72,还被配置为在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和垂直分量组成的情况下,基于前向运动矢量差的水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的垂直分量分别进行取反处理得到取反后的垂直分量,并基于前向运动矢量差的水平分量和取反后的垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和垂直分量组成的情况下,对前向运动矢量差的水平分量分别进行取反处理得到取反后的水平分量,并基于前向运动矢量差的取反后水平分量和垂直分量,得到后向运动矢量差;在相关信息指示后向运动矢量差由前向运动矢量差的取反后水平分量和取反后的垂直分量组成的情况下,对前向运动矢量差的水平分量和垂直分量分别进行取反处理,得到取反后的水平分量和取反后的垂直分量,并基于前向运动矢量差的取反后水平分量和取反后的垂直分量,得到后向运动矢量差。
根据本公开的示例性实施例,在后向运动矢量差的相关信息为索引的情况下,后向运动矢量差获取单元,还被配置为基于后向运动矢量差的索引,确定后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系;基于后向运动矢量差与前向运动矢量差的水平分量、垂直分量的关系,以及前向运动矢量差的水平分量、垂直分量,得到后向运动矢量差。
根据本公开的示例性实施例,信息获取单元70,还被配置为从接收到的码流中,获取当前块的前向参考图像帧和后向参考图像帧,在当前图像帧对应的参考图像帧列表中的索引,其中,当前块的前向参考图像帧和后向参考图像帧的索引是基于参考图像帧列表中每个参考图像帧中的预测块与当前块的率失真代价得到的;基于前向参考图像帧和后向参考图像帧的索引,获取当前块的前向参考图像帧和后向参考图像帧;其中,补偿单元74,还被配置为基于前向参考图像帧、后向参考图像帧、前向运动矢量差和后向运动矢量差,对当前块进行运动补偿。
根据本公开的实施例,可提供一种电子设备。图8是根据本公开实施例的一种电子设备800的框图,该电子设备包括至少一个存储器801和至少一个处理器802,所述至少一个存储器中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器执行时,执行根据本公开实施例的视频编码方法和/或视频解码方法。
作为示例,电子设备800可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备1000并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备800还可以是集成控制***或***管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备800中,处理器802可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器***、微控制器或微处理器。作为示例而非限制,处理器802还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器802可运行存储在存储器中的指令或代码,其中,存储器801还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器801可与处理器802集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器801可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库***可使用的其他存储装置。存储器801和处理器802可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器802能够读取存储在存储器801中的文件。
此外,电子设备800还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备的所有组件可经由总线和/或网络而彼此连接。
根据本公开的实施例,还可提供一种计算机可读存储介质,其中,当计算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器执行本公开实施例的视频编码方法和/或视频解码方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机***上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开实施例,提供了一种计算机程序产品,包括计算机指令,计算机指令被处理器执行时实现本公开实施例的视频编码方法和/或视频解码方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种视频编码方法,其特征在于,包括:
在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定所述当前图像帧中当前块的前向参考图像帧和后向参考图像帧;
基于所述前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;
从所述多个后向运动矢量差候选中选择所述后向参考图像帧对应的后向运动矢量差;
将所述前向运动矢量差以及所述后向运动矢量差的相关信息写入码流。
2.如权利要求1所述的视频编码方法,其特征在于,所述基于所述前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选,包括:
对所述前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选。
3.如权利要求2所述的视频编码方法,其特征在于,所述对所述前向运动矢量差的水平分量和垂直分量进行预定处理,确定多个后向运动矢量差候选,包括:
对所述前向运动矢量差的水平分量和垂直分量分别进行取反处理,得到取反后的水平分量和取反后的垂直分量;
基于所述前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选。
4.如权利要求3所述的视频编码方法,其特征在于,所述基于所述前向运动矢量差的水平分量、垂直分量、取反后的水平分量和取反后的垂直分量,确定多个后向运动矢量差候选,包括:
基于所述前向运动矢量差的水平分量和垂直分量,得到第一后向运动矢量差候选;
基于所述前向运动矢量差的水平分量和取反后的垂直分量,得到第二后向运动矢量差候选;
基于所述前向运动矢量差的取反后水平分量和垂直分量,得到第三后向运动矢量差候选;
基于所述前向运动矢量差的取反后水平分量和取反后的垂直分量,得到第四后向运动矢量差候选。
5.如权利要求1所述的视频编码方法,其特征在于,所述从所述多个后向运动矢量差候选中选择所述后向参考图像帧对应的后向运动矢量差,包括:
基于所述当前块在所述后向参考图像帧中的初始预测块和每个后向运动矢量差候选,得到每个后向运动矢量差候选对应的预测块,其中,所述初始预测块根据从预先建立的候选预测运动矢量列表中选择的运动矢量得到的;
获取每个后向运动矢量差候选对应的预测块分别与所述当前块的率失真代价;
将最小率失真代价对应的后向运动矢量差候选,作为所述后向参考图像帧对应的后向运动矢量差。
6.如权利要求1所述的视频编码方法,其特征在于,所述多个后向运动矢量差候选对应有各自的索引,
其中,将所述前向运动矢量差以及所述后向运动矢量差的相关信息写入码流,包括:
将所述前向运动矢量差以及所述后向运动矢量差的索引写入码流。
7.一种视频解码方法,其特征在于,包括:
从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息;
基于所述前向运动矢量差以及所述后向运动矢量差的相关信息,得到所述后向运动矢量差;
基于所述前向运动矢量差和所述后向运动矢量差,对当前块进行运动补偿。
8.如权利要求7所述的视频解码方法,其特征在于,所述基于所述前向运动矢量差以及所述后向运动矢量差的相关信息,得到所述后向运动矢量差,包括:
基于所述前向运动矢量差的水平分量、垂直分量和所述后向运动矢量差的相关信息,得到所述后向运动矢量差。
9.如权利要求8所述的视频解码方法,其特征在于,所述基于所述前向运动矢量差的水平分量、垂直分量和所述后向运动矢量差的相关信息,得到所述后向运动矢量差,包括:
在所述相关信息指示所述后向运动矢量差由所述前向运动矢量差的水平分量和垂直分量组成的情况下,基于所述前向运动矢量差的水平分量和垂直分量,得到所述后向运动矢量差;
在所述相关信息指示所述后向运动矢量差由所述前向运动矢量差的水平分量和取反后的垂直分量组成的情况下,对所述前向运动矢量差的垂直分量分别进行取反处理得到取反后的垂直分量,并基于所述前向运动矢量差的水平分量和取反后的垂直分量,得到所述后向运动矢量差;
在所述相关信息指示所述后向运动矢量差由所述前向运动矢量差的取反后水平分量和垂直分量组成的情况下,对所述前向运动矢量差的水平分量分别进行取反处理得到取反后的水平分量,并基于所述前向运动矢量差的取反后水平分量和垂直分量,得到所述后向运动矢量差;
在所述相关信息指示所述后向运动矢量差由所述前向运动矢量差的取反后水平分量和取反后的垂直分量组成的情况下,对所述前向运动矢量差的水平分量和垂直分量分别进行取反处理,得到取反后的水平分量和取反后的垂直分量,并基于所述前向运动矢量差的取反后水平分量和取反后的垂直分量,得到所述后向运动矢量差。
10.如权利要求8所述的视频解码方法,其特征在于,在所述后向运动矢量差的相关信息为索引的情况下,所述基于所述前向运动矢量差的水平分量、垂直分量和所述后向运动矢量差的相关信息,得到所述后向运动矢量差,包括:
基于所述后向运动矢量差的索引,确定所述后向运动矢量差与所述前向运动矢量差的水平分量、垂直分量的关系;
基于所述后向运动矢量差与所述前向运动矢量差的水平分量、垂直分量的关系,以及所述前向运动矢量差的水平分量、垂直分量,得到所述后向运动矢量差。
11.一种视频编码装置,其特征在于,包括:
参考图像帧获取单元,被配置为在对称运动矢量差模式下,从当前图像帧对应的参考图像帧列表中,确定所述当前图像帧中当前块的前向参考图像帧和后向参考图像帧;
后向运动矢量差候选获取单元,被配置为基于所述前向参考图像帧对应的前向运动矢量差,确定多个后向运动矢量差候选;
后向运动矢量差获取单元,被配置为从所述多个后向运动矢量差候选中选择所述后向参考图像帧对应的后向运动矢量差;
编码单元,被配置为将所述前向运动矢量差以及所述后向运动矢量差的相关信息写入码流。
12.一种视频解码装置,其特征在于,包括:
信息获取单元,被配置为从接收到的码流中获取当前图像帧中当前块的前向运动矢量差以及后向运动矢量差的相关信息;
后向运动矢量差获取单元,被配置为基于所述前向运动矢量差以及所述后向运动矢量差的相关信息,得到所述后向运动矢量差;
补偿单元,被配置为基于所述前向运动矢量差和所述后向运动矢量差,对当前块进行运动补偿。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至6中任一项所述的视频编码方法和/或权利要求7至10中任一项所述的视频解码方法。
14.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至6中任一项所述的视频编码方法和/或权利要求7至10中任一项所述的视频解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310008312.6A CN116016945A (zh) | 2023-01-04 | 2023-01-04 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310008312.6A CN116016945A (zh) | 2023-01-04 | 2023-01-04 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016945A true CN116016945A (zh) | 2023-04-25 |
Family
ID=86022784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310008312.6A Pending CN116016945A (zh) | 2023-01-04 | 2023-01-04 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016945A (zh) |
-
2023
- 2023-01-04 CN CN202310008312.6A patent/CN116016945A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI669951B (zh) | 多重假設之合併模式 | |
US20200244986A1 (en) | Picture prediction method and related apparatus | |
TWI650010B (zh) | 視訊解碼方法、視訊編碼裝置、視訊編碼方法及非暫態電腦可讀記錄媒體 | |
US8229233B2 (en) | Method and apparatus for estimating and compensating spatiotemporal motion of image | |
CN109922336B (zh) | 视频数据的帧间预测方法和装置 | |
WO2020140915A1 (zh) | 视频处理方法和装置 | |
KR102459789B1 (ko) | 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치 | |
WO2020181456A1 (en) | Inter coding for adaptive resolution video coding | |
JP7520931B2 (ja) | 双方向インター予測の方法および装置 | |
CN110868602B (zh) | 视频编码器、视频解码器及相应方法 | |
CN110876282A (zh) | 运动矢量预测方法以及相关装置 | |
EP4037320A1 (en) | Boundary extension for video coding | |
US20230239494A1 (en) | Video encoder, video decoder, and corresponding method | |
BR122021006509A2 (pt) | método de decodificação de imagem com base na predição de movimento afim e dispositivo usando lista de candidatos à fusão afins no sistema de codificação de imagem | |
CN116016945A (zh) | 视频编码方法及装置、视频解码方法及装置、电子设备 | |
CN116896632A (zh) | 视频编码方法及装置 | |
CN112702601B (zh) | 确定用于帧间预测的运动矢量的方法和装置 | |
RU2770423C1 (ru) | Способ и устройство для кодирования изображения видеопоследовательности и оконечное устройство | |
CN115086678B (zh) | 视频编码方法和装置、视频解码方法和装置 | |
US20230239461A1 (en) | Inter coding for adaptive resolution video coding | |
CN110677645B (zh) | 一种图像预测方法及装置 | |
CN112565789B (zh) | 视频解码及编码方法、装置、计算机可读介质及电子设备 | |
CN105306953A (zh) | 图像编码方法和装置 | |
CN118339832A (zh) | 解码器侧运动信息推导 | |
CN118233647A (zh) | 视频编码方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |