CN113630602B - 编码单元的仿射运动估计方法、装置、存储介质及终端 - Google Patents
编码单元的仿射运动估计方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN113630602B CN113630602B CN202110732569.7A CN202110732569A CN113630602B CN 113630602 B CN113630602 B CN 113630602B CN 202110732569 A CN202110732569 A CN 202110732569A CN 113630602 B CN113630602 B CN 113630602B
- Authority
- CN
- China
- Prior art keywords
- motion vectors
- blocks
- coding
- center
- coding blocks
- 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
Links
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 54
- 239000013598 vector Substances 0.000 claims abstract description 305
- 238000004364 calculation method Methods 0.000 claims description 20
- 238000005457 optimization Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Abstract
本发明公开了一种编码单元的仿射运动估计方法,包括:获取并划分当前编码单元,生成n个编码块;获取n个编码块各自的中心运动矢量,生成n个第一中心运动矢量;从n个第一中心运动矢量中任意选取m个不同的编码块的中心运动矢量进行组合,生成多组中心运动矢量;根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量。因此,采用本申请实施例,可以降低编码复杂度,利于算法硬件实现。
Description
技术领域
本发明涉及视频编解码技术领域,特别涉及一种编码单元的仿射运动估计方法、装置、存储介质及终端。
背景技术
目前AVS3标准中,尺寸为16x16及以上的编码单元CU块,都会进行仿射运动估计。目前在AVS3标准中采用的仿射运动估计算法为基于梯度的快速仿射运动估计算法,该算法根据梯度下降来同时迭代更新一个块的两个控制点MV。基于梯度的快速仿射ME算法能够快速收敛,从而显著降低编码复杂度。
在现有技术中,基于梯度的快速仿射运动估计算法可以在每次迭代中同时求解两个MV,并快速收敛到最优组合。基于梯度的快速仿射ME算法的本质是在每次迭代中根据当前块和该块的预测之间的均方误差(MSE)来调整MV0、MV1。目前的快速ME算法虽然能够在每次迭代中同时求解两个MV,并快速收敛到最佳控制点MV组合,但是进行6至8次的迭代依然会有不可忽视的编码复杂度。每次迭代需进行的步骤如图1所示。且需要特别指出的是,每次迭代在计算率失真代价时所进行的运动补偿是以4x4的小块单位计算其中心像素点的MV,然后进行运动补偿,具有一定的编码复杂度。
发明内容
本申请实施例提供了一种编码单元的仿射运动估计方法、装置、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本申请实施例提供了一种编码单元的仿射运动估计方法,方法包括:
获取并划分当前编码单元,生成n个编码块;
获取n个编码块各自的中心运动矢量,生成n个第一中心运动矢量;
从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量;其中,n为预设常数,n为正整数。
可选的,根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量,包括:
利用n个编码块各自的第二中心运动矢量针对与其对应的编码块进行运动补偿,生成n个预测块;
计算n个预测块和其对应的编码块之间的残差像素,并基于所述残差像素计算所述n个预测块的率失真代价;
选取n个预测块的率失真代价中最小值,并将最小值对应的一组中心运动矢量确定为一组最优中心运动矢量。
可选的,获取n个编码块各自的中心运动矢量,包括:
初始化当前编码单元的同一帧编码单元;
提取同一帧编码单元中与当前编码单元相同位置处的中心运动矢量。
可选的,获取并划分当前编码单元,生成n个编码块,包括:
获取当前编码单元;
确定编码块的划分数量n;
根据编码块的划分数量n与预设划分方式将当前编码单元进行划分;
生成n个编码块。
可选的,基于所述残差像素计算所述n个预测块的率失真代价,包括:
加载率失真代价计算公式;
将每个残差像素代入率失真代价计算公式中进行计算,生成当前编码单元的预测块的率失真代价;其中,率失真代价计算公式为:
J=SATD+λ·R;其中,J为率失真代价值,SATD是当前编码单元与匹配块的像素绝对差值和,λ是拉格朗日系数,R为当前编码模式所需的比特数。
可选的,确定出一组最优中心运动矢量之后,还包括:
根据确定出的一组最优中心运动矢量生成搜索窗;
基于预设率失真优化公式从搜索窗中选取目标运动矢量;
将一组最优中心运动矢量的均值与目标运动矢量的差值确定为运动矢量差;
将运动矢量差写入当前码流。
可选的,预设率失真优化公式为:
J=SAD+λR(MVD)
其中,SAD为当前编码单元与匹配块的像素绝对差值和,R(MVD)则为表示当前MVD所需要的字节数,λ则为拉格朗日乘子。
第二方面,本申请实施例提供了一种编码单元的仿射运动估计装置,装置包括:
编码单元划分模块,用于获取并划分当前编码单元,生成n个编码块;
中心运动矢量获取模块,用于获取n个编码块各自的中心运动矢量,生成 n个第一中心运动矢量;
运动矢量组合模块,用于从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
运动矢量计算模块,用于根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
最优运动矢量确定模块,用于根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量;其中,m表示所采用的仿射运动估计模型的控制点数目;n和m为预设常数,n和m为正整数,m小于n。
第三方面,本申请实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种终端,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,编码单元的仿射运动估计装置首先获取并划分当前编码单元,生成n个编码块,然后获取n个编码块各自的中心运动矢量,生成n 个第一中心运动矢量,再从n个中心运动矢量中任意选取m个不同的编码块的中心运动矢量进行组合,生成多组中心运动矢量,其次根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量,最后根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量。由于本申请通过将编码单元划分为多个子块,并获取各子块的中心运动矢量,然后从多个运动矢量中选择最优的控制点运动矢量组合,并以多个子块为最小单位进行后续的运动补偿后获得预测块,从而降低了仿射运动估计过程中的编码复杂度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本申请实施例提供的一种迭代模块结构图;
图2是本申请实施例提供的一种编码单元的仿射运动估计方法的流程示意图;
图3是本申请实施例提供的一种当前编码单元划分后每个子块中运动矢量示例图;
图4是本申请实施例提供的一种编码单元的仿射运动估计过程的过程示意图;
图5是本申请实施例提供的另一种编码单元的仿射运动估计方法的流程示意图;
图6是本申请实施例提供的一种编码单元的仿射运动估计装置的装置示意图;
图7是本申请实施例提供的一种终端的结构示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请提供了一种编码单元的仿射运动估计方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本申请提供的技术方案中,由于本申请通过将编码单元划分为多个子块,并获取各子块的中心运动矢量,然后从多个运动矢量中选择最优的控制点运动矢量组合,并以多个子块为最小单位进行后续的运动补偿后获得预测块,从而降低了仿射运动估计过程中的编码复杂度,下面采用示例性的实施例进行详细说明。
下面将结合附图1-附图4,对本申请实施例提供的编码单元的仿射运动估计方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的编码单元的仿射运动估计装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的编码单元的仿射运动估计装置可以为用户终端,包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digitalassistant,PDA)、5G网络或未来演进网络中的终端设备等。
请参见图1,为本申请实施例提供了一种编码单元的仿射运动估计方法的流程示意图。如图1所示,本申请实施例的方法可以包括以下步骤:
S101,获取并划分当前编码单元,生成n个编码块;
其中,仿射运动估计是视频编码技术中的重要环节,通过运动估计和运动补偿技术,可以消除视频在时间上的冗余,提高编码效率。编码单元是视频数据中的图像帧经过多次划分后生成的。
例如,在生成编码单元时,获取视频数据中的图像帧,将图像帧划分成若干个不重叠的处理单元,每个处理单元被称作CTU(CodingTreeUnit,编码树单元),或者LCU(LargeCodingUnit,最大编码单元)。CTU再往下,可以继续进行更加细粒度的划分,得到一个或多个基本编码的单元,称之为CU(CodingUnit,编码单元)。
通常,由于视频信号数字化后数据带宽很高,计算机设备难以直接对之进行存储和处理,因而需要采用视频编码技术来降低视频信号的数据带宽。本申请应用在AVS3标准下的视频编码技术。
在本申请实施例中,首先从划分出的多个基本编码单元中确定并获取当前编码单元,然后确定编码块的划分数量n,最后根据编码块的划分数量n与预设划分方式将当前编码单元进行划分后生成n个编码块。
在一种可能的实现方式中,当确定出的编码块的划分数量为n=4时,可采用预设划分方式将当前编码平均划分为4个子块,分别为编码块1、编码块2、编码块3以及编码块4。
S102,获取n个编码块各自的中心运动矢量,生成n个第一中心运动矢量;
其中,运动矢量(MotionVector,MV)表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。
通常,在本申请中,每个编码块各自的中心运动矢量是通过当前编码单元的同一帧编码单元中提取的。
在本申请实施例中,在获取n个编码块各自的中心运动矢量时,首先初始化当前编码单元的同一帧编码单元,然后提取同一帧编码单元中与当前编码单元相同位置处的中心运动矢量。
在一种可能的实现方式中,当前编码单元的4个子块分别为编码块1、编码块2、编码块3以及编码块4时,首先初始化当前编码单元的同一帧编码单元,然后从同一帧编码单元中分别依次获取编码块1、编码块2、编码块3以及编码块4相同位置处的运动矢量,最后得到MV0、MV1、MV2、MV3,例如图3所示。
S103,从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
其中,m表示所采用的仿射运动估计模型的控制点数目。
在本申请实施例中,当得到4个中心运动矢量且当m为3时,通过不断获取3个不同的编码块进行遍历组合,可以组合生成4组运动矢量,具体符合公式
在一种可能的实现方式中,4个中心运动矢量分别为图3中的MV0、MV1、 MV2、MV3时,预先设定的m为3,此时可以获取MV0,MV1,MV2为第一组,可以获取MV0,MV1,MV3为第二组,可以获取MV0,MV2,MV3为第三组,可以获取MV1,MV2,MV3为第四组。
从而可生成4组中心运动矢量,分别为:P1={MV0,MV1,MV2}、P2={MV0, MV1,MV3}、P3={MV0,MV2,MV3}、P4={MV1,MV2,MV3}。
S104,根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
在一种可能的实现方式中,4组中心运动矢量,分别为:P1={MV0,MV1, MV2}、P2={MV0,MV1,MV3}、P3={MV0,MV2,MV3}、P4={MV1,MV2,MV3} 时,以第一组P1为例,可知P1中未被选中的编码块为MV3对应的编码块,此时根据P1中MV0,MV1,MV2结合公式计算出未被选中的编码块对应的中心运动矢量。计算公式为:MV3 h=(-MV0 h+MV1 h+MV2 h),MV3 v=(-MV0 v+MV1 v+MV2 v),式子中的上角标h,v分别表示MV3的水平和垂直分量。
以第二组P2为例,可知P2中未被选中的编码块为MV2对应的编码块,此时根据P2中MV0,MV1,MV3结合公式计算出未被选中的编码块对应的中心运动矢量。计算公式为:MV2 h=(-MV0 h+MV1 h+MV3 h),MV2 v=(-MV0 v+MV1 v+ MV3 v),式子中的上角标h,v分别表示MV2的水平和垂直分量。
以第三组P3为例,可知P3中未被选中的编码块为MV1对应的编码块,此时根据P3中MV0,MV2,MV3结合公式计算出未被选中的编码块对应的中心运动矢量。计算公式为:MV1 h=(-MV0 h+MV2 h+MV3 h),MV1 v=(-MV0 v+MV2 v+ MV3 v),式子中的上角标h,v分别表示MV1的水平和垂直分量。
以第三组P4为例,可知P4中未被选中的编码块为MV0对应的编码块,此时根据P4中MV1,MV2,MV3结合公式计算出未被选中的编码块对应的中心运动矢量。计算公式为:MV0 h=(-MV1 h+MV2 h+MV3 h),MV0 v=(-MV1 v+MV2 v+ MV3 v),式子中的上角标h,v分别表示MV0的水平和垂直分量。
最后,可计算出4组中心运动矢量。
S105,根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量;
其中,n和m为预设常数,n和m为正整数,m小于n。
在本申请实施例中,在确定最优中心运动矢量时,首先利用n个编码块各自的第二中心运动矢量针对与其对应的编码块进行运动补偿,生成n个预测块,计算n个预测块和其对应的编码块之间的残差像素,并基于所述残差像素计算所述n个预测块的率失真代价,最后选取n个预测块的率失真代价中最小值,并将最小值对应的一组中心运动矢量确定为一组最优中心运动矢量。
进一步地,基于所述残差像素计算所述n个预测块的率失真代价时,首先加载率失真代价计算公式,然后将每个残差像素代入率失真代价计算公式中进行计算,生成当前编码单元的预测块的率失真代价;其中,率失真代价计算公式为:J=SATD+λ·R;其中,J为率失真代价值,SATD是当前编码单元与匹配块的像素绝对差值和,λ是拉格朗日系数,R为当前编码模式所需的比特数。
进一步地,在确定出一组最优中心运动矢量之后,首先根据确定出的一组最优中心运动矢量生成搜索窗,然后基于预设率失真优化公式从搜索窗中选取率失真代价值最小的目标运动矢量,再将一组最优中心运动矢量的均值与目标运动矢量的差值确定为运动矢量差,最后将运动矢量差写入当前码流。
具体的,预设率失真优化公式为:J=SATD+λR(MVD);其中,SATD为当前编码单元与匹配块的像素绝对差值和,R(MVD)则为表示当前MVD所需要的字节数,λ则为拉格朗日乘子。
例如图4所示,图4是本申请提供的一种编码单元的仿射运动估计过程的过程示意框图,本申请场景例如n为4,m为3时,首先将当前编码单元CU划分为4个编码块,分别获取4个编码块的中心点MV,然后从4个编码块的中心点MV任意获取三个不同编码块的MV进行组合得到4组MV,以4组MV分别推导并更新4组MV中未选中MV的编码块对应的中心运动矢量,以子块为单位进行运动补偿,获得每一种组合下CU的预测像素,接着计算预测像素与当前像素的残差,然后进一步计算率失真代价,最终选择率失真代价最小的一种作为最优的控制点MV组合。
在本申请实施例中,编码单元的仿射运动估计装置首先获取并划分当前编码单元,生成n个编码块,然后获取n个编码块各自的中心运动矢量,生成n 个第一中心运动矢量,再从n个中心运动矢量中任意选取m个不同的编码块的中心运动矢量进行组合,生成多组中心运动矢量,其次根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量,最后根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量。由于本申请通过将编码单元划分为多个子块,并获取各子块的中心运动矢量,然后从多个运动矢量中选择最优的控制点运动矢量组合,并以多个子块为最小单位进行后续的运动补偿后获得预测块,从而降低了仿射运动估计过程中的编码复杂度。
请参见图5,为本申请实施例提供的另一种编码单元的仿射运动估计方法的流程示意图。如图5所示,本申请实施例的方法可以包括以下步骤:
S201,获取并划分当前编码单元,生成n个编码块;
S202,初始化当前编码单元的同一帧编码单元;
S203,提取同一帧编码单元中与当前编码单元相同位置处的中心运动矢量,生成n个中心运动矢量;
S204,从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
S205,根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
S206,利用n个编码块各自的第二中心运动矢量针对与其对应的编码块进行运动补偿,生成n个预测块;
S207,计算n个预测块和其对应的编码块之间的残差像素,并基于所述残差像素计算所述n个预测块的率失真代价;
S208,选取n个预测块的率失真代价中最小值,并将最小值对应的一组中心运动矢量确定为一组最优中心运动矢量;
其中,m表示所采用的仿射运动估计模型的控制点数目;n和m为预设常数, n和m为正整数,m小于n。
在本申请实施例中,编码单元的仿射运动估计装置首先获取并划分当前编码单元,生成n个编码块,然后获取n个编码块各自的中心运动矢量,生成n 个第一中心运动矢量,再从n个中心运动矢量中任意选取m个不同的编码块的中心运动矢量进行组合,生成多组中心运动矢量,其次根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量,最后根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量。由于本申请通过将编码单元划分为多个子块,并获取各子块的中心运动矢量,然后从多个运动矢量中选择最优的控制点运动矢量组合,并以多个子块为最小单位进行后续的运动补偿后获得预测块,从而降低了仿射运动估计过程中的编码复杂度。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图6,其示出了本发明一个示例性实施例提供的编码单元的仿射运动估计装置的结构示意图。该编码单元的仿射运动估计装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括编码单元划分模块10、中心运动矢量获取模块20、运动矢量组合模块30、运动矢量计算模块40、最优运动矢量确定模块50。
编码单元划分模块10,用于获取并划分当前编码单元,生成n个编码块;
中心运动矢量获取模块20,用于获取n个编码块各自的中心运动矢量,生成n个第一中心运动矢量;
运动矢量组合模块30,用于从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
运动矢量计算模块40,用于根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
最优运动矢量确定模块50,用于根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量;其中,m表示所采用的仿射运动估计模型的控制点数目;n和m为预设常数,n和m为正整数,m小于n。
需要说明的是,上述实施例提供的编码单元的仿射运动估计装置在执行编码单元的仿射运动估计方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的编码单元的仿射运动估计装置与编码单元的仿射运动估计方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,编码单元的仿射运动估计装置首先获取并划分当前编码单元,生成n个编码块,然后获取n个编码块各自的中心运动矢量,生成n 个第一中心运动矢量,再从n个中心运动矢量中任意选取m个不同的编码块的中心运动矢量进行组合,生成多组中心运动矢量,其次根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量,最后根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量。由于本申请通过将编码单元划分为多个子块,并获取各子块的中心运动矢量,然后从多个运动矢量中选择最优的控制点运动矢量组合,并以多个子块为最小单位进行后续的运动补偿后获得预测块,从而降低了仿射运动估计过程中的编码复杂度。
本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的编码单元的仿射运动估计方法。本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的编码单元的仿射运动估计方法。
请参见图7,为本申请实施例提供了一种终端的结构示意图。如图7所示,终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI 接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit, GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机存储介质的存储器 1005中可以包括操作系统、网络通信模块、用户接口模块以及编码单元的仿射运动估计应用程序。
在图7所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的编码单元的仿射运动估计应用程序,并具体执行以下操作:
获取并划分当前编码单元,生成n个编码块;
获取n个编码块各自的中心运动矢量,生成n个第一中心运动矢量;
从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量;
其中,m表示所采用的仿射运动估计模型的控制点数目;n和m为预设常数, n和m为正整数,m小于n。
在一个实施例中,处理器1001在执行根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量时,具体执行以下操作:
利用n个编码块各自的第二中心运动矢量针对与其对应的编码块进行运动补偿,生成n个预测块;
计算n个预测块和其对应的编码块之间的残差像素,并基于所述残差像素计算所述n个预测块的率失真代价;
选取n个预测块的率失真代价中最小值,并将最小值对应的一组中心运动矢量确定为一组最优中心运动矢量。
在一个实施例中,处理器1001在执行获取n个编码块各自的中心运动矢量时,具体执行以下操作:
初始化当前编码单元的同一帧编码单元;
提取同一帧编码单元中与当前编码单元相同位置处的中心运动矢量。
在一个实施例中,处理器1001在执行获取并划分当前编码单元,生成n个编码块时,具体执行以下操作:
获取当前编码单元;
确定编码块的划分数量n;
根据编码块的划分数量n与预设划分方式将当前编码单元进行划分;
生成n个编码块。
在一个实施例中,处理器1001在执行基于所述残差像素计算所述n个预测块的率失真代价时,具体执行以下操作:
加载率失真代价计算公式;
将每个残差像素代入率失真代价计算公式中进行计算,生成当前编码单元的预测块的率失真代价;其中,率失真代价计算公式为:
J=SATD+λ·R;其中,J为率失真代价值,SATD是当前编码单元与匹配块的像素绝对差值和,λ是拉格朗日系数,R为当前编码模式所需的比特数。
在一个实施例中,处理器1001在执行确定出一组最优中心运动矢量之后时,还执行以下操作:
根据确定出的一组最优中心运动矢量生成搜索窗;
基于预设率失真优化公式从搜索窗中选取目标运动矢量;
将一组最优中心运动矢量的均值与目标运动矢量的差值确定为运动矢量差;
将运动矢量差写入当前码流。
在本申请实施例中,编码单元的仿射运动估计装置首先获取并划分当前编码单元,生成n个编码块,然后获取n个编码块各自的中心运动矢量,生成n 个第一中心运动矢量,再从n个中心运动矢量中任意选取m个不同的编码块的中心运动矢量进行组合,生成多组中心运动矢量,其次根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量,最后根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量。由于本申请通过将编码单元划分为多个子块,并获取各子块的中心运动矢量,然后从多个运动矢量中选择最优的控制点运动矢量组合,并以多个子块为最小单位进行后续的运动补偿后获得预测块,从而降低了仿射运动估计过程中的编码复杂度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (9)
1.一种编码单元的仿射运动估计方法,其特征在于,所述方法包括:
获取并划分当前编码单元,生成n个编码块;
获取所述n个编码块各自的中心运动矢量,生成n个第一中心运动矢量;其中,n个编码块各自的中心运动矢量为MV0,MV1,MV2,MV3;
从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量;
其中,所述根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量,包括:
利用所述n个编码块各自的第二中心运动矢量针对与其对应的编码块进行运动补偿,生成n个预测块;
计算所述n个预测块和其对应的编码块之间的残差像素,并基于所述残差像素计算所述n个预测块的率失真代价;
选取所述n个预测块的率失真代价中最小值,并将所述最小值对应的一组中心运动矢量确定为一组最优中心运动矢量;
其中,所述m表示所采用的仿射运动估计模型的控制点数目;所述n和m为预设常数,所述n和m为正整数,所述m小于n且m和n的差为1。
2.根据权利要求1所述的方法,其特征在于,所述获取所述n个编码块各自的中心运动矢量,包括:
初始化所述当前编码单元的同一帧编码单元;
提取所述同一帧编码单元中与所述当前编码单元相同位置处的中心运动矢量。
3.根据权利要求1所述的方法,其特征在于,所述获取并划分当前编码单元,生成n个编码块,包括:
获取当前编码单元;
确定编码块的划分数量n;
根据所述编码块的划分数量n与预设划分方式将所述当前编码单元进行划分;
生成n个编码块。
4.根据权利要求1所述的方法,其特征在于,所述基于所述残差像素计算所述n个预测块的率失真代价,包括:
加载率失真代价计算公式;
将每个所述残差像素代入所述率失真代价计算公式中进行计算,生成当前编码单元的预测块的率失真代价;其中,所述率失真代价计算公式为:
J=SATD+λ·R;其中,J为率失真代价值,SATD是当前编码单元与匹配块的像素绝对差值和,λ是拉格朗日系数,R为当前编码模式所需的比特数。
5.根据权利要求1所述的方法,其特征在于,确定出一组最优中心运动矢量之后,还包括:
根据确定出的所述一组最优中心运动矢量生成搜索窗;
基于预设率失真优化公式从所述搜索窗中选取目标运动矢量;
将所述一组最优中心运动矢量的均值与所述目标运动矢量的差值确定为运动矢量差;
将所述运动矢量差写入当前码流。
6.根据权利要求5所述的方法,其特征在于,所述预设率失真优化公式为:
J=SAD+λR(MVD)
其中,SAD为当前编码单元与匹配块的像素绝对差值和,R(MVD)则为表示当前MVD所需要的字节数,λ则为拉格朗日乘子。
7.一种编码单元的仿射运动估计装置,其特征在于,所述装置包括:
编码单元划分模块,用于获取并划分当前编码单元,生成n个编码块;
中心运动矢量获取模块,用于获取所述n个编码块各自的中心运动矢量,生成n个第一中心运动矢量;其中,n个编码块各自的中心运动矢量为MV0,MV1,MV2,MV3;
运动矢量组合模块,用于从所述n个第一中心运动矢量中任意选取m个不同编码块的中心运动矢量进行遍历组合,生成多组中心运动矢量;
运动矢量计算模块,用于根据所述多组中心运动矢量中各组中心运动矢量计算与其对应的未选中编码块的运动矢量,生成n个编码块各自的第二中心运动矢量;
最优运动矢量确定模块,用于根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量;其中,所述m表示所采用的仿射运动估计模型的控制点数目;所述n和m为预设常数,所述n和m为正整数,所述m小于n且m和n的差为1;其中,
所述根据所述n个编码块各自的第二中心运动矢量从所述多组中心运动矢量中确定出率失真代价最小值对应的中心运动矢量,得到一组最优中心运动矢量,包括:
利用所述n个编码块各自的第二中心运动矢量针对与其对应的编码块进行运动补偿,生成n个预测块;
计算所述n个预测块和其对应的编码块之间的残差像素,并基于所述残差像素计算所述n个预测块的率失真代价;
选取所述n个预测块的率失真代价中最小值,并将所述最小值对应的一组中心运动矢量确定为一组最优中心运动矢量。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-6任意一项的方法步骤。
9.一种终端,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-6任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732569.7A CN113630602B (zh) | 2021-06-29 | 编码单元的仿射运动估计方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732569.7A CN113630602B (zh) | 2021-06-29 | 编码单元的仿射运动估计方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113630602A CN113630602A (zh) | 2021-11-09 |
CN113630602B true CN113630602B (zh) | 2024-07-02 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110868602A (zh) * | 2018-08-27 | 2020-03-06 | 华为技术有限公司 | 视频编码器、视频解码器及相应方法 |
CN111479115A (zh) * | 2020-04-14 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 一种视频图像处理方法、装置及计算机可读存储介质 |
CN112868234A (zh) * | 2019-09-24 | 2021-05-28 | 深圳市大疆创新科技有限公司 | 运动估计方法、系统和存储介质 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110868602A (zh) * | 2018-08-27 | 2020-03-06 | 华为技术有限公司 | 视频编码器、视频解码器及相应方法 |
CN112868234A (zh) * | 2019-09-24 | 2021-05-28 | 深圳市大疆创新科技有限公司 | 运动估计方法、系统和存储介质 |
CN111479115A (zh) * | 2020-04-14 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 一种视频图像处理方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11831902B2 (en) | Picture prediction method and picture prediction apparatus | |
TWI759389B (zh) | 用於視訊寫碼之低複雜度符號預測 | |
CN113455007B (zh) | 帧间点云属性编解码的方法和装置 | |
CN110741640B (zh) | 用于视频代码化中的运动补偿预测的光流估计 | |
CN112087629B (zh) | 图像预测方法、装置及计算机可读存储介质 | |
US8705611B2 (en) | Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program | |
CN110557640A (zh) | 加权交织预测 | |
JP7279154B2 (ja) | アフィン動きモデルに基づく動きベクトル予測方法および装置 | |
CN111246212B (zh) | 一种基于编解码端的几何划分模式预测方法、装置、存储介质及终端 | |
US20200260112A1 (en) | Diversified motion using multiple global motion models | |
EP3706421A1 (en) | Method and apparatus for video encoding and decoding based on affine motion compensation | |
CN111836046A (zh) | 视频编码方法及装置、电子设备和计算机可读存储介质 | |
CN109429064B (zh) | 一种视频数据的编解码方法、装置和介质 | |
CN113225554B (zh) | 一种基于神经网络的图像编解码方法、装置、存储介质及终端 | |
CN112312131B (zh) | 一种帧间预测方法、装置、设备及计算机可读存储介质 | |
CN113630602B (zh) | 编码单元的仿射运动估计方法、装置、存储介质及终端 | |
CN111654696A (zh) | 一种帧内的多参考行预测方法、装置、存储介质及终端 | |
KR20230014101A (ko) | 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치 | |
CN113630602A (zh) | 编码单元的仿射运动估计方法、装置、存储介质及终端 | |
KR20200071717A (ko) | 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치 | |
CN113242427B (zh) | 一种基于vvc中自适应运动矢量精度的快速方法及装置 | |
CN113489997A (zh) | 一种运动矢量预测方法、装置、存储介质及终端 | |
CN116847088B (zh) | 图像处理方法、处理设备及存储介质 | |
CN114666606A (zh) | 一种仿射运动估计方法、装置、存储介质及终端 | |
KR102101491B1 (ko) | 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |