欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 信息管理 > 基于Directshow的视频缩放的技术措施

基于Directshow的视频缩放的技术措施

日期:2023-01-24 阅读量:0 所属栏目:信息管理


在日常学习工作中经常会对各种视频文件进行分析,比如视频的剪切、缩放等,但是对于这些操作可能会用到专业的视频分析卡等硬件的支持。针对硬件价值较高,微软提供了一套基于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这个父类,对于CtransfonnFilter的子类我们必须要重载以下五个纯虚函数:CheckInputType、CheckTransform、DecideBufferSize、GetMediaType、Transform。通过CheckInputType来检查本Filter的输入媒体是否合法,CheckTransform来检查开发的filter的输出是否和合法,通过GetMediaType来获取该输出端口支持的媒体格式供下游filter的枚举,通过DecideBufferSize来确定buffer的数量和大小。而上游Filter传过来的sample,我们可以继承CTransformFilter::Transform方法来处理该sample的相关数据。大体流程如下: 
  3 结束语 
  在日常生活中各种我们可以获得各种视频资源,它们作为一种信息的传播载体在信息的传播中发挥了越来越重要的作用,但是不能否认的是从视频资源中获取我们所需的信息需要更多的时间更多的心思,因此个人视频编辑越来越重要,如何将手中的视频资源进行编辑(剪切,缩放等)就越来越重要。本文中提出的3种基于Directshow的视频缩放的处理方案基本上可以解决日常个人视频缩放处理所需,当然论文中也有很多不足之处,尤其是自己定制Filter中视频缩放的算法只是一种高效的算法,可能还有更多更高效的算法,因此对于视频缩放的方法还有待优化和提高,作者也将继续研究更加高效的方法以实现真正的适合于个人PC机上的视频处理方案。

本文链接:http://www.qk112.com/lwfw/jsjlw/xinxiguanli/258941.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学