发明内容
在会议电视和可视电话等应用中,一般情况下对肤色(特别是人脸)的关注程度要高于图像中的其它内容,因此,在使用视频压缩标准进行视频图像压缩时,特别是在低带宽情形时,如能设法使肤色图像数据的损失尽量小而具有较好的保真度,则能收到更令人满意的视讯交流效果。本发明就是基于H.263等视频压缩标准,提出一种基于肤色检测和运动检测的视频图像数据压缩和编码的方法,以提高图像质量。
为此,本发明采用如下技术方案:
一种视频压缩方法,在发送端将输入视频数据进行运动估计、运动补偿、DCT变换、量化以及熵编码步骤的处理后,将所述视频数据发送给接收端,并在接收端进行与发送端相反的处理步骤,还原视频图像数据;
其特征在于所述的方法还包括在发送端进行:
检测步骤:将图像分为前景图像和背景图像,并标识为前景宏块和背景宏块;
QP值调整步骤:将前述前景宏块和背景宏块量化级参数QP值进行量化级调整。
所述的检测步骤,包括肤色检测步骤和运动检测步骤。
所述的肤色检测步骤近一步包括:
肤色图像初检步骤:在宏块层次上判定肤色检测内容;
背景图像填充处理步骤:对初检后的背景图像进行填充处理;
前景图像填充处理步骤:对初检后的前景图像进行填充处理。
所述的背景图像填充处理步骤进一步包括:
判断孤立模块;
统计落在背景图像模板中的目标宏块数目,根据设定阈值判定背景图像,并对背景图像填充处理。
所述的前景图像填充处理步骤进一步包括:
统计落在前景图像模板内的目标宏块数目;
根据设定阈值判定前景图像,并对前景图像填充处理。
所述的方法,还包括边界填充的步骤。
所述的运动检测步骤,包括:
根据运动估计中计算得到的当前宏块与前一帧重构图像中对应位置宏块的差值以及运动估计矢量来判断当前宏块的运动特性,并根据设定阈值分别统计当前帧的大运动宏块总数、中运动宏块总数和小运动宏块总数。
所述的宏块量化级调整步骤进一步包括:
将整帧图像宏块分别标识为肤色宏块标识、运动宏块标识、静止部分标识,并且依据设定的运动矢量阈值将运动宏块分别标识为不同级别的运动宏块类型。
所述的不同级别的运动宏块类型分别为大运动宏块、中运动宏块和小运动宏块,所述的处理方式进一步包括:
前景大运动情形:前景码率比重比计算结果略微减小,相应增加了后景码率比重;
前景中运动情形:前景码率比重按照计算结果取值;
前景小运动情形:前景码率比重比计算结果略微增加,相应减小了后景码率比重。
所述的方法,进一步包括以下判断步骤之一或者组合:
如果肤色MB数与运动MB数之和超过第一阈值,则不进行肤色MB的QP值调整;
如果肤色MB数超过第二阈值,则第一个肤色MB之前的MB的QP值要加1;
如果运动MB数超过第三阈值,则不进行运动MB的QP值调整;
如果大运动MB数超过第四阈值,则第一个大运动MB之前的静止MB的QP值要减1;
如果小运动MB数超过第五阈值,则第一个小运动MB之前的静止MB的QP值要加1;
如果静止MB数超过第六阈值,则第一个运动MB之前的所有MB的QP值要减1。
本发明是在H.261、H.263、MPEG1、MPEG2和MPEG4等标准实现中,不依赖对象形状信息,通过增加肤色检测和运动检测等前处理过程,对前景图像和背景图像分别进行考虑和调整QP值,对于视频通信应用,在保持总的编码效率和整体图像质量的情况下,可以得到基于内容编码的好的图像主观效果,增加的计算复杂度也较小。
具体实施方式
下面结合说明书附图来说明本发明的具体实施方式。
对于会议电视和可视电话等视频通信应用来说,可以将视频图像分割成前景和背景,这样有助于提高主观视觉质量,符合人眼的注意力集中机制,并使得在低带宽下仍能保证图像的主观质量。前景区主要是指感兴趣的目标(包括肤色等)、运动的物体以及靠近摄像头的物体。背景区主要是指非感兴趣的目标、静止的物体以及远离摄像头的物体。在会议电视和可视电话等应用中,一般情况下对前景图像(特别是人脸图像)的关注程度要高于图像中的其它内容,对参会者特别是发言者本人图像及一些动作也比较关注,因此,在使用视频压缩标准进行视频图像压缩时,特别是在低带宽情形时,如能设法使肤色图像数据的损失尽量小而具有较好的保真度,并且尽量提高前景图像的清晰度,则能收到更令人满意的视讯交流效果。
本发明通过肤色检测和运动检测,将图像分割为前景图像和背景图像,分别标识前景宏块和背景宏块,然后对码率控制计算所得的宏块量化级参数QP(Quantization Prediction,用于将图象象素值或者预测差值缩小的量化因子)值进行前景和背景量化级调整,以达到在保证整体图像质量较好的情况下提高前景图像质量的效果,从而得到较好的主观图像质量。其处理流程示意图如图2所示。
本发明在发送端将输入视频数据进行运动估计、运动补偿、DCT变换、量化以及熵编码等步骤的处理后,将所述视频数据发送给接收端,并在接收端进行与发送端相反的处理步骤,还原视频图像数据;
另外,还包括:
检测步骤:将图像分为前景图像和背景图像,并标识为前景宏块和背景宏块;
QP值调整步骤:将前述前景宏块和背景宏块量化级参数QP值进行量化级调整。
下面具体阐述本发明详细的技术方案,其主要包括以下三个过程:
一、肤色检测处理,包括:
1、肤色图像粗检:
利用肤色分割人脸由于不受空间几何信息影响因而具有较强的鲁棒性,且算法简单效率较高。大多数人脸的肤色总是分布在某一范围之内。经过统计分析,可以得到人脸的肤色分布范围:Y(TY1~TY2)、Cb(TCB1~TCB2)、Cr(TCR1~TCR2)。判定人脸图像是在宏块层次上按如下算法进行:
对第(i,j)位置上的宏块遍历宏块内所有(m,n)位置上的象素点,并累计下属于肤色的象素点个数(skin_num)。
if TY1<Y(m,n)<TY2&&TCB1<Cb(m,n)<TCB2&&TCR1<Cr(m,n)<TCR2then skin_num=skin_num+1;
如果skin_num>T时,则认为该宏块为肤色宏块,并对其作标记,统计肤色宏块总数。
例如,作为一种实现方式,可以取TY1=50,TY2=200,TCB1=80,TCB2=140,TCR1=130,TCR2=170,T=10。
2、前景和背景图像填充处理:
经过肤色图像粗检步骤后,前景(肤色)图像或背景图像内部可能会出现许多“空洞”,此时就要进行填充处理,滤除这些“空洞”。用1标志前景宏块,0标志背景宏块。填充的扫描次序是从左至右,从上至下逐行扫描。包括以下三种背景区填充:
背景区填充:
第一步:判别孤立宏块,例如:
如果出现图示情况,则判断该宏块为孤立宏块,将前景宏块标记置为0。
第二步:紧接第一步,当前扫描宏块的位置记为(j,i),可向右下作2x2模板,
(j,i) |
(j,i+1) |
(j+1,i) |
(j+1,i+1) |
统计落在模板中目标宏块的个数,记为SUM。
①如果SUM=0,则继续扫描下一个宏块。
②如果SUM≠0,则将模板扩展为4x4,如下表所示:
统计落在4x4模板中目标宏块的个数,记为Count。
如果SUM>=3并且Count=SUM,则将模板内的所有宏块标记置0;
如果0<SUM<3并且Count-SUM≤1,则将模板内的所有宏块标记置0。
前景区填充。
在背景区填充完成之后,即可进行前景区填充。
第一步:当前扫描宏块的位置记为(j,i),可作5x5模板,
统计落在模板内的宏块个数记为Count,前景宏块个数为SUM。
如果SUM大于某一阈值,例如SUM≥Count×0.4,则将模板的所有宏块标记置1;
否则,进入第二步。
第二步:仍以当前宏块为中心作3x3模板,
统计落在3x3模板内的宏块个数记为Count,目标宏块个数为SUM。
如果SUM大于某一阈值,例如SUM≥Count×0.4,则将3x3模板的所有宏块标记置1;
边界填充
边界填充算法比较简单,采用如图3所示的填充方法:
图中目标为检测的前景宏块,填充的位置为被误检为背景的宏块。
2、运动检测:
为了减少计算复杂度,直接根据运动估计中计算得到的当前宏块与前一帧重构图像中对应位置宏块的差值SAD0以及运动估计矢量MVX、MVY来判断当前宏块的运动特性,并分别统计当前帧的运动宏块总数、中运动宏块总数和小运动宏块总数。
3、宏块量化级调整:
经过前面几个步骤处理后,可将整帧图像宏块分别进行标识:肤色宏块标识、运动宏块标识、静止部分标识,并且依据运动矢量的大小将运动宏块分为“大运动”、“中运动”和“小运动”三种类型,并分别标识。
(1)侧重点分析
前景大运动情形:前景码率比重比计算结果略微减小,相应增加了后景码率比重;
前景中运动情形:前景码率比重按照计算结果取值;
前景小运动情形:前景码率比重比计算结果略微增加,相应减小了后景码率比重。
几种特殊情况下的处理方法:
如果肤色MB数与运动MB数之和超过某一阈值,例如50%,则不进行肤色MB的QP值调整;(MB:Macroblock,宏块,16X16大小的图象象素块)
如果肤色MB数超过某一阈值,例如20%,则第一个肤色MB之前的MB的QP值要加1;
如果运动MB数超过某一阈值,例如50%,则不进行运动MB的QP值调整;
如果大运动MB数超过某一阈值,例如20%,则第一个大运动MB之前的静止MB的QP值要减1;
如果小运动MB数超过某一阈值,例如20%,则第一个小运动MB之前的静止MB的QP值要加1;
如果静止MB数超过某一阈值,例如80%,则第一个运动MB之前的所有MB的QP值要减1。
(2)方法的主要框架描述,可以采用如下伪程序语言:
if(该MB属于肤色部分)
{
该MB的QP值比计算值减小1或2。
}
else
{
if(该MB属于运动部分)
{
if(该MB属于大运动情形)
{
该MB的QP值比计算值增大1或2或者适当削去DCT部分高频分量。
}
else if(该MB属于中运动情形)
{
该MB的QP值取为计算值。
}
else if(该MB属于小运动情形)
{
该MB的QP值比计算值减小1或2。
}
}
else(该MB属于静止部分)
{
对该MB的QP值进行限制:
(a)与前一帧静止部分的同一位置处MB的QP值相差限制:
-1~1或-2~2。
(b)同帧静止部分各MB的QP值相差限制:
-1~1或-2~2。
}
}
(3)平滑背景宏块的量化系数:
此处理的主要目的是使所有背景宏块的量化系数趋于一致,从而减小图像中背景部分的抖动。具体处理过程描述如下:
对任何一个背景宏块,设由计算得到的其量化系数为QP_new,本帧中所有已编码背景宏块的量化系数平均值为partMean,当前宏块的相邻的前一个宏块的量化系数为QP_prev,则:
①如果partMean>QP_prev并且QP_new<QP_prev
QP_new QP_prev partMean
---------------|---------------------|------------------------------|----------------->QP增加
则令QP_new=QP_prev
②如果partMean<QP_prev并且QP_new>QP_prev
partMean QP_prev QP_new
-----------|---------------------|------------------------------|----------------->QP增加
则令QP_new=QP_prev
③如果partMean-QP_prev>=2并且QP_new>QP_prev且
QP_new-QP_prev<=2
QP_prev QP_new QP_prev+2 partMean
-------------------|-----------------|---------------------|---------------------|-------->QP增加
则令QP_new=QP_prev+2
④如果partMean-QP_prev<=-2并且QP_new<QP_prev且
QP_new-QP_prev>=-2
partMean QP_prev-2 QP_new QP_prev
-------------------|-----------------|---------------------|---------------------|-------->QP增加
则令QP_new=QP_prev-2。
本发明所述方法的突出优点是:
(1)本发明所述的基于肤色检测和运动检测的视频压缩方法能比较好地将前景和后景图像进行分割,在保持总的编码效率和整体图像质量的情况下,能提高前景图像的质量和清晰度,从而能得到较好的主观图像质量效果。
(2)本发明所述的基于肤色检测和运动检测的视频压缩方法所增加的计算量很小,计算复杂度较低,便于实时应用。
本发明针对一些测试序列和摄像机实时采集图像,对本发明所给出的基于肤色检测和运动检测的视频压缩方法进行了对比测试,结果显示,能比较好地将前景和后景图像进行分割,在保持总的编码效率和整体图像质量的情况下,能提高前景图像的质量清晰度,从而能得到较好的主观图像质量效果。