基于视频内容的视频编码方法

文档序号:6607131阅读:211来源:国知局
专利名称:基于视频内容的视频编码方法
技术领域
本发明涉及计算机数字视频编码技术领域,针对的是视频编码系统。
在JVT所提供的视频编码技术中,有关环滤波技术是如下描述的采用经过统计得到的环滤波插值函数,所有的插值系数都是固定不变的,没有和不同的视频内容建立相互影响关系。这种技术中所有使用的插值滤波函数都是经过对视频内容的统计而得到的。该技术的最大缺点就是不考虑视频内容的特征,无法充分利用视频内容对象之间的相互关系。这将导致不同内容的视频有不同的压缩效果。
本发明是在现有JVT提供的编码标准6.0版本的基础上,主要改动了环滤波的一些方法和编码流程。其具体创新点在于针对不同视频内容,考虑了视频内容之间的相互联系和相互影响,添加了四个影响因子,并将这四个影响因子通过加权平均,添加到插值滤波函数中。具体来说,方案中包括了下列技术内容1、相邻宏块之间的相关性相关性的衡量采用数理统计中的传统方法,即为相关系数的计算。本发明采用的宏块计算,一般来说按照变换的模块大小,分为4×4的模块和8×8的模块。计算得到的相邻宏块之间的相关系数以后,将该系数取对数添加到插值滤波函数中。
2、宏块的运动向量信息运动向量的大小直接影响了环滤波的效果。本发明对宏块的运动向量采用均值和差值两种处理办法。如果相邻宏块的运动向量差值为零,则说明没有块效应,应该取消环滤波。否则就应该做环滤波。而且,如果运动向量的均值比较大,则说明图像运动比较剧烈,应该加大环滤波的强度。否则应该相应减小。
3、相邻像素之间的像素差值相邻像素之间,如果像素差值很小,则说明相关性比较大,所以在插值滤波函数中应该担当比较重要的决策因素。反之,则该像素的影响力度要有所减轻。
4、宏块的量化值(QP)信息QP值最终决定了环滤波的作用与效果。一般来说,QP值越大,则分块编码所产生的块效应就越大。对宏块所使用的QP值取对数,所得到的数值添加到插值滤波函数中。
对于插值滤波函数,应该综合考虑这四个影响因子。将这四个影响因子进行加权累加,得到一个综合的滤波系数因子。
本发明的技术方案如图2-图5所示。这种基于视频内容的视频编码方法,是通过视频摄像机得到原始视频流作为输入,通过视频采集卡后变成视频数据流进入计算机,并采用JVT提供的6.0版本的视频编码技术,由计算机进行处理与运算,其方法步骤为计算机系统接受采集卡处理好的原始视频流,经过变换和量化后,并通过视频处理子程序后所得到的数据流再回馈到输入部分,主要做编码校正,继续参与变换和量化,然后做熵编码,最后输出编码好的视频数据流,本发明的特征在于,所述的视频处理子程序主要是对视频进行运动补偿与预测,其方法步骤为对视频依次做新的反量化、反变换处理后,进入环滤波子程序,然后存储处理后的视频帧,对视频帧做运动补偿和运动估计,运动补偿所得到的结果用来辅助编码,反馈回环滤波子程序中,最后作运动估计,得到的数据作为子系统的输出;前述的环滤波子程序中是在JVT视频编码技术的环滤波中,将图像编码的QP值,相邻宏块之间的相关系数,相邻像素之间的像素差值,宏块的运动向量均值这四个影响因子输入到环滤波中,作为插值系数,这四个影响因子经过优化组合进行滤波。其环滤波子程序的依次方法步骤如下1)测定当前编码宏块和相邻宏块之间的运动向量的差值,如果插值为零,则不做环滤波,退出环滤波子程序;如果差值不为零,则进行下一步;2)测定相邻宏块之间的相关性,如果计算得到的相关性大,说明宏块之间有很大的关系,应该加强其影响力度,采用较强的滤波系数;反之,如果计算得到的相关性小,就采用较弱的滤波系数;3)测定相邻宏块之间的像素差值,如果像素差值小,说明宏块之间有很大的关系,应该加强其影响力度,采用较强的滤波系数;反之,如果像素差值大,采用较弱的滤波系数;4)测定当前编码宏块的量化值(QP),如果量化值大,则采用较强的滤波系数,反之,采用较弱的滤波系数;5)测定宏块的运动向量均值,如果运动向量均值大,则采用较强的滤波系数,反之,采用较弱的滤波系数;6)最后,对宏块的边界强度进行判定,边界强度越大,则滤波系数越强,如果边界强度为0,则不做环滤波基于视频内容的视频编码方法中所述的环滤波子程序中、作为插值系数输入到环滤波中的四个影响因子的取得分别为宏块图像编码的QP值主要对当前编码的宏块的QP值作指数处理,得到的幂指数作为影响因子,这里的QP值是指宏块的量化参数值,主要作用是决定了对当前视频数据流作量化的单位长度。
相邻宏块之间的相关系数通过下述公式进行计算 其中,corvariance=Σi=03((|Pi-P‾|)×(Qi-Q‾));MSE=Σi=03(Pi-Qi)24;]]>P‾=Σi=03Pi4;Q‾=Σi=03Qi4;]]>这里P,Q分别代表两个相邻的宏块Pi和Qi则分别代表宏块内的像素点;相邻宏块之间的像素差值,利用像素平均差值计算 宏块的运动向量均值,则在当前编码的宏块内,计算所有像素的运动向量均值 这里的H和W分别代表了当前宏块的高度和宽度;MotionVector[x][i][j]代表了(i,j)点的运动向量,当x=0的时候,表示X轴方向的运动向量分量;当x=1的时候,表示Y轴方向的运动向量分量。
本发明可以很好地消除由于分块变化编码所带来的块效应,以达到很高的编码效率以及更好的编码效果。
实际上,像素之间的像素值对滤波效果有一定的影响作用。所以,本文提出的环滤波编码方案考虑了相邻像素之间的关系,对所要计算的八个像素点的相邻像素作差,取绝对值,然后取这四个的平均值,用作通道位移变量。具体如下 这里P,Q分别代表两个相邻的宏块Pi和Qi则分别代表宏块内的像素点。由于相邻像素之间的差距在一般情况下比较小,所以相邻宏块之间的像素差值将直接用于通道位移的可变量。
2、相邻宏块之间的相关性考虑方案基于内容的环滤波编码方案,必然应该考虑相邻宏块之间的相关性。因为如果相邻宏块之间的相关性很大,则对滤波效果应该有很大的不同。所以,在插值方案中添加相邻宏块的相关性参数。具体如下 其中,corvariance=Σi=03((|Pi-P‾|)×(Qi-Q‾));MSE=Σi=03(Pi-Qi)24;]]>P‾=Σi=03Pi4;Q‾=Σi=03Qi4;]]>这里P,Q分别代表两个相邻的宏块Pi和Qi则分别代表宏块内的像素点。由于一般情况下相关系数值比较大,为了不影响插值滤波的实际效果,对计算得到的相关系数值作归一化处理,归一化的参数值经过统计得到。关于相关系数值的具体应用,将在后面做统一的阐述。
3、运动向量的分级滤波方案经过对视频序列的统计分析,发现运动比较剧烈的视频对以上处理结果有不同的滤波效果。因此对视频内容的运动剧烈程度作划分,将有效提高上面的滤波系数改良效果。对当前帧的运动向量,对当前帧的所有运动向量求平均值。所得到的运动向量均值。 这里的H和W分别代表了当前宏块的高度和宽度;MotionVector[x][i][j]代表了(i,j)点的运动向量,当x=0的时候,表示X轴方向的运动向量分量;当x=1的时候,表示Y轴方向的运动向量分量。
但是运动向量均值相对于前面所提到的相关值来说,数值很大,所以也需要以相关系数值为基准作归一化。在做归一化之前,先对运动向量均值取2的幂指数,所得到的数值再做归一化。
4、对量化值(QP)的综合考虑方案众所周知,环滤波效果与量化值(QP)有很大关系,所以环滤波方案中很有必要将QP值的影响因素考虑在内。同理,由于QP值相对于前面所提到的相关值来说,数值也很大,所以也需要以相关系数值为基准作归一化。这里,改进办法与运动平均向量相同。
5、综述综合以上四种因素的考虑,实际改进细节如下首先,针对不同的视频序列,按条件组合以上四种因素,具体如下(其中,下面的运动向量frm_mv和量化值frm_qp都是经过2的幂次处理)
当frm_mv>12时 当frm_mv≥10时 当frm_mv<10时 以上是对相关系数值作综合考虑后的结果,至于在具体滤波方案中,有如下改进(1)当边界强度为4的时候首先,改变判断条件如果宏块之间的像素差值>1那么判断标准为|p0-q0|<((α>>((cor×2+frm_qp+d)>>d))+frm_qp);这里的α代表了像素阀值,cor代表了宏块之间的相关系数,d代表了宏块之间的像素差值;(以下公式的符号表示含义与此相同)否则判断标准为|p0-q0<((a>>(d+frm_qp));p0=(p2+2×p1+2×p0+2×q0+q1+frm+qp)>>3;p1=(p2+p1+p0+q0+cor)>>2;p2=(2×p3+3×p2+p1+p0+q0+frm+qp)>>3;如果不满足条件p0=(2×p1+p0+q1+cor)>>2;以上的>>表示右移位操作,<<表示左移位操作。至于q0,q1,q2,q3,则同样按照以上规则进行处理。(2)边界强度小于4的时候改变差异度衡量标准=Clip3(-C,C,(((q0-p0)×4+(p1-q1)+((frm_qp×2+d+cor)÷2))÷8));这里的代表衡量计算得到的值,C表示最大阀值,-C表示最小阀值。Clip3(-C,C,V)表示对V值限定上下限(-C,C)。V表示上面计算得到的值。p1=p1+Clip3(-C0,C0,(p2+(p0+q0)2-2×p1+((frm_qp+d)2-2×cor))÷2);]]>q1=q1+Clip3(-C0,C0,(q2+(p0+q0)2-2×q1+((frm_qp+d)2-2×cor))÷2);]]>由于以上的计算公式计算复杂度较高,所以在方案实现中,所有的除法和乘法全部采用对数据作左右移位操作,这样计算效果相同,同时保证了整个方案的计算复杂度基本没有增加。
本实施例的实验效果显著,可以有效提高数字视频的编码效率,具体实验效果数据如下第一个测试视频序列的测试结果(帧率30Hz,20帧,176*144)

第二个测试视频序列的测试结果(帧率30Hz,20帧,176*144)

权利要求
1.一种基于视频内容的视频编码方法,是通过视频摄像机得到原始视频流作为输入,通过视频采集卡后变成视频数据流进入计算机,并采用JVT提供的6.0版本的视频编码技术,由计算机进行处理与运算,其方法步骤为计算机系统接受采集卡处理好的原始视频流,经过变换和量化后,并通过视频处理子程序后所得到的数据流再回馈到输入部分,主要做编码校正,继续参与变换和量化,然后做熵编码,最后输出编码好的视频数据流,本发明的特征在于,所述的视频处理子程序主要是对视频进行运动补偿与预测,其方法步骤为对视频依次做新的反量化、反变换处理后,进入环滤波子程序,然后存储处理后的视频帧,对视频帧做运动补偿和运动估计,运动补偿所得到的结果用来辅助编码,反馈回环滤波子程序中,最后作运动估计,得到的数据作为子系统的输出;前述的环滤波子程序中是在JVT视频编码技术的环滤波中,将图像编码的QP值,相邻宏块之间的相关系数,相邻像素之间的像素差值,宏块的运动向量均值这四个影响因子输入到环滤波中,作为插值系数,其环滤波子程序的依次方法步骤如下1)测定当前编码宏块和相邻宏块之间的运动向量的差值,如果插值为零,则不做环滤波,退出环滤波子程序;如果差值不为零,则进行下一步;2)测定相邻宏块之间的相关性,如果计算得到的相关性大,说明宏块之间有很大的关系,应该加强其影响力度,采用较强的滤波系数;反之,如果计算得到的相关性小,就采用较弱的滤波系数;3)测定相邻宏块之间的像素差值,如果像素差值小,说明宏块之间有很大的关系,应该加强其影响力度,采用较强的滤波系数;反之,如果像素差值大,采用较弱的滤波系数;4)测定当前编码宏块的量化值(QP),如果量化值大,则采用较强的滤波系数,反之,采用较弱的滤波系数;5)测定宏块的运动向量均值,如果运动向量均值大,则采用较强的滤波系数,反之,采用较弱的滤波系数;6)最后,对宏块的边界强度进行判定,边界强度越大,则滤波系数越强,如果边界强度为0,则不做环滤波
2.根据权利要求1所述的基于视频内容的视频编码方法,其特征在于,所述的环滤波子程序中、作为插值系数输入到环滤波中的四个影响因子的取得分别为宏块图像编码的QP值主要对当前编码的宏块的QP值作指数处理,得到的幂指数作为影响因子,这里的QP值是指宏块的量化参数值,主要作用是决定了对当前视频数据流作量化的单位长度。相邻宏块之间的相关系数通过下述公式进行计算 其中,corvariance=Σi=03((|Pi-P‾|)×(Qi-Q‾));]]>MSE=Σi=03(Pi-Qi)24;]]>P‾=Σi=03Pi4;]]>Q‾=Σi=03Qi4;]]>这里P,Q分别代表两个相邻的宏块Pi和Qi则分别代表宏块内的像素点;相邻宏块之间的像素差值,利用像素平均差值计算宏块的运动向量均值,则在当前编码的宏块内,计算所有像素的运动向量均值 这里的H和W分别代表了当前宏块的高度和宽度;MotionVector[x][i][j]代表了(i,j)点的运动向量,当x=0的时候,表示X轴方向的运动向量分量;当x=1的时候,表示Y轴方向的运动向量分量。
全文摘要
一种基于视频内容的视频编码方法,涉及数字视频编码技术领域。该方法是将经摄像机、视频采集卡后得到的视频数据流输入计算机,视频数据流在计算机中依次进行变换和量化,再经过视频处理子程序后回馈到输入部分,继续参与变换和量化,之后做熵编码,最后输出编码好的视频数据流。所述的视频处理子程序主要是对视频进行运动补偿与预测;其中的环滤波子程序是在JVT视频编码技术的基础上,将图像编码的QP值,相邻宏块之间的相关系数,相邻像素之间的像素差值,宏块的运动向量均值这四个影响因子输入到环滤波中,并将这四个影响因子通过加权平均,添加到插值滤波函数中。该方法很好地消除了由于分块变化编码带来的块效应,达到了很高的编码效率和效果。
文档编号G06T9/00GK1450497SQ0312294
公开日2003年10月22日 申请日期2003年4月25日 优先权日2003年4月25日
发明者尹宝才, 王雁来, 孔德慧, 张楠 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1