发明名称 一种视频文件快速择优截图的方法
摘要 本发明涉及一种视频文件快速择优截图的方法,其特征在于,采用基于Direct Show SDK,运行于MS Windows平台,对各种视频格式进行快速择优截图,对当前的视频帧进行图像质量的评价,首先将图像灰度化成256级,计算整个图像各灰度等级的分布状况,计算分布状况的离散程度,离散度越小,图像的偏色程度越低,说明图像质量越好,如果离散程度越高,说明颜色的偏色程度越大,认为图像质量相对越差,本发明的优点是简单且效果 好。
申请公布号 CN101377846A 申请公布日期 2009.03.04
申请号 CN200810037284.6 申请日期 2008.05.12
申请人 上海激动通信有限公司 发明人 王磊
分类号 G06T1/00(2006.01);H04N7/173(2006.01) 主分类号 G06T1/00(2006.01)
代理机构 上海申汇专利代理有限公司 代理人 翁若莹
主权项 1.一种视频文件快速择优截图的方法,其特征在于,用C++语言编制程序,采用基于DirectShow SDK,运行于MS Windows平台,对各种视频格式进行快速择优截图,其方法为:第一步.初始化DirectShow的FilterGraph,加载相应的视频文件读取、音视频分离Splitter、视频解码、视频帧抓取等DirectShow的筛选器,并将他们相互链接上,并在视频帧提取筛选器上挂接“截图生成器”,询问用户需要处理的视频,需要生成的截图的长宽比和截图生成的文件格式以及截图的文件名等信息,程序获取需要处理的视频文件,需要生成的截图长宽比,输出的截图的图片格式和文件名后执行以下操作;第二步.根据视频文件的视频总时长,将视频根据需要的扫描粒度划分若干等份,譬如视频文件总时长为3600秒,那么假设分为20等份,计算得到视频帧跳跃定位的步长为3600/20=180秒,如此,每隔180s抓取视频文件中的那个时刻的图像,而不对所有视频帧进行扫描,以提高扫描速度,并通过调用FilterGraph的IMediaSeeking接口的SetPositions方法将视频帧定位到视频的开始处;第三步.截图生成器对当前的视频帧进行图像质量的评价,首先将图像灰度化成256级,并统计整个图像在每个灰度等级上面的像素分布数量,这个像素数量的分布状况能够反映出原始图像是否存在偏色情况,譬如白屏、黑屏或者蓝屏等情况,灰度等级分布统计采用以下的方法计算,用类C语言伪代码说明:int D[256];//D存放图像灰度等级的分布初始化数组D中的每个值为0;for(int x=0;x<图像的宽度;x++){ for(int y=0;y<图像的高度;y++) { int r=图像在坐标为x和y上的点的RGB值中的R分量; int g=图像在坐标为x和y上的点的RGB值中的G分量; int b=图像在坐标为x和y上的点的RGB值中的B分量; int curgray=(B*117+G*601+R)>>10);//像素灰度化 D[curgray]++; }}再根据上面得到的灰度等级分布计算分布状况的离散程度。离散度采用以下公式进行计算:<math> <mrow> <mi>Q</mi> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mn>255</mn> </munderover> <mfrac> <msup> <mrow> <mo>(</mo> <mi>Di</mi> <mo>-</mo> <mi>Pixels</mi> <mo>/</mo> <mn>256</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mi>Pixels</mi> </mfrac> </mrow></math>其中Di表示某一灰度级别的像素分布数量,每个Di对应前面计算得到的图像灰度等级分布数组中相应灰度等级的元素,即前面伪代码中的数组D;Pixels表示当前视频帧的总像素数量,即视频帧图像的宽度×视频帧图像的高度;Q表示灰度分布状况的离散度,离散度越小,图像的偏色程度越低,说明图像质量越好,如果离散程度越高,说明颜色的偏色程度越大,认为图像质量相对越差;第四步.根据计算得到的当前灰度等级分布的离散程度与前一视频帧的灰度等级分布离散程度进行对比,如果比前面截取的一帧计算的值小则输出当前的视频帧,如果前面已经有截图产生,则覆盖之,并更新前一视频帧的灰度等级分布离散程度值;第五步.调用FilterGraph的IMediaSeeking接口的SetPositions方法,将视频帧根据第二步计算得到的跳跃时长定位到下一视频帧,重复第三步,直到扫描完毕。
地址 200235上海市钦州南路71号科技出版大厦8楼