发明名称 基于场景检测的自适应运动补偿帧频提升方法
摘要 一种基于场景检测的自适应运动补偿帧频提升方法,包含以下步骤:步骤1,静止场景检测,判断该两帧是否为静止场景帧,如是静止场景帧则转到步骤4,如是非静止场景帧,则执行下一步;步骤2,复杂运动场景检测,判断该两帧是否为复杂运动场景帧,如是复杂运动场景帧则转到步骤4,如是非复杂运动场景帧,则执行下一步;步骤3,全局运动场景检测,判断该两帧是否为全局运动场景帧,如是全局运动场景帧则转到步骤5,如是非全局运动场景帧,则执行步骤6;步骤4,静止与复杂运动场景插值处理;步骤5,全局运动场景插值处理;步骤6,刚体平移运动补偿插值处理;步骤7,对步骤4,5和6中生成的待插帧插入到相邻的前后两帧图像之间,并输出。
申请公布号 CN101867759B 申请公布日期 2011.08.31
申请号 CN201010176866.X 申请日期 2010.05.19
申请人 西安交通大学 发明人 孙宏滨;郑南宁;罗亮;李宁
分类号 H04N7/01(2006.01)I;H04N7/26(2006.01)I;H04N7/46(2006.01)I;H04N7/50(2006.01)I 主分类号 H04N7/01(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 朱海临
主权项 1.一种基于场景检测的自适应运动补偿帧频提升方法,其特征在于,包含以下步骤:步骤1,静止场景检测,求相邻的前后两帧图像亮度差值,并与设定的像素差异阈值进行比较,统计大于像素差异阈值的像素个数,将得到的像素个数与设定的像素个数阈值比较,判断该两帧是否为静止场景帧,如是静止场景帧则转到步骤4,如是非静止场景帧,则执行下一步;步骤2,复杂运动场景检测,对于非静止场景的帧,计算相邻两帧运动估计得到的SAD值及运动矢量,并与设定的差异阈值进行比较,判断该两帧是否为复杂运动场景帧,如是复杂运动场景帧则转到步骤4,如是非复杂运动场景帧,则执行下一步;该步骤2的具体操作为:步骤2.1:对后一帧f<sub>n+1</sub>和前一帧f<sub>n-1</sub>进行块匹配运动估计,得到相邻两帧中每个子块所对应的SAD值<img file="FDA0000056354390000011.GIF" wi="144" he="71" />和<img file="FDA0000056354390000012.GIF" wi="173" he="66" />步骤2.2:对相邻两帧中每个子块对应的SAD值<img file="FDA0000056354390000013.GIF" wi="137" he="71" />和<img file="FDA0000056354390000014.GIF" wi="146" he="68" />求差:<maths num="0001"><![CDATA[<math><mrow><mi>Broken</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mo>|</mo><msub><mi>SAD</mi><msub><mi>f</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>SAD</mi><msub><mi>f</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤2.3:对SAD差值Broken(x,y)与设定的差异阈值Broken_th进行比较,如果Broken(x,y)>Broken_th,则判定该块是差异块,标记Broken_flag(x,y)=1,Broken_flag(x,y)为差异标志位,然后对差异标志位Broken_flag(x,y)进行个数统计,得出Broken_flag(x,y)=1的个数Count<sub>Broken</sub>;步骤2.4:设定差异阈值Count<sub>Broken_th</sub>,比较Count<sub>Broken</sub>与Count<sub>Broken_th</sub>的大小,如果Count<sub>Broken</sub>>Count<sub>Broken_th</sub>,则认为相邻两帧图像差异过大,判定该两帧为复杂运动场景帧;如果Count<sub>Broken</sub><Count<sub>Broken_th</sub>,则判定该两帧为非复杂运动场景帧;步骤3,全局运动场景检测,对非复杂运动场景帧,统计相邻两帧的各个子块的运动矢量的个数,并与设定的个数阈值比较,判断该两帧是否为全局运动场景帧,如是全局运动场景帧则转到步骤5,如是非全局运动场景帧,则执行步骤6;该步骤3的具体操作为:步骤3.1:统计步骤2.1中的块匹配运动估计得到的每个子块对应的运动矢量的个数,即其水平分量MV<sub>x</sub>和垂直分量MV<sub>y</sub>的个数Count_Block<sub>x</sub>和Count_Block<sub>y</sub>;步骤3.2:设定全局运动矢量的个数阈值Globle_block<sub>th</sub>:Globle_block<sub>th</sub>=α×H×V    (2)式中:α——常数;H——每列的运动估计块数;V——每行的运动估计块数;H×V——每帧图像的运动估计块数;步骤3.3:比较水平分量MV<sub>x</sub>和垂直分量MV<sub>y</sub>的个数Count_Blockx和Count_Block<sub>y</sub>与全局运动矢量个数阈值Globle_block<sub>th</sub>,如果Count_Block<sub>x</sub>>Globle_block<sub>th</sub>且Count_Block<sub>y</sub>>Globle_block<sub>th</sub>,则判定该两帧为全局运动场景帧,且保存对应的全局运动矢量MV<sub>globle</sub>(MV<sub>x</sub>,MV<sub>y</sub>),否则判定该两帧为非全局运动场景帧;步骤4,静止与复杂运动场景插值处理,对步骤1和步骤2中判定的静止场景帧和复杂运动场景帧,进行帧复制插值处理,生成待插帧;步骤5,全局运动场景插值处理,对步骤3中判定的全局运动场景帧,利用全局运动矢量和前一帧亮度值进行全局运动补偿插值处理,生成待插帧;步骤6,刚体平移运动补偿插值处理,对步骤3中判定的非全局运动场景帧,看做刚体平移运动场景帧,进行刚体平移运动补偿插值,生成待插帧;步骤7,对步骤4,5和6中生成的待插帧插入到相邻的前后两帧图像之间,并输出。
地址 710049 陕西省西安市咸宁路28号