基于Directshow的视频缩放分析研究.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Directshow的视频缩放分析研究.doc

基于Directshow的视频缩放分析研究 [中图分类号]F224.39 [文献标识码]A [文章编号]1672-5158(2013)06-0045-01 引言 在日常学习工作中经常会对各种视频文件进行分析,比如视频的剪切、缩放等,但是对于这些操作可能会用到专业的视频分析卡等硬件的支持。针对硬件价值较高,微软提供了一套基于COM的流媒体处理开发包 DirectShow。在DirectShow中提供了完整的视频分析处理接口DES,负责对各类视频进行分析处理。 通过DES、Filter Graph可以对视频进行缩放处理,使视频的缩放脱离硬件的直接支持,适合于个人PC机上的视频处理。本文主要分析了3中视频缩放的方法,通过这些方法可以进一步加快视频缩放的速度和效率。 1 Directshow简介 利用Directshow对视频进行缩放处理,必须对Directshow的架构,DES(Directshow Editing Services)以及Filter Graph Manager等知识有所了解。 1.1 Directshow的体系结构 Directshow本质上就是基于COM组建的流媒体开发包,它为我们用户提供了一整套完整的视频处理接口。该体系结构大致可分为3层:用户应用层、Directshow接口层、底部设备层。 1.2 Filter以及Filter Graph Manager Filter其实就是一种叫做过滤器的COM组件,一共有三种类型的Filter:Source Filter、Transforill Filter、Rendering Filter。它们都包含一个或多个Pin,Source Filter负责视频的采集,输入等;Transform Filter负责对视频进行格式转换、传输等;Rendering Filter负责视频文件的渲染,输出。 由于每一个Filter都有Pin针,我们可以根据不同的任务、需求,将各种Filter利用Pin针连接起来,就构成了一个Filter Graph。Filter Graph的构建都是有Filter Graph Manager管理的,每一个Filter Graph MaRager都对所有的Filter有所了解(Filter必须在该电脑上进行注册)。并且,它能通过命令与事件的方式与用应层进行交流,应用层也可以更加方便的对Directshow的各种接口进行处理。 1.3 非线性编辑(DES) DES是一套基于Directshow核心框架的编程接口,它的目的是为了简化视频编辑任务,弥补Directshow对于媒体文件的非线性编辑支持的不足之处。其实,DES并没有超越Directshow Filter架构,只是在它之上的一层增强应用。 2 视频缩放分析 有了以上的几个Directshow基本知识后,我们就可以有以下几种视频的缩放方法。 2.1 Filter Graph Manager的视频缩放 我们知道Filter Graph Manager可以建立并控制Filter Graph。它是学习Directshow的核心,为了方便我们更加方便的操作,Directshow为我们提供了一整套完善的接口,通过实现这些接口我们可以完成我们想要的工作。 我们想要实现视频的缩放,可以通过FiRer Graph Manager中的IVideo Window接口来实现。IvideoWindow可以设置视频窗口的各种属性,当用户改变视频的大小的时候,操作系统以命令的方式发送给应用程序,应用程序可以调用IvideoWindow的put Height(long Height)和put_Width((long Width)改变大小。但是这种改变视频大小的方法只是单纯的改变面积并没有涉及对图像的算法剪切,因此在改变大小的过程中可能出现图像的失真等状况,下面的这种方法可以对图像进行设计。 2.2 DES的视频缩放 要利用DES对视频进行处理,首先必须要知道DES的内部结构模型如下图: 2.3 Resize Filter的视频缩放 除了在进行非线性编辑的时候在组上进行视频大小的设置之外,还有另外一种方法可以进行视频的缩放控制,这便是通过第三方的视频图像缩放Filter来控制视频的缩放。一般的DES创建的视频解码链路如下图: 在DES中默认的使用的是微软公司的Resize Filter,它采用的是简单拉伸的图像算法,使用该Filter之后可能引起视频图像的质量损坏。由此,我们可以采用第三方的Filter或是自己定制自己所需要的视频缩放Filter。一般的Resize Filter都是一个Transform Filter,因此我们在定制Filter的时候必须要继承CtransforinFilter这个父类,对于CtransfonnFilt

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档