视频图像的运动矢量编解码方法以及编/解码器

文档序号:1675847 发布日期:2019-12-31 浏览:28次 >En<

阅读说明:本技术 视频图像的运动矢量编解码方法以及编/解码器 (Video image motion vector encoding/decoding method and encoder/decoder ) 是由 马思伟 雷萌 罗法蕾 王苫社 高文 于 2019-08-30 设计创作,主要内容包括:本申请提供一种视频图像的运动矢量编解码方法、一种编码器及一种解码器。其中,所述视频图像的运动矢量编码方法包括:选择率失真代价最小的运动矢量精度作为第一运动矢量精度,对运动矢量差值进行编码条件判断,并根据判断结果对所述第一运动矢量精度在其对应的第一运动矢量精度集合范围内进行调整,确定第二运动矢量精度,根据所述第二运动矢量精度对所述运动矢量差值进行编码得到运动矢量信息,将所述运动矢量信息和所述第一运动矢量精度对应的标识写入码流后发送至解码端。通过本方案,可以减少需要标识的运动矢量精度,在保持预测性能的同时,降低了编码运动矢量所需的码率和编码时间,从而提升了编码效率,带来了编码增益。(The application provides a motion vector coding and decoding method of a video image, an encoder and a decoder. The method for encoding the motion vector of the video image comprises the following steps: selecting the motion vector precision with the minimum rate distortion cost as a first motion vector precision, judging the coding condition of a motion vector difference value, adjusting the first motion vector precision within a corresponding first motion vector precision set range according to the judgment result, determining a second motion vector precision, coding the motion vector difference value according to the second motion vector precision to obtain motion vector information, writing the motion vector information and an identifier corresponding to the first motion vector precision into a code stream, and then sending the code stream to a decoding end. By the scheme, the precision of the motion vector needing to be identified can be reduced, and the code rate and the coding time required by coding the motion vector are reduced while the predictive performance is maintained, so that the coding efficiency is improved, and the coding gain is brought.)

视频图像的运动矢量编解码方法以及编/解码器

技术领域

本申请涉及数字信号处理领域,具体涉及一种视频图像的运动矢量编解码方法以及编/解码器。

背景技术

预测编码是视频压缩中基本的编码工具,常见的预测编码为帧间预测和帧内预测。帧间预测是指利用视频时间域相关性,使用之前临近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的,其基本原理为:基于视频序列通常具有很强的时域相关性,为当前图像的每个当前编码块在之前已编码图像中寻找一个最佳匹配的参考块,将参考块中的像素点的像素值作为当前编码块中像素点的像素值的预测值,并获取各个当前编码块的运动信息,其中,参考块到当前编码块的位移称为运动矢量(motionvector,MV),该已编码图像又称为参考图像,该运动信息包含参考图像的指示信息和运动矢量MV。因此,编码侧不需要向解码侧发送每幅图像的全部信息,只需将当前图像中的运动信息传递到解码侧,解码侧根据该运动信息可解码得到当前图像。

由于自然物体的运动是连续的,大多数时候并不一定恰好就是移动整像素级别的距离,因此,运动矢量若是使用整像素的精度,可能很多时候不能准确地描述物体的运动。提高运动矢量的精度可以很好地解决这个问题,即在整像素和整像素之间人为地插值出每个分像素位置的值,例如1/2像素精度就是把图像在水平方向和垂直方向均进行2倍的上采样,1/4像素精度就是把图像在水平方向和垂直方向均进行4倍的上采样,此时运动矢量就可以使用1/2像素精度或1/4像素精度。

在AVS(Audio Video coding Standard,音视频编码标准)及HEVC(HighEfficiency Video Coding,高性能视频编码)中均使用固定1/4像素精度。高精度的运动矢量可以更好地接近真实的运动情形,提高预测性能;但另一方面,高精度的运动矢量也需要更多的比特编码该运动矢量。在AVS2中使用了渐近式运动矢量精度,对1/4像素精度可依据运动矢量差值的范围自适应调整为1/2像素精度。在AVS3和VVC(Versatile Video Coding,多功能视频编码)视频编解码标准中均采用了自适应运动矢量精度,AVS3中采用了1/4,1/2,1,2,4共5种运动矢量精度,而VVC中采用了1/4,1,4共3种运动矢量精度。而多种自适应运动矢量精度一方面复杂度高,另一方面某些运动矢量预测效率低并带来了额外的比特代价,使得运动矢量信息在码流中的比重不断上升,因此,如何有效地压缩运动矢量信息成为进一步提升视频压缩效率的关键。

发明内容

本申请的目的是提供一种视频图像的运动矢量编码方法及编码器、一种视频图像的运动矢量解码方法及解码器。

本申请第一方面提供一种视频图像的运动矢量编码方法,包括:

构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识;

根据参考图像,获得当前图像中当前编码块的运动矢量差值;

计算使用第二运动矢量精度集合中每一运动矢量精度编码所述运动矢量差值的率失真代价,并选择出率失真代价最小的运动矢量精度作为第一运动矢量精度;

对所述运动矢量差值进行编码条件判断,并根据判断结果对所述第一运动矢量精度在其对应的第一运动矢量精度集合范围内进行调整,确定第二运动矢量精度;

根据所述第二运动矢量精度对所述运动矢量差值进行编码得到运动矢量信息,将所述运动矢量信息和所述第一运动矢量精度对应的标识写入码流后发送至解码端。

本申请第二方面提供一种视频图像的运动矢量解码方法,包括:

接收编码端发送的码流数据;

检测码流数据中当前解码块的运动矢量精度标识,确定所述运动矢量精度标识对应的第一运动矢量精度;所述运动矢量精度标识与第一运动矢量精度的对应关系由编码端构建,具体为:构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识;所述当前解码块属于当前待解码图像;

对所述第一运动矢量精度进行解码条件判断,确定编码所述码流数据中运动矢量信息所使用的第二运动矢量精度,所述第二运动矢量精度属于所述第一运动矢量精度对应的第一运动矢量精度集合;

根据所述第二运动矢量精度对所述运动矢量信息进行解码得到当前解码块的运动矢量差值。

本申请第三方面提供一种编码器,包括:

构建模块,用于构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识;

运动矢量模块,用于根据参考图像,获得当前图像中当前编码块的运动矢量差值;计算使用第二运动矢量精度集合中每一运动矢量精度编码所述运动矢量差值的率失真代价,并选择出率失真代价最小的运动矢量精度作为第一运动矢量精度;

编码条件模块,用于对所述运动矢量差值进行编码条件判断,并根据判断结果对所述第一运动矢量精度在其对应的第一运动矢量精度集合范围内进行调整,确定第二运动矢量精度;

编码模块,用于根据所述第二运动矢量精度对所述运动矢量差值进行编码得到运动矢量信息,将所述运动矢量信息和所述第一运动矢量精度对应的标识写入码流后发送至解码端。

本申请第四方面提供一种解码器,包括:

接收模块,用于接收编码端发送的码流数据;

确定模块,用于检测码流数据中当前解码块的运动矢量精度标识,确定所述运动矢量精度标识对应的第一运动矢量精度;所述运动矢量精度标识与第一运动矢量精度的对应关系由编码端构建,具体为:构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识;所述当前解码块属于当前待解码图像;

解码条件模块,用于对所述第一运动矢量精度进行解码条件判断,确定编码所述码流数据中运动矢量信息所使用的第二运动矢量精度,所述第二运动矢量精度属于所述第一运动矢量精度对应的第一运动矢量精度集合;

解码模块,用于根据所述第二运动矢量精度对所述运动矢量信息进行解码得到当前解码块的运动矢量差值。

相较于现有技术,本申请提供的视频图像的运动矢量编码方法,选择率失真代价最小的运动矢量精度作为第一运动矢量精度,对运动矢量差值进行编码条件判断,并根据判断结果对所述第一运动矢量精度在其对应的第一运动矢量精度集合范围内进行调整,确定第二运动矢量精度,根据所述第二运动矢量精度对所述运动矢量差值进行编码得到运动矢量信息,将所述运动矢量信息和所述第一运动矢量精度对应的标识写入码流后发送至解码端。通过本方案,可以减少需要标识的运动矢量精度,同时在编解码端根据当前编码块运动矢量差值的范围进一步调整运动矢量精度,从而在保持预测性能的同时,降低了编码运动矢量所需的码率和编码时间,从而提升了编码效率,带来了编码增益。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本申请的一些实施方式所提供的一种视频图像的运动矢量编码方法的流程图;

图2示出了本申请的一些实施方式所提供的一种视频图像的运动矢量解码方法的流程图;

图3示出了本申请的一些实施方式所提供的一种编码器的示意图;

图4示出了本申请的一些实施方式所提供的一种解码器的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。

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

本申请实施例提供一种视频图像的运动矢量编码方法及编码器、一种视频图像的运动矢量解码方法及解码器,下面结合附图进行说明。

请参考图1,其示出了本申请的一些实施方式所提供的一种视频图像的运动矢量编码方法的流程图,如图所示,所述视频图像的运动矢量编码方法,可以包括以下步骤:

步骤S101:构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识。

以AVS3为例,如表1所示,目前AVS3中使用了1/4,1/2,1,2,4共五种运动矢量精度,精度单位为一个像素单位,5种运动矢量精度在编码端通过率失真代价的方式选择,在解码端通过解码对应的标识选择相应的运动矢量精度。可以看到,随着运动矢量精度的不断增大增多,其标识所需要的比特数逐渐增多,消耗的码率会更多,消耗的编码时间也会更多。

标识 0 1 2 3 4
运动矢量精度 1/4 1/2 1 2 4
比特 0 10 110 1110 1111

表1

而本申请中,将用于编码运动矢量的多个运动矢量精度分组,组成多个互不相交的运动矢量精度集合,每一个运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识。

举例来说,将上述的1/4精度和1/2精度编为一组,1精度和2精度编为一组,4精度单独编为一组,每一组中最小的组成另一个运动矢量精度集合,并且每一组对应一个标识,如表2所示,可见,分组标识之后减少了比特的消耗。可以理解,分为同一组的运动矢量精度共用一个标识,每一组中可以包括更多的精度,具体分组的个数可以根据实际情况确定,本申请不做限定。

标识 0 1 2
运动矢量精度 1/4 1/2 1
比特 0 10 110

表2

步骤S102:根据参考图像,获得当前图像中当前编码块的运动矢量差值。

本申请实施例,步骤S102具体为:根据参考图像,获得当前图像中当前编码块的运动矢量预测值和运动矢量,所述运动矢量减去所述运动矢量预测值得到所述运动矢量差值。本步骤采用相应技术,本申请对此不再赘述。

步骤S103:计算使用第二运动矢量精度集合中每一运动矢量精度编码所述运动矢量差值的率失真代价,并选择出率失真代价最小的运动矢量精度作为第一运动矢量精度。

本申请实施例,计算率失真代价采用相应技术,本申请对此不再赘述。具体的,编码运动矢量差值时,分别使用1/4,1,4精度编码,计算每一种精度下的率失真代价,将率失真代价最小的精度,按照表2中的编码方式编码该精度的标识并写入码流。

步骤S104:对所述运动矢量差值进行编码条件判断,并根据判断结果对所述第一运动矢量精度在其对应的第一运动矢量精度集合范围内进行调整,确定第二运动矢量精度。

本申请实施例,将上述步骤中率失真代价最小的精度作为最优运动矢量精度候选,对运动矢量差值进行编码条件判断进一步调整运动矢量精度。举例来说,率失真代价最小的精度为1/4,而对运动矢量差值进行编码条件判断,判断结果为使用其同组的1/2精度编码时,既能保持预测性能,还可以进一步降低码率,因此,在实际编码时采用1/2运动矢量精度。

因此,在本申请的一些实施方式中,步骤S104可以实现为:将第一运动矢量精度下的运动矢量预测值对齐到第二运动矢量精度下,计算得到第二运动矢量精度下的运动矢量差值,判断第二运动矢量精度下的运动矢量差值是否大于预设精度判定阈值。若是,则将第一运动矢量精度调整为第二运动矢量精度。

具体条件如下:

输入:MV,MVP,CTR,TH

输出:MVD

–If|MVx-CTRx|>TH

–MVDx=(MVx+CTRx+sign(MVx-CTRx)*TH)/2–MVPx

–MVDy=(Mvy–CTRy)/2

–Elseif|MVy-CTRy|>TH

–MVDx=(MVx–CTRx)/2

–MVDy=(MVy+CTRy+sign(MVy-CTRy)*TH)/2–MVPy

–Else

–MVDx=MVx–MVPx

–MVDy=MVy–MVPy

上述条件中,MV为运动矢量,MVP运动矢量预测值,CTR表示第一运动矢量精度对齐至第二运动矢量精度,TH为预设精度判定阈值,MVD为运动矢量差值。

步骤S105:根据所述第二运动矢量精度对所述运动矢量差值进行编码得到运动矢量信息,将所述运动矢量信息和所述第一运动矢量精度对应的标识写入码流后发送至解码端。

相较于现有技术,本申请提供的视频图像的运动矢量解码方法,选择率失真代价最小的运动矢量精度作为第一运动矢量精度,对运动矢量差值进行编码条件判断,并根据判断结果对所述第一运动矢量精度在其对应的第一运动矢量精度集合范围内进行调整,确定第二运动矢量精度,根据所述第二运动矢量精度对所述运动矢量差值进行编码得到运动矢量信息,将所述运动矢量信息和所述第一运动矢量精度对应的标识写入码流后发送至解码端。通过本方案,可以减少需要标识的运动矢量精度,同时在编解码端根据当前编码块运动矢量差值的范围进一步调整运动矢量精度,从而在保持预测性能的同时,降低了编码运动矢量所需的码率和编码时间,从而提升了编码效率,带来了编码增益。

在上述的实施例中,提供了一种视频图像的运动矢量编码方法,与之相对应的,本申请还提供一种视频图像的运动矢量解码方法,由于解码端与编码端相对应,实施例基本相似,所以描述得比较简单,相关之处参见编码端实施例的部分说明即可。请参考图2,其示出了本申请的一些实施方式所提供的一种视频图像的运动矢量解码方法的流程图,如图所示,所述视频图像的运动矢量解码方法,可以包括以下步骤:

步骤201:接收编码端发送的码流数据。

步骤202:检测码流数据中当前解码块的运动矢量精度标识,确定所述运动矢量精度标识对应的第一运动矢量精度;所述运动矢量精度标识与第一运动矢量精度的对应关系由编码端构建,具体为:构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识;所述当前解码块属于当前待解码图像。

步骤203:对所述第一运动矢量精度进行解码条件判断,确定编码所述码流数据中运动矢量信息所使用的第二运动矢量精度,所述第二运动矢量精度属于所述第一运动矢量精度对应的第一运动矢量精度集合。

本申请实施例,步骤203具体实现为:计算第一运动矢量精度下的运动矢量预测值与第二运动矢量精度下的运动矢量预测值的第一差值,判断第一运动矢量精度下的运动矢量差值与所述第一差值之间的差值是否大于预设精度判定阈值;若是,则将第一运动矢量精度调整为第二运动矢量精度进行解码。具体条件如下:

输入:MVD,MVP,CTR,TH

输出:MV

–CTRDx=CTRx-MVPx

–CTRDy=CTRy-MVPy

–If|MVDx-CTRDx|>TH

–MVx=MVPx+MVDx*2-CTRDx-sign(MVDx-CTRDx)*TH

–MVy=MVPy+MVDy*2+CTRDy

–Elseif|MVDy-CTRDy|>TH

–MVx=MVPx+MVDx*2+CTRDx

–MVy=MVPy+MVDy*2-CTRDy-sign(MVDy-CTRDy)*TH

–Else

–MVx=MVDx+MVPx

–MVy=MVDy+MVPy

步骤204:根据所述第二运动矢量精度对所述运动矢量信息进行解码得到当前解码块的运动矢量差值。

本申请实施例提供的视频图像的运动矢量编码方法,与本申请前述实施例提供的视频图像的运动矢量解码方法出于相同的发明构思,具有相同的有益效果。

在上述的实施例中,提供了一种视频图像的运动矢量编码方法和一种视频图像的运动矢量解码方法,与之相对应的,本申请还提供一种编码器和一种解码器。本申请实施例提供的编码器可以实施上述视频图像的运动矢量编码方法,本申请实施例提供的解码器可以实施上述视频图像的运动矢量解码方法。请参考图3,其示出了本申请的一些实施方式所提供的一种编码器的示意图。请参考图4,其示出了本申请的一些实施方式所提供的一种解码器的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

如图3所示,所述编码器10可以包括:

构建模块101,用于构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识;

运动矢量模块102,用于根据参考图像,获得当前图像中当前编码块的运动矢量差值;计算使用第二运动矢量精度集合中每一运动矢量精度编码所述运动矢量差值的率失真代价,并选择出率失真代价最小的运动矢量精度作为第一运动矢量精度;

编码条件模块103,用于对所述运动矢量差值进行编码条件判断,并根据判断结果对所述第一运动矢量精度在其对应的第一运动矢量精度集合范围内进行调整,确定第二运动矢量精度;

编码模块104,用于根据所述第二运动矢量精度对所述运动矢量差值进行编码得到运动矢量信息,将所述运动矢量信息和所述第一运动矢量精度对应的标识写入码流后发送至解码端。

在本申请实施例的一些实施方式中,所述运动矢量模块102,具体用于:

根据参考图像,获得当前图像中当前编码块的运动矢量预测值和运动矢量;

所述运动矢量减去所述运动矢量预测值得到所述运动矢量差值。

在本申请实施例的一些实施方式中,所述编码条件模块103,具体用于:

将第一运动矢量精度下的运动矢量预测值对齐到第二运动矢量精度下,计算得到第二运动矢量精度下的运动矢量差值;

判断第二运动矢量精度下的运动矢量差值是否大于预设精度判定阈值;若是,则将第一运动矢量精度调整为第二运动矢量精度。

本申请实施例提供的编码器10,与本申请前述实施例提供的视频图像的运动矢量编码方法出于相同的发明构思,具有相同的有益效果。

如图4所示,所述解码器20可以包括:

接收模块201,用于接收编码端发送的码流数据;

确定模块202,用于检测码流数据中当前解码块的运动矢量精度标识,确定所述运动矢量精度标识对应的第一运动矢量精度;所述运动矢量精度标识与第一运动矢量精度的对应关系由编码端构建,具体为:构建多个互不相交的第一运动矢量精度集合,每一个第一运动矢量精度集合中最小的运动矢量精度构成第二运动矢量精度集合,每一个所述最小的运动矢量精度对应一个标识;所述当前解码块属于当前待解码图像;

解码条件模块203,用于对所述第一运动矢量精度进行解码条件判断,确定编码所述码流数据中运动矢量信息所使用的第二运动矢量精度,所述第二运动矢量精度属于所述第一运动矢量精度对应的第一运动矢量精度集合;

解码模块204,用于根据所述第二运动矢量精度对所述运动矢量信息进行解码得到当前解码块的运动矢量差值。

在本申请实施例的一些实施方式中,所述解码条件模块203,具体用于:

计算第一运动矢量精度下的运动矢量预测值与第二运动矢量精度下的运动矢量预测值的第一差值;

判断第一运动矢量精度下的运动矢量差值与所述第一差值之间的差值是否大于预设精度判定阈值;若是,则将第一运动矢量精度调整为第二运动矢量精度进行解码。

本申请实施例提供的解码器20,与本申请前述实施例提供的视频图像的运动矢量解码方法出于相同的发明构思,具有相同的有益效果。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种视频编码初始量化参数优化方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类