刘阳 等: 一种分级检索MPEG视频的方法 677 到文献[7]用该特征进行镜头分割并得到较好效果.根据MPEG标准,设diff(i)表示当dct_dc_size=i时DC差值的取值范围,当i≥1时,diff(i)的取值范围为±(2i 1,2i 1).文献[7]直接将dct_dc_size字段作为特征值,这样会存在两方面问题:一是未考虑量化系数和差值的正负;二是未考虑dct_dc_size表示的是编码长度,而不是实际差值.直接作为特征值有较大误差,例如:很明显diff(8) diff(7)>diff(3) diff(2),为克服以上不足,定义如下的加权特 征值:
当i=0; 0
i 1iW(x,y)= 2+2 1 Q(x,y) sign(diff(x,y))int 当i≥1. 2 (1)
式(1)中W(x,y)表示块(x,y)的加权特征值,i为块(x,y)的dct_dc_size字段值,Q(x,y)表示其量化系数,sign(diff(x,y))根据实际差值数据的最高有效位MSB取正号或负号,它位于dct_dc_size字段VLC编码的后面,int()表示取整运算.
对图1所示的宏块(i,j),由式(1)进一步定义以下比文献[7]更合理的特征值:
块(2i+1,2j)与块(2i,2j)间的水平加权特征值:
宏块(i,j)的总加权特征值:
T(i,j)=H1(i,j)+H2(i,j)+V1(i,j)+V2(i,j)+G(i,j). (7)
在本级快速粗检中,我们利用以上的加权特征值,计算样本和被比较片断的I帧的相似度.首先提取样本中每个I帧的加权特征值,然后与数据库的各片断的相应I帧相比较.对每对I帧的帧间差定义如下:
N 1M 1
j=0i=0H1(i,j)=W(2i+1,2j); 块(2i+1,2j+1)与块(2i,2j+1)间的水平加权特征值: H2(i,j)=W(2i+1,2j+1); 块(2i,2j+1)与块(2i,2j)间的垂直加权特征值: V1(i,j)=W(2i+1,2j)+W(2i,2j+1); 块(2i+1,2j+1)与块(2i+1,2j)间的垂直加权特征值: V2(i,j)=W(2i,2j+1)+W(2i+1,2j+1); 宏块(i,j)第1个块和宏块(i 1,j)最后块间的加权特征值: G(i,j)=W(2i,2j); (2) (3) (4) (5) (6) D(k)=∑∑Tr(i,j) TC(i,j)
N 1M 1.
Tr(i,j)(8) ∑∑j=0i=0
式(8)中D(k)表示第k对I帧的帧间差,Tr(i,j)和Tc(i,j)分别表示样本和被比较片断的第k个I帧的宏块(i,j)的加权特征值,假设视频分辨率为16M×16N.
接下来,需计算样本和被比较片断中所有对应I帧间的平均帧间差,并定义如下不等式判断其相似性:
S 1
(9) ≤ç1, S
式(9)中S表示样本包含的I帧数量.η1是判断是否相似的阈值,调整其大小可控制检索精度.因本级检测目的是k=0∑D(k)过滤明显不匹配的片断,η1设置原则是尽可能保留基本相似的片断,一般地,当分辨率为352×288时,η1应小于2,具体实现时可灵活设置,例如可预先统计样本与所有片断的帧间差,不具体设置η1值,然后按平均帧间差由小到大选取一定数量的片断.
不直接用DC值作为检索特征值,是因为本级检索是快速粗检,目的是为初步排除明显不相似的视频片断,使用DC值会使比较过于精细.另一方面,用dct_dc_size字段可降低解码运算量.