DirectShow技术简介
2011-04-02 16:51
127 查看
1 DirecX介绍 DirectX软件开发包是微软公司提供程序员的一套在Windows操作平台上开发高性能图形、声音、输入、输出和网络游戏的编程接口。微软将DirectX定义为“硬件设备无关性”,即使用DirectX可以用于设备无关的方法提供设备相关的(高)性能。DirectX标准的建立,可以为硬件开发提供策略,硬件厂商不得不按照这一标准进行产品改进,同时,通过使用DirectX所提供的接口,开发人员可以尽情地利用硬件可能带来的高性能,而无需关系硬件的具体执行细节。 DirectX采用了COM(组件对象模型)标准,因此不同对象的版本可以有不同的接口,这使用DirectX开发的程序即使在未来也能得到完全的兼容和支持。 DirectX是一个庞大的大家族,包含了以下的成员: DirectX Graphics:集成了以前的DirectDraw和Direct3D技术; DirectInput:主要支持输入服务(包括鼠标、键盘等),同时支持输出设置; DirectPlay:主要提供多人网络游戏的通信、组织功能; DirectSetup:主要提供自动安装DirectX组件的API功能; DirectMusic:主要支持MIDI音乐合成和播放的功能; DirectSound:主要提供音频捕捉、回放、音效处理、硬件加速、直接设备访问等功能; DirectShow:下面具体介绍; DirecX Media Objects:DirectShow Filter的简化模型,提供更方便的流数据处理方案。从DirectX 8.1版本中的DirectShow中分离出来,成为另一种高效率的流数据处理解决方案。 2 DirectShow简介 DirectShow是DirectX家族成员中为在Windows平台上处理各种格式的多媒体文件的回放、音视频采集等高性能要求的多媒体应用提供了完整的解决方案;DirectShow集成了DirectX家族中其他成员(如DirectDraw、DirectSound等)的技术,为我们的多媒体应用提供了一下的方便: (1)、保证了数据量巨大的多媒体应用数据处理的高效性; (2)、解决了音频和视频时刻保持同步; (3)、用最简单的方法处理复杂的多媒体源问题,包括本地文件、计算机网络、广播电视以及其他一些数码产品等; (4)、提供了解决处理各种多媒体格式文件的方法; (5)、支持目标系统中不可预知的硬件变动。 DirectShow使应用程序开发人员从复杂的数据传输、硬件差异、同步性等工作解脱出来,总体应用框架和底层工作由DirectShow来完成。 3 DirectShow系统 ![]() Figure 1 DirectShow系统 如图所示,图中央最大的一块即是DirectShow系统,虚线以下是Ring 0特权级别的硬件设备,虚线以上的是Ring 3特权级别的应用层。DirectShow系统位于应用层中。它使用一种叫Filter Graph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块称为Filter;各个Filter在Filter Graph中按一定的顺序连接成一条“流水线”协同工作。 [b]从这里可以看出,其实一个个的filter就是一个个的组件,也可以称为node,作为一个独立完成某个工作的模块。 Filter Filter是DirectShow中最基本的概念,是Filter Graph中最小的功能模块,Filter是一种COM组件,一个Filter一般由一个或多个Pin组成,Filter之间也就通过Pin相互连接,构成一条顺序的链路。按照功能来分:Filter大致分为3类:Source Filters、Transform Filters和Rendering Filters。Source Filters主要负责获取数据,数据源可以是文件、因特网计算机里的采集卡(WDM驱动的或VFW驱动的)数字摄像机等,然后将数据往下传输;Transform Filters主要负责数据的格式转换,例如数据流的分离/合成、解码/编码等,然后将数据继续往下传输;Rendering Filters主要负责数据的最终去向——将数据送给显卡、声卡进行多媒体的播放,或者输出到文件进行存储。 Filter Graph Filter Graph是DirectShow系统用来管理Filter的(管理者叫做Filter Graph Manager),Filter Graph可以理解是Filter的“容器”,将需要的各个Filter集合在一起实现统一操作。Filter也只有入到Filter Graph并且接入到工作链路中才能发挥作用。 |
相关文章推荐
- (转载)J2EE开发技术简介之JBOSS
- 代理技术简介
- 一起谈.NET技术,领域驱动设计案例:Tiny Library:简介
- JNI技术简介-android学习之旅(92)
- BI构架及相关技术简介(下)
- JDMAIL金笛新型反垃圾网关系统技术简介
- Windows NT 技术简介
- O3D技术简介(一)
- (转)Event Logging 技术简介
- 移动互联网应用技术架构简介-iOS
- Nginx技术简介
- 博为峰JavaEE技术文章 ——MyBatis 简介(2)
- J2EE的13种核心技术简介
- Intel芯片架构中TEE的实现技术之SGX开发环境简介及搭建
- Web开发技术的历史发展简介
- 数字签名与数字证书技术简介(二)
- GreedyPorter(GPT)技术简介和研发指导
- IEEE1394技术与原理简介
- VMware虚拟化技术简介
- IBM大型主机(Mainframe)技术简介之一——系统概述