一种视频编码方法及装置与流程

文档序号:11235192阅读:423来源:国知局
一种视频编码方法及装置与流程

本发明涉及视频编解码技术领域,尤其涉及一种视频编码方法及装置。



背景技术:

视频数据的数据量比较大,在传输过程中会受到网络传输上限值等的外界环境条件的限制,所以通常需要对其进行编码,编码后的数据称之为视频码流,视频码流通过有线或者无线网络的方式传输到用户端,再进行解码观看。

现有的视频编码方法为将roi(regionofinterest,感兴趣区域)模型和jnd(justnoticeabledifference,恰可察觉失真)模型结合来完成视频编码的,具体过程是图像采集设备根据roi模型将视频图像分为背景部分、边缘部分和感兴趣区域部分,对各部分进行分级量化,然后根据由jnd模型得到像素级的jnd值,对属于感兴趣区域的宏块再进行分级量化,根据jnd模型和roi模型相结合的分级量化结果进行视频编码。由于使用roi模型和jnd模型两种模型的结合,使得在编码过程中算法的复杂度增加,影响了编码的实时性,另外,使用的jnd模型得到的jnd值是像素级的jnd值,也增加了编码的耗时。



技术实现要素:

本发明提供一种视频编码方法及装置,用以解决现有技术中存在的视频编码过程中编码耗时较长的问题。

为了解决上述问题,本发明提供了一种视频编码方法,所述方法包括:

根据待编码的视频图像中的每个宏块,将每个宏块划分为设定数量个子宏块,其中每个子宏块包括至少两个像素点;

根据预先保存的恰可察觉失真jnd算法,计算每个子宏块的jnd值;根据每个子宏块的jnd值,确定每个宏块的jnd值;

根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值;根据每个宏块的权重值,每个宏块的初始量化参数qp值及预设的间隔qp算法,确定每个宏块的间隔qp值;根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值,并根据每个宏块的目标qp值进行编码。

进一步地,所述根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值包括:

根据每个宏块的jnd值,确定所述视频图像的平均jnd值;

针对每个宏块的jnd值,所述视频图像的平均jnd值,以及公式确定每个宏块的权重值,其中,所述为第i个宏块的权重值,a,b,c均为常系数,exp为以自然常数e为底的指数函数,为第i个宏块的jnd值,stjndframe为所述视频图像的平均jnd值。

进一步地,所述根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值后,在所述根据每个宏块的权重值,每个宏块的初始量化参数qp值及预设的间隔qp算法,确定每个宏块的间隔qp值之前,所述方法还包括:

根据每个宏块的jnd值,查找jnd值最小的宏块;

根据每个宏块的jnd值,确定所述jnd值最小的宏块和其他宏块的权重值的比例关系;

将所述jnd值最小的宏块的权重值更新为第一权重值,根据更新后的第一权重值,及确定的所述所述jnd值最小的宏块和其他宏块的权重值的比例关系,更新其他宏块的权重值,其中所述第一权重值不小于1。

进一步地,所述根据每个宏块的权重值,每个宏块的初始qp值及预设的间隔qp算法,确定每个宏块的间隔qp值包括:

根据公式确定每个宏块对应的间隔qp值,其中,deltaqp为当前第i个宏块的间隔qp值,qporig为该第i个宏块的初始qp值,为当前第i个宏块的权重值,d为常系数。

进一步地,所述根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值包括:

针对每个宏块,判断该宏块的初始qp值位于预设的第一初始范围区间,将所述初始qp值确定为该宏块的目标qp值;

如果该宏块的间隔qp值位于预设的第一区间,且所述初始qp值位于预设的第二初始范围区间,则将预设的第一qp增值和所述初始qp值的和确定为该宏块的目标qp值;

如果所述间隔qp值位于预设的第二区间,且所述初始qp值位于预设的第三初始范围区间,则将预设的第二qp增值和所述初始qp值的和,确定该宏块的目标qp值;

如果所述间隔qp值位于预设的第三区间,且所述初始qp值位于预设的第四初始范围区间,则将预设的第三qp增值和所述初始qp值的和,确定该宏块的目标qp值;

否则,则将所述间隔qp值和所述初始qp值的和,确定该宏块的目标qp值;

其中所述第一区间、所述第二区间和所述第三区间不重叠,所述第一初始范围区间、所述第二初始范围区间、所述第三初始范围区间和所述第四初始范围区间不重叠,所述第三qp增值大于所述第二qp增值,且所述第二qp增值大于所述第一间隔qp增值。

本发明提供了一种视频编码装置,所述方法包括:该装置包括:

恰可察觉失真jnd值计算模块,用于根据待编码的视频图像中的每个宏块,将每个宏块划分为设定数量个子宏块,其中每个子宏块包括至少两个像素点;根据预先保存的jnd算法,计算每个子宏块的jnd值;根据每个子宏块的jnd值,确定每个宏块的jnd值;

权重计算模块,用于根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值;

量化参数qp值确定模块,用于根据每个宏块的权重值,每个宏块的qp值及预设的间隔qp算法,确定每个宏块的间隔qp值;根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值;

视频编码模块,用于根据每个宏块的目标qp值进行编码。

进一步地,所述权重计算模块,具体用于根据每个宏块的jnd值,确定所述视频图像的平均jnd值;针对每个宏块的jnd值,所述视频图像的平均jnd值,以及公式确定每个宏块的权重值,其中,所述为第i个宏块的权重值,a,b,c均为常系数,exp为以自然常数e为底的指数函数,为第i个宏块的jnd值,stjndframe为所述视频图像的平均jnd值。

进一步地,所述装置还包括:

权重更新模块,用于根据每个宏块的jnd值,查找jnd值最小的宏块;根据每个宏块的jnd值,确定所述jnd值最小的宏块和其他宏块的权重值的比例关系;将所述jnd值最小的宏块的权重值更新为第一权重值,根据更新后的第一权重值,及确定的所述所述jnd值最小的宏块和其他宏块的权重值的比例关系,更新其他宏块的权重值,其中所述第一权重值不小于1。

进一步地,所述qp值确定模块,具体用于根据公式确定每个宏块对应的间隔qp值,其中,deltaqp为当前第i个宏块的间隔qp值,qporig为该第i个宏块的初始qp值,为当前第i个宏块的权重值,d为常系数。

进一步地,所述qp值确定模块,具体用于针对每个宏块,判断该宏块的初始qp值位于预设的第一初始范围区间,将所述初始qp值确定为该宏块的目标qp值;如果所述宏块的间隔qp值位于预设的第一区间,且所述初始qp值位于预设的第二初始范围区间,则将预设的第一qp增值和所述初始qp值的和确定为该宏块的目标qp值;如果所述宏块的间隔qp值位于预设的第二区间,且所述初始qp值位于预设的第三初始范围区间,则将预设的第二qp增值和所述初始qp值的和,确定该宏块的目标qp值;如果所述宏块的间隔qp值位于预设的第三区间,且所述初始qp值位于预设的第四初始范围区间,则将预设的第三qp增值和所述初始qp值的和,确定该宏块的目标qp值;否则,则将所述间隔qp值和所述初始qp值的和,确定该宏块的目标qp值;其中所述第一区间、所述第二区间和所述第三区间不重叠,所述第一初始范围区间、所述第二初始范围区间、所述第三初始范围区间和所述第四初始范围区间不重叠,所述第三qp增值大于所述第二qp增值,且所述第二qp增值大于所述第一间隔qp增值。

本发明提供了一种视频编码方法及装置,该方法包括:根据待编码的视频图像中的每个宏块,将每个宏块划分为设定数量个子宏块,其中每个子宏块包括至少两个像素点;根据预先保存的jnd算法,计算每个子宏块的jnd值;根据每个子宏块的jnd值,确定每个宏块的jnd值;根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值;根据每个宏块的权重值,每个宏块的初始量化参数qp值及预设的间隔qp算法,确定每个宏块的间隔qp值;根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值,并根据每个宏块的目标qp值进行编码。由于本发明中提供的视频编码方法中将每个宏块划分为设定数量个子宏块,每个子宏块包括至少两个像素点的子宏块,针对每个子宏块,采用jnd模型来完成编码,编码过程中的复杂度减小,并且计算量较少,减少了编码耗时,保证了编码的实时性。

附图说明

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

图1为本发明实施例1提供的一种视频编码过程的示意图;

图2为本发明实施例3提供的一种视频编码过程的示意图;

图3为本发明实施例6提供的一种视频编码过程的示意图;

图4为本发明实施例6提供的一种k为1时用于纹理检测的高通滤波器的示意图;

图5为本发明实施例6提供的一种k为2时用于纹理检测的高通滤波器的示意图;

图6为本发明实施例6提供的一种k为3时用于纹理检测的高通滤波器的示意图;

图7为本发明实施例6提供的一种k为4时用于纹理检测的高通滤波器的示意图;

图8为本发明实施例6提供的一种带权低通滤波器的示意图;

图9为本发明实施例提供的一种视频编码装置的结构图。

具体实施方式

为了减少编码过程中的编码耗时,保证编码的实时性,本发明实施例中提供了一种视频编码方法及装置。

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

图1为本发明实施例提供的一种视频编码过程的示意图,该过程包括以下步骤:

s101:根据待编码的视频图像中的每个宏块,将每个宏块划分为设定数量个子宏块,其中每个子宏块包括至少两个像素点。

本发明实施例提供的视频编码方法应用于图像采集设备,该图像采集设备可以为摄像机、摄影机等能够进行图像采集的设备,图像采集设备能够将待编码的视频图像中的每个宏块划分为设定数量个子宏块,并且每个子宏块包括至少两个像素点。

所述待编码的视频图像为视频中的一帧图像。

所述图像采集设备将每个宏块划分为设定数量个子宏块的过程是,按照预设的划分方法进行划分的。

所述预设的划分方法可以是将每个宏块划分成设定数量个子宏块,每个子宏块的大小可以相同,也可以不同,并且得到的每个子宏块的形状可以是规则的,也可以是不规则的。

为了方便计算,在本发明实施例中该预设的划分方法,可以是将每个宏块划分为设定数量个矩形子宏块。具体的可以是采用2*2的等分划分方式,将每个宏块划分为4个规则的矩形子宏块,可以是采用4*4的等分划分方式,将每个宏块划分为16个规则的矩形子宏块,也可以是采用8*8的等分划分方式,将每个宏块划分为64个规则的矩形子宏块等。子宏块划分的数量越多,每个子宏块中包含的像素点越少。

s102:根据预先保存的jnd算法,计算每个子宏块的jnd值;根据每个子宏块的jnd值,确定每个宏块的jnd值。

所述jnd算法可以是像素域jnd模型算法,也可以是变换域jnd模型算法,所述图像采集设备中预先保存有所述jnd算法。

在本发明实施例中图像采集设备中预先保存的所述jnd算法为像素域jnd模型算法。

所述根据预先保存的jnd算法,计算每个子宏块的jnd值的过程可以是根据每个子宏块中包括的每个像素点及每个像素点的像素值,计算每个子宏块中的每个像素点的像素值的平均值,根据每个子宏块的像素值的平均值,及jnd算法,计算每个子宏块的jnd值。

所述根据所述每个子宏块的像素值的平均值,及jnd算法,计算每个子宏块的jnd值的过程属于现有技术,在本发明实施例中对该过程不做赘述。

所述根据每个子宏块的jnd值,确定每个宏块的jnd值的过程可以是针对每个宏块,在该宏块的每个子宏块的jnd值,按照预设的选择规则,选择一个子宏块的jnd作为该宏块的jnd值,也可以是将该宏块的每个子宏块的jnd值确定的平均值作为该宏块的jnd值等,所述预设的选择规则可以是选择该宏块的每个子宏块的jnd值中的最大jnd值,也可以是选择该宏块的每个子宏块的jnd值中的最小jnd值等。

s103:根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值;根据每个宏块的权重值,每个宏块的初始qp(quantizationparameter,量化参数)值及预设的间隔qp算法,确定每个宏块的间隔qp值;根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值,并根据每个宏块的目标qp值进行编码。

图像采集设备中预先保存有权重因子算法,图像采集设备可以根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值。

图像采集设备中针对每个宏块,保存有每个宏块对应的初始qp值,其中图像采集设备中针对每个宏块保存的初始qp值可以是相同的,可以是不同的。

所述图像采集设备可以根据每个宏块的权重值,每个宏块的初始qp值及预设的间隔qp算法,确定每个宏块的间隔qp值;根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值。

所述图像采集设备根据每个宏块的间隔qp值或/和每个宏块的初始qp值,确定每个宏块的目标qp值的过程可以是,将每个宏块的初始qp值作为每个宏块的目标qp值,可以是将每个宏块的间隔qp值与每个宏块的初始qp值的和作为每个宏块的目标qp值,也可以是根据每个宏块的间隔qp值所在的区间,和每个宏块的初始qp所在的初始范围区间,确定每个宏块的目标qp值等。

所述根据每个宏块的目标qp值进行编码为所述图像采集设备的主控模块将待编码的视频图像的每个宏块,及每个宏块的目标qp值,输入所述图像采集设备的编码模块,完成视频图像的编码。

所述图像采集设备的主控模块将待编码的视频图像的每个宏块,及每个宏块的目标qp值,输入所述图像采集设备的编码模块,完成视频图像的编码的过程属于现有技术,在本发明实施例中不做赘述。

由于本发明实施例中提供的视频编码方法中将每个宏块划分为设定数量个子宏块,每个子宏块包括至少两个像素点的子宏块,针对每个子宏块及jnd模型来完成编码,编码过程中的复杂度减小,并且计算量较少,减少了编码耗时,保证了编码的实时性。

实施例2:

为了进一步提高编码后的视频画面质量,在上述实施例的基础上,本发明实施例中,所述根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值包括:

根据每个宏块的jnd值,确定所述视频图像的平均jnd值;

针对每个宏块的jnd值,所述视频图像的平均jnd值,以及公式确定每个宏块的权重值,其中,所述为第i个宏块的权重值,a,b,c均为常系数,exp为以自然常数e为底的指数函数,为第i个宏块的jnd值,stjndframe为所述视频图像的平均jnd值。

视频图像的编码中基于主观质量的编码的目的是利用已知的人眼视觉系统特性,如对比敏感度、视觉掩蔽效应、中央凹特性、运动感知、视觉注意等等,利用人眼敏感度的有限性,最大限度的消除人眼不敏感区域的信息,用最小的码率提供视觉感知质量较好的视频画面。

图像采集设备根据确定的每个宏块的目标qp值,对每个宏块进行编码,每个宏块的目标qp值可以直接影响到每个宏块分配的码率的多少,每个宏块的目标qp值通常是由每个宏块的初始qp值与每个宏块的间隔qp值和确定的,而每个宏块的间隔qp值是根据每个宏块的权重值和每个宏块的初始qp值的乘积与每个宏块的初始qp值的差值确定的,即权重值减去1后与初始qp值的乘积即为间隔qp值,所以每个宏块的权重值的大小一定程度上可以表征每个宏块的目标qp值的大小,从而影响到对每个宏块分配的码率的多少。

通常情况下,针对每个宏块,如果该宏块的权重值小于1,则确定的该宏块的间隔qp值为负,则根据该宏块的初始qp值与该宏块的间隔qp值的和确定的该宏块的目标qp值较小,则表明当前宏块是人眼较为敏感的区域,需要对该宏块分配更多的码率进行编码,来提高该宏块对应的视频画面质量,同理如果该宏块的权重值不小于1,则确定的该宏块的间隔qp值为正,则根据该宏块的初始qp值与该宏块的间隔qp值的和确定的该宏块的目标qp值较大,则表明当前宏块是人眼较为不敏感的区域,可以隐藏更多的失真,使用较少的码率对该宏块进行编码。

在对每个宏块进行编码时,针对每个宏块分配的码率多少是不同的,而每个宏块的码率多少会影响每个宏块编码后对应的视频画面质量,由于本发明实施例中提供的权重因子算法得到的每个宏块的权重值更加准确,进而因此确定的针对每个宏块分配的码率多少也更加准确,从而进一步提高了编码后的视频画面质量。

所述根据每个宏块的jnd值,确定所述视频图像的平均jnd值的过程属于现有技术,在本发明实施例中对该过程不做赘述。

所述a,b,c均为常系数,所述a,b,c可以是0、0.7或3等正数,所述a,b,c任意两个之间可以相同,可以不同,例如所述a可以是0.7,所述b可以是0.6,所述c可以是4。

由于本发明实施例中提供的权重因子算法得到的每个宏块的权重值更加准确,针对每个宏块分配的码率多少也更加准确,从而进一步提高了编码后的视频画面质量。

实施例3:

为了进一步降低码率,在上述各实施例的基础上,本发明实施例中,所述根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值后,在所述根据每个宏块的权重值,每个宏块的初始qp值及预设的间隔qp算法,确定每个宏块的间隔qp值之前,所述方法还包括:

根据每个宏块的jnd值,查找jnd值最小的宏块;

根据每个宏块的权重值,确定所述jnd值最小的宏块的权重值和其他宏块的权重值的比例关系;

将所述jnd值最小的宏块的权重值更新为第一权重值,根据更新后的第一权重值,及确定的所述所述权重值最小的宏块和其他宏块的权重值的比例关系,更新其他宏块的权重值,其中所述第一权重值不小于1。

视频的编码、编码后视频码流的传输及对视频码流的解码的整个过程中,由于网络传输带宽等外界条件的限制,就需要在不影响用户主观观看质量的前提下,使编码后的视频码流对应的码率尽可能的小,从而减少对传输带宽造成的压力。

通常情况下,针对每个宏块,如果该宏块的权重值小于1,则表明当前宏块是人眼敏感的区域,需要对该宏块分配更多的码率进行编码,来提高该宏块对应的视频画面质量,如果该宏块的权重值不小于1,则表明当前宏块是人眼不敏感的区域,可以隐藏更多的失真,使用较少的码率对该宏块进行编码。

由于针对每个宏块,根据每个宏块的jnd值确定的该宏块的权重值可能小于1,也可能不小于1,也就是该宏块可能是人眼敏感区域,也可能为人眼不敏感区域,根据该宏块的权重值确定的目标qp值,可能会导致最终视频图像的码率上升。因此将jnd值最小的宏块的权重值调整为不小于1的第一权重值,可以保证其他宏块的权重值是大于第一权重值的,也就是说每个宏块的权重值都是不小于1的,根据每个宏块的权重值和每个宏块的初始qp值的乘积与每个宏块的间隔qp值的差值,确定的每个宏块的间隔qp值为正,则根据每个宏块的初始qp值与每个宏块的间隔qp值的和确定的每个宏块的目标qp值相比每个宏块的初始qp值较大,从而进一步减少码率。

所述根据每个宏块的jnd值,查找jnd值最小的宏块的过程属于现有技术,在本发明实施例中对该过程不做赘述。

图像采集设备可以根据每个宏块的jnd值,确定所述jnd值最小的宏块的权重值和其他宏块的权重值的比例关系。

所述第一权重值不小于1,例如所述第一权重值可以为1、3.6或4等,由于每个宏块是否是人眼敏感区域是以每个宏块的权重值确定,而1是敏感与不敏感的临界值,所以可以将所述第一权重值取值为临界值1,其余宏块对应的权重值按比例增大,从而根据调整后的宏块的权重值确定的目标qp值也会增大,如此进一步降低码率。

下面以一个具体的实施例对本发明实施例进行说明,图2为本发明实施例提供的一种视频编码过程的示意图,该过程包括以下步骤:

s201:根据待编码的视频图像中的每个宏块,将每个宏块划分为设定数量个子宏块,其中每个子宏块包括至少两个像素点。

s202:根据预先保存的jnd算法,计算每个子宏块的jnd值;根据每个子宏块的jnd值,确定每个宏块的jnd值。

s203:根据每个宏块的jnd值,确定所述视频图像的平均jnd值;针对每个宏块的jnd值,所述视频图像的平均jnd值,以及预先保存的权重因子算法,确定每个宏块的权重值。

s204:根据每个宏块的jnd值,查找jnd值最小的宏块。

s205:根据每个宏块的jnd值,确定所述jnd值最小的宏块和其他宏块的权重值的比例关系。

s206:将所述jnd值最小的宏块的权重值更新为第一权重值,根据更新后的第一权重值,及确定的所述所述jnd值最小的宏块和其他宏块的权重值的比例关系,更新其他宏块的权重值,其中所述第一权重值不小于1。

s207:根据每个宏块的更新后的权重值及每个宏块的初始qp值,确定每个宏块的目标qp值,并根据每个宏块的目标qp值进行编码。

由于本发明实施例中将jnd值最小的宏块的权重值调整为第一权重值,根据更新后的第一权重值,及确定的所述所述权重值最小的宏块和其他宏块的权重值的比例关系,更新其他宏块的权重值,可以保证其他宏块的权重值是大于第一权重值的,也就是针对每个宏块是人眼敏感区域的编码不变,减少人眼不敏感区域的码率,从而进一步减少码率。

实施例4:

为了进一步提高编码后的视频画面质量,在上述各实施例的基础上,本发明实施例中,所述根据每个宏块的权重值,每个宏块的初始qp值及预设的间隔qp算法,确定每个宏块的间隔qp值包括:

根据公式确定每个宏块对应的间隔qp值,其中,deltaqp为当前第i个宏块的间隔qp值,qporig为该第i个宏块的初始qp值,为当前第i个宏块的权重值,d为常系数。

编码后的视频码流的大小与编码器在编码过程中设置的参数值有关,需要设置的参数包括模式、运动信息、qp等。设置的参数值的不同会对视频码流的码率产生非常重要的影响。在这些参数中,qp控制的是有损量化处理过程中损失数据量的大小,对视频码流的码率的大小有直接的影响。当其他设置的参数值都确定的情况下,qp的大小直接决定了编码后的视频画面质量及视频画面的码率大小。本发明实施例描述的是在其他参数值确定的情况,如何根据每个宏块的jnd值,确定每个宏块的目标qp值,从而在保证视频画面质量的情况下,减小视频画面的码率大小的实现方案。

图像采集设备根据确定的每个宏块的目标qp值,对每个宏块进行编码,每个宏块的目标qp值可以直接影响到每个宏块分配的码率的多少,每个宏块的目标qp值通常是由每个宏块的初始qp值与每个宏块的间隔qp值和确定的,而每个宏块的间隔qp值是根据每个宏块的权重值和每个宏块的初始qp值的乘积与每个宏块的初始qp值的差值确定的,所以每个宏块的权重值的大小一定程度上可以表征每个宏块的目标qp值的大小,从而影响到对每个宏块分配的码率的多少。

因此,每个宏块的权重值与每个宏块的初始qp值相乘后,确定的每个宏块的间隔qp值会随着初始qp值的增大而增大,从而使得根据每个宏块的初始qp值和/或每个宏块的间隔qp值确定的每个宏块的目标qp值增大。因为qp控制的是有损量化处理过程中损失数据量的大小,所以针对每个宏块来说,该宏块目标qp的增大会导致编码后该宏块对应的视频画面质量变差,由此可得,如果宏块的间隔qp值较大,就会导致该宏块对应的视频画面质量较差。在本发明实施例中使每个宏块的初始qp值较大时,减小每个宏块的间隔qp值;每个宏块的初始qp值较小时,增大每个宏块的间隔qp值。这是因为在初始qp值较小时,即使间隔qp值稍大,视频画面质量的变化也不会特别明显,不影响用户主观观看质量,而初始qp较大时,画面质量本身就不够好,若间隔qp也比较大,画面质量会受到更大影响。通过上述调整,进一步地提高了编码后的视频画面质量。

图像采集设备在根据每个宏块的权重值,每个宏块的初始qp值及预设的间隔qp值算法,确定每个宏块的间隔qp值的过程中可以是根据公式确定的,其中所述d为常系数,所述d的取值可以确定在初始qp值较小时,间隔qp值的增大程度,以及在初始qp值较大时,间隔qp值的减小程度,由于图像采集设备的编码模块在对视频图像进行编码时,每个宏块的目标qp值的范围是0~51,所以可以将d赋值为51,以保证根据初始qp值确定的间隔qp值,对视频画面质量的影响程度不会特别明显。

针对每个宏块,确定该宏块的间隔qp值可以是根据该宏块计算得到的权重值直接确定的,也可以是根据该宏块更新后的权重值确定的。如果该宏块的间隔qp值根据该宏块更新后的权重值确定的,则所述在公式中可以用来替换,用来表示当前宏块的权重值是根据更新后的第一权重值,及确定的所述jnd值最小的宏块和其他宏块的权重值的比例关系,更新后得到的,则在中所述为当前宏块更新之前的权重值,所述为将所述jnd值最小的宏块的权重值更新后的第一权重值。

所述图像采集设备根据每个宏块的间隔qp值或/和每个宏块的初始qp值,确定每个宏块的目标qp值的过程可以是将每个宏块的初始qp值作为每个宏块的目标qp值,可以是将每个宏块的间隔qp值与每个宏块的初始qp值的和作为每个宏块的目标qp值,也可以是根据每个宏块的间隔qp值所在的区间,和每个宏块的初始qp所在的初始范围区间,确定每个宏块的目标qp值等。

具体的,所述根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值包括:

针对每个宏块,判断该宏块的初始qp值位于预设的第一初始范围区间,将所述初始qp值确定为该宏块的目标qp值;

如果该宏块的间隔qp值位于预设的第一区间,且所述初始qp值位于预设的第二初始范围区间,则将预设的第一qp增值和所述初始qp值的和确定为该宏块的目标qp值;

如果所述间隔qp值位于预设的第二区间,且所述初始qp值位于预设的第三初始范围区间,则将预设的第二qp增值和所述初始qp值的和,确定该宏块的目标qp值;

如果所述间隔qp值位于预设的第三区间,且所述初始qp值位于预设的第四初始范围区间,则将预设的第三qp增值和所述初始qp值的和,确定该宏块的目标qp值;

否则,则将所述间隔qp值和所述初始qp值的和,确定该宏块的目标qp值;

其中所述第一区间、所述第二区间和所述第三区间不重叠,所述第一初始范围区间、所述第二初始范围区间、所述第三初始范围区间和所述第四初始范围区间不重叠,所述第三qp增值大于所述第二qp增值,且所述第二qp增值大于所述第一间隔qp增值。

为了避免由于每个宏块的间隔qp值和/或每个宏块的初始qp值过大而影响每个宏块的视频画面质量,可以通过对每个宏块的间隔qp值所在的区间和/或每个宏块的初始qp值所在的初始范围区间,来确定每个宏块的目标qp值,防止每个宏块的目标qp值过大而影响视频画面质量,从而进一步地提高编码后的视频画面质量。

所述第一qp增值、所述第二qp增值和所述第三qp增值为是任意正数,所述第一qp增值可以是根据所述间隔qp值位于的第一区间确定的,可以是根据所述初始qp值位于的第二初始范围区间确定的等,所述第二qp增值可以是根据所述间隔qp值位于的第二区间确定的,可以是根据所述初始qp值位于的第三初始范围区间确定的等,所述第三qp增值可以是根据所述间隔qp值位于的第三区间确定的,可以是根据所述初始qp值位于的第四初始范围区间确定的等。

如果所述第一qp增值是根据所述间隔qp值位于的第一区间确定的,所述第二qp增值是根据所述间隔qp值位于的第二区间确定的,所述第三qp增值是根据所述间隔qp值位于的第三区间确定的,则上述过程可以用以下公式表示:

其中qpnew为当前该宏块的目标qp值,deltaqp为当前该宏块的间隔qp值,qporig为当前该宏块的初始qp值,其中所述间隔qp值deltaqp的第一区间为所述间隔qp值deltaqp大于m且所述间隔qp值deltaqp不大于j,所述间隔qp值deltaqp的第二区间为所述间隔qp值deltaqp大于j其所述间隔qp值deltaqp不大于k,所述间隔qp值deltaqp的第三区间为所述间隔qp值deltaqp大于k,其中m小于j,且j小于k,且j小于k,且m,j,k的取值范围满足0~51,所述初始qp值qporig的第一初始范围区间为所述初始qp值qporig大于e,所述初始qp值qporig的第二初始范围为所述初始qp值qporig大于f且所述初始qp值qporig不大于e,所述初始qp值qporig的第三初始范围为所述初始qp值qporig大于g且所述初始qp值qporig不大于f,所述初始qp值qporig的第四初始范围为所述初始qp值qporig不大于g,g小于f,且f小于e,且g,f,e的取值范围满足0~51。进一步地,还可以是针对每个宏块的视频画面为夜间场景或者暗环境场景下的f和e的取值均不大于每个宏块的视频画面场景为白天场景下的f和e。较佳地,m,j,k的取值可以分别为1,3,6,g,f,e的取值可以分别为22,35,40;如果每个宏块的视频画面场景为白天场景下,f和e的取值可以分别为40和45。

如上述公式所示,所述第一qp增值是根据所述间隔qp值deltaqp位于的第一区间确定的,所述第一qp增值为m,所述第二qp增值是根据所述间隔qp值deltaqp位于的第二区间确定的,所述第二qp增值为j,所述第三qp增值是根据所述间隔qp值deltaqp位于的第三区间确定的,所述第三qp增值为k。

如上述公式所示的others表示所述初始qp值qporig或/和所述间隔qp值deltaqp不满足上述任意一种情况。

结合上述公式进行描述,例如,根据确定的每个宏块的权重值,针对每个宏块,根据该宏块的权重值,该宏块的初始qp值及上述公式,确定该宏块的间隔qp值,如果该宏块的间隔qp值大于m且该宏块的间隔qp值不大于j,并且该宏块的初始qp值大于f且该宏块的初始qp值不大于e,则根据上述公式确定该宏块的目标qp值为该宏块的初始qp值与m的和。

本发明实施例中,使每个宏块的初始qp值较大时,减小每个宏块的间隔qp值;每个宏块的初始qp值较小时,增大每个宏块的间隔qp值,在初始qp值较小时,即使间隔qp值稍大,视频画面质量的变化不会特别明显,并且通过对每个宏块的间隔qp值所在的区间和/或每个宏块的初始qp值所在的初始范围区间,来确定每个宏块的目标qp值,防止每个宏块的目标qp值过大而影响视频画面质量,从而进一步地提高了编码后的视频画面质量。

下面以一个具体的实施例对上述实施例进行说明,图3为本发明实施例提供的一种视频编码过程的示意图,该过程包括以下步骤:

s301:根据待编码的视频图像中每个宏块,将每个宏块划分为16个子宏块,其中所述每个子宏块包括至少两个像素点。

图像采集设备将待编码的视频图像中的每个宏块,采用4*4的等分划分方式,将每个宏块划分为16个规则的矩形子宏块。

s302:根据每个宏块中的每个子宏块,及预先保存的jnd算法,计算每个宏块中的每个子宏块的jnd值。

具体如下:

所述jnd算法为stjnd(x,y,t)=[sjnd(x,y)]·[tjnd(x,y,t)],其中所述stjnd(x,y,t)为该子宏块的jnd值,所述sjnd(x,y)为该子宏块的空域jnd值,所述[tjnd(x,y,t)]为该子宏块的时域jnd值,(x,y)为像素点的位置,该像素点代表该子宏块计算该子宏块的jnd值。

选择某一像素点代表该子宏块计算该子宏块的jnd值的过程可以是任意选择位于该子宏块内的某一像素点,也可以选择与该子宏块内的像素平均值最接近的像素点,也可以是直接将该子宏块的像素平均值作为该像素点代表该子宏块进行计算。

sjnd(x,y)=f1(bg(x,y),mg(x,y))+f2(bg(x,y))-0.3·min{f1(bg(x,y),mg(x,y)),f2(bg(x,y))},其中所述sjnd(x,y)为该子宏块的空域jnd值,f1(bg(x,y),mg(x,y))表示该子宏块对应的空间掩蔽,f2(bg(x,y))表示该子宏块对应的亮度对比度。

所述f1(bg(x,y),mg(x,y))=mg(x,y)×α(bg(x,y))+β(bg(x,y)),其中mg(x,y)表示最大带权的亮度差均值,通过计算所述像素点(x,y)周围四个方向的带权亮度改变量的均值得到,gk是用于纹理检测的高通滤波器,k为1时,所述用于纹理检测的高通滤波器如图4所示,k为2时,所述用于纹理检测的高通滤波器如图5所示,k为3时,所述用于纹理检测的高通滤波器如图6所示,k为4时,所述用于纹理检测的高通滤波器如图7所示,α(bg(x,y))=bg(x,y)×0.0001+0.115,β(bg(x,y))=μ-bg(x,y)×0.01,其中μ的取值是0.5,bg(x,y)表示背景亮度的平均值,通过如图8所示的带权低通滤波器实现,b(i,j)为带权低通滤波器。

f2(bg(x,y))通过亮度对比度来得到可视阈值,其中t0取17,ε的值为3,γ的值为3/128,时域jnd算法与每帧间视频图像亮度差强相关,每帧间视频图像亮度差越大,时域jnd值就越大。

其中为该子宏块的时域jnd值,h的值为8,l的值为3.2,τ为0.8,

根据计算得到的该子宏块对应的空域jnd值sjnd(x,y)和该子宏块的时域jnd值及公式stjnd(x,y,t)=[sjnd(x,y)]·[tjnd(x,y,t)],确定该子宏块的jnd值stjnd(x,y,t)。

s303:根据每个宏块中的每个子宏块的jnd值,确定每个宏块的jnd值。

所述根据每个宏块中的每个子宏块的jnd值,确定每个宏块的jnd值可以是将该宏块的每个子宏块的jnd值确定的平均值作为该宏块的jnd值。

s304:根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值。

根据每个宏块的jnd值,确定所述视频图像的平均jnd值;

针对每个宏块的jnd值,所述视频图像的平均jnd值,以及公式确定每个宏块的权重值,其中,所述为第i个宏块的权重值,a,b,c均为常系数,exp为以自然常数e为底的指数函数,为第i个宏块的jnd值,stjndframe为所述视频图像的平均jnd值。

s305:根据每个宏块的jnd值,查找jnd值最小的宏块;根据每个宏块的jnd值,确定所述jnd值最小的宏块和其他宏块的权重值的比例关系;将所述jnd值最小的宏块的权重值更新为1,根据更新后的第一权重值,及确定的所述所述jnd值最小的宏块和其他宏块的权重值的比例关系,更新其他宏块的权重值。

s306:根据每个宏块的更新后的权重值,每个宏块的初始qp值及预设的间隔qp算法,确定每个宏块的间隔qp值。

根据公式确定每个宏块对应的间隔qp值,其中,deltaqp为当前第i个宏块的间隔qp值,qporig为该宏块的初始qp值,为当前第i个宏块的权重值,d为常系数。

s307:根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值。

根据每个宏块的初始qp值,每个宏块的间隔qp值,及公式确定每个宏块的目标qp值。

s308:根据每个宏块及每个宏块的目标qp值,对待编码的视频图像进行编码。

由于本发明实施例中提供的视频编码方法中将每个宏块划分为设定数量个子宏块,每个子宏块包括至少两个像素点的子宏块,针对每个子宏块,采用jnd模型来完成编码,编码过程中的复杂度减小,并且计算量较少,减少了编码耗时,保证了编码的实时性。

图9为本发明实施例提供的一种视频编码装置的结构图,该装置包括:

jnd值计算模块91,用于根据待编码的视频图像中的每个宏块,将每个宏块划分为设定数量个子宏块,其中每个子宏块包括至少两个像素点;根据预先保存的jnd算法,计算每个子宏块的jnd值;根据每个子宏块的jnd值,确定每个宏块的jnd值;

权重计算模块92,用于根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值;

量化参数qp值确定模块93,用于根据每个宏块的权重值,每个宏块的qp值及预设的间隔qp算法,确定每个宏块的间隔qp值;根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值;

视频编码模块94,用于根据每个宏块的目标qp值进行编码。

所述权重计算模块92,具体用于根据每个宏块的jnd值,确定所述视频图像的平均jnd值;针对每个宏块的jnd值,所述视频图像的平均jnd值,以及公式确定每个宏块的权重值,其中,所述为第i个宏块的权重值,a,b,c均为常系数,exp为以自然常数e为底的指数函数,为第i个宏块的jnd值,stjndframe为所述视频图像的平均jnd值。

所述装置还包括:

权重更新模块95,用于根据每个宏块的jnd值,查找jnd值最小的宏块;根据每个宏块的jnd值,确定所述jnd值最小的宏块和其他宏块的权重值的比例关系;将所述jnd值最小的宏块的权重值更新为第一权重值,根据更新后的第一权重值,及确定的所述所述jnd值最小的宏块和其他宏块的权重值的比例关系,更新其他宏块的权重值,其中所述第一权重值不小于1。

所述qp值确定模块93,具体用于根据公式确定每个宏块对应的间隔qp值,其中,deltaqp为当前第i个宏块的间隔qp值,qporig为该第i个宏块的初始qp值,ηmbi为当前第i个宏块的权重值,d为常系数。

所述qp值确定模块93,具体用于针对每个宏块,判断该宏块的初始qp值位于预设的第一初始范围区间,将所述初始qp值确定为该宏块的目标qp值;如果所述宏块的间隔qp值位于预设的第一区间,且所述初始qp值位于预设的第二初始范围区间,则将预设的第一qp增值和所述初始qp值的和确定为该宏块的目标qp值;如果所述宏块的间隔qp值位于预设的第二区间,且所述初始qp值位于预设的第三初始范围区间,则将预设的第二qp增值和所述初始qp值的和,确定该宏块的目标qp值;如果所述宏块的间隔qp值位于预设的第三区间,且所述初始qp值位于预设的第四初始范围区间,则将预设的第三qp增值和所述初始qp值的和,确定该宏块的目标qp值;否则,则将所述间隔qp值和所述初始qp值的和,确定该宏块的目标qp值;其中所述第一区间、所述第二区间和所述第三区间不重叠,所述第一初始范围区间、所述第二初始范围区间、所述第三初始范围区间和所述第四初始范围区间不重叠,所述第三qp增值大于所述第二qp增值,且所述第二qp增值大于所述第一间隔qp增值。

本发明实施例提供了一种视频编码方法及装置,该方法包括:根据待编码的视频图像中的每个宏块,将每个宏块划分为设定数量个子宏块,其中每个子宏块包括至少两个像素点;根据预先保存的恰可察觉失真jnd算法,计算每个子宏块的jnd值;根据每个子宏块的jnd值,确定每个宏块的jnd值;根据每个宏块的jnd值及预先保存的权重因子算法,计算每个宏块的权重值;根据每个宏块的权重值,每个宏块的初始量化参数qp值及预设的间隔qp算法,确定每个宏块的间隔qp值;根据每个宏块的初始qp值和/或每个宏块的间隔qp值,确定每个宏块的目标qp值,并根据每个宏块的目标qp值进行编码。由于本发明实施例中提供的视频编码方法中将每个宏块划分为设定数量个子宏块,每个子宏块包括至少两个像素点的子宏块,针对每个子宏块,采用jnd模型来完成编码,编码过程中的复杂度减小,并且计算量较少,减少了编码耗时,保证了编码的实时性。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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