WDM 视频捕获介绍

上传人:工**** 文档编号:430762998 上传时间:2022-12-17 格式:DOCX 页数:6 大小:117.02KB
返回 下载 相关 举报
WDM 视频捕获介绍_第1页
第1页 / 共6页
WDM 视频捕获介绍_第2页
第2页 / 共6页
WDM 视频捕获介绍_第3页
第3页 / 共6页
WDM 视频捕获介绍_第4页
第4页 / 共6页
WDM 视频捕获介绍_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《WDM 视频捕获介绍》由会员分享,可在线阅读,更多相关《WDM 视频捕获介绍(6页珍藏版)》请在金锄头文库上搜索。

1、WDM 视频捕获介绍孙 涛摘要:该文主要提供一些在Win98,win2K及以上操作系统中,进行Windows Driver Model(WDM)视频捕获的相关知识介绍。如果你对WDM视频捕获感兴 趣,可以来看看这些东西。欢迎到我的博客 下视频捕获简史 1WDM 和视频捕获 1VfWWDM Mapper2WDM 视频捕获结构 2DirectShow 应用程序 3DirectShow Filter Graph3WDM 数据流 4视频捕获 Minidrivers4Pins, Streams, Formats4视频流命名约定5DirectShow 视频捕获的接口和属性 5捕获数据流类型6流输出数据格式

2、6结束语Windos下视频捕获简史VFW(Video For Windows) 1.0版本在1992年11月发布,它是为在 Windows3.1 下将电影最优化地捕获到磁盘上而发布的。从那以后,视频捕获技 术就越来越受到关注了。VFW技术同样受到了很多批评,它捕获的数据保存到磁盘上会占用大量磁盘 空间,每秒数据量超过20M,同时需要大量的客户端支撑软件,VFW体系架构 上的不足在视频会议应用上和PC/TV应用上被暴露无遗,这样就要求一种新的 视频捕获技术来弥补这些不足。VFW的体系结构缺乏为视频会议,电视浏览,视频区域捕获和VBI (Vertical Blanking Interval)数据流

3、提供强而有效的支持。一些视频卡等设备开发商在设计 自己的产品时,针对这些缺陷,对VFW进行了功能扩展。由于没有统一的标准, 我们的应用程序在使用这些扩充的功能时,就必须要写一些基于特定硬件的代 码。这就意味着当要改变捕获驱动程序时,就必须要对显卡的驱动程序进行修改。WDM和视频捕获WDM视频捕获设计就是为了来解决VFW体系结构中存在的这些问题。 WDM 视频捕获主要的好处体现在: 可以为设备(如基于USB, IEEE 1394通讯方式的摄像头)提供32位的 驱动程序。 允许 DirectShow 和 WDM 流协同工作。 可以在视频捕获设备和DVD/MPEG设备间,为硬件(如video por

4、ts和 chip sets)共享一个分类的驱动程序结构(Stream.sys)。 支持多个数据流。 允许电视信号调频和输入选择。 支持视频区域捕获,区域显示和 VBI。 允许使用 DirectDraw VPE (Video Port Extensions)管理视频输入。在一个单独设备上可能会有多个组件共存的情况,这些组件包括DVD解码 器, MPEG 解码器,视频解码器,调谐器,音频解码器。 WDM 数据流就是用于 解决这种情况而创建的。它是个统一的驱动模型,可以支持所有的这些设备和去 处理它们的资源分配。WDM数据流为标准数据类型和用户自定义数据类型提供了统一的数据模 型,同样,它定义了大部

5、分的标准设备的属性,并且根据需要可以很容易地实现 扩充。因为按WDM数据流的协议,它支持在设备内核间进行数据传输,而不需 要在用户模式下进行数据转换。这样可以获得较高的效率,减少不必要的工作。操作系统仍然支持VfW驱动程序,但是依赖于VFW的开发将逐渐减少, 这是因为下面三个原因: WDM 数据流为基于电视浏览和视频会议的捕获设备提供了优化支持。 DirectShow 提供了更强的功能。 Microsoft将不会对VFW进行持续开发。VfWWDM MapperVfWWDM mapper 是 Windows 98 和 Windows 2000 操作系统的一部分。它 提供了 WDM驱动程序到基于V

6、fW程序的向后兼容。对于Windows 98,有一个 驱动程序文件和一个动态链接库 Vfwwdm.drv 和 Vfwwdm32.dll。 Windows 2000 只要求一个DLL文件。典型的mapper应用于显示视频捕获设备对话框、视频 源选择对话框、摄像头控制面板和视频格式设置。VfWWDM mapper不是全面兼容并且不支持旧VFW的所有功能。例如不支 持视频覆盖,也不支持视频端口 implementations 。WDM 视频捕获结构WDM 视频捕获结构图如下:DirectShow 应用程序DirectShow 用于控制多媒体数据流;它可以在运行时允许用户播放数字电 影和对不同格式的声

7、音进行解码,包括 MPEG-1。这种播放性能可以让音视频卡支持Microsoft DirectX的API, DirectShow 同样可以播放AVI电影文件和Apple QuickTime (.mov)格式文件。DirectShow 被广泛地应用于 Windows 95, Windows 98, 和 Windows 2000 应 用程序。 DirectShow 直接和驱动程序通讯, DirectShow 不使用 AVICap, 因为 AVICap 分配了数据缓冲区,如果一个 DirectShow 层没有放在 AVICap 顶层, 那么缓存区数据必须要通过转化去指向它,这样会造成效率地下。Dir

8、ectShow Filter GraphDirectShow结构定义了标准的组件去控制处理带时间标记(time-stamped)的 多媒体数据流,这些组件被称为过滤器(Filter)。把这些Filter放在一个容器中, 这个容器就是Filter Graph。可能有三种类型的Filter: Source , transform和 rendero (注:有些资料将Filter翻译为过滤器,FilterGraph翻译为过滤器图表, 这里我都用原单词)应用程序可以通过 Filter Graph 管理器来进行数据访问。 Filter Graph 管理器 会对Filter Graph配置进行管理,同时还会

9、通过Filter Graph控制数据的转移。Filter Graph管理器提供了一套COM接口,去允许应用程序与Filter Graph实现通讯。应用程序可以直接调用Filter Graph管理器接口去控制媒体流或者去获得 Filter 事件。还可以使用 DirectShow ActiveX 的 OCX 控件进行程序设计。,还有 一套MCI子集命令可以用来向后兼容Microsoft VFW 1.x版本和遵循OM-1 MPEG MCI 规范。WDM数据流WDM数据流主要应用包括视频捕获,电视浏览,VBI数据编码支持和DVD 电影播放。DirectShow可以非常容易地使用这些数据。视频捕获 Mi

10、nidrivers视频卡由一些组件构成,比如电视信号调谐器,AM/FM调谐器,视频解码 器,音频解码器等,它们都由WDM Minidriver控制。使用Minidrivers,就可以 允许硬件开发商为不同的卡开发器驱动程序,他们只需要把Minidriver写到他们 的卡上,当硬件设计修改后,不需要对修改驱动做更多的修改。在 Windows 98 和 Windows 2000 下,视频设备使用 WDM 的 Minidriver 去 控制视频数据流,视频捕获 Minidrivers 相当与一个客户端,它会去控制处理硬 件设备的图像数据和其他相关数据。 Minidrivers 提供了如下的功能:捕获

11、压缩和非压缩的视频数据流,VBI数据,时间编码和其他辅助数据流。控制视频流相关设备,比如电视信号调谐器,视频路由设备,电视音频控 制器和视频压缩编码器。 在流内核中完成处理工作,减少操作过程提高效率。Pins, Streams, Formats数据流视频捕获驱动程序可以同时支持多个压缩数据,非压缩数据,时间编 码,VBI解码数据以及自定义数据。为了保证每种数据同步匹配,捕获驱动程 序为这些数据创建了一个新的数据流。每个流都会用一个WDM流针脚(Pin)来传 递,通过针脚,单个数据流就可以把它的数据连接到不同的流Filter中去,还可 以通过DirectShow用户Filter的输出针脚,把数据

12、转换输出给用户。(前面我 们提到Filter的3种类型:Source , transform和render。Source只有输出针脚,而 transform 有输入、输出 2 个针脚, render 只有输入针脚) 每个针脚都可以支持多种不同的数据格式。比如,一个针脚它可以提供RGB16, RGB24, YVU9, 和 JPEG 数字视频。针脚可以连接到一个共享的系统内 存的数据缓存区,它还可以直接连接到硬件设备。视频流命名约定通常, DirectShow 和 WDM 流会共享媒体的格式定义和流命名约定。但是 基于内核模式(Kernel-mode)和用户模式(User-mode)下的命名约定有

13、一些小的 命名差异。比如,内核模式下的很多格式定义和GUID定义会在名称前加个” KS” 前缀, BITMAPINFOHEADER 就是用户模式下的定义,而 KS_BITMAPINFOHEADER就是内核模式下的相同结构的定义。在内核模式下,流格式使用KSDATAFORMAT数据结构。这个结构可以被 扩展去包含其它特别的数据格式信息。typedef union struct ULONGFormatSize;ULONGFlags;ULONGSampleSize;ULONGReserved;GUIDMajorFormat;GUIDSubFormat;GUIDSpecifier;ULONGLONG

14、Alignment; KSDATAFORMAT, *PKSDATAFORMAT, KSDATARANGE, *PKSDATARANGE;DirectShow 视频捕获的接口和属性DirectShow 提供了与许多视频相关的接口,它们中的一些还有附带相关的属性。下面列出的这些接口是实际应用较多,并不带相关属性的: IAMAudioInputMixer IAMDroppedFrames IAMStreamConfig IAMVfwCaptureDialogs IAMVfwCompressDialogs IcaptureGraphBuilder ICreateDevEnum表列出了 DirectSh

15、ow 接口与捕获驱动程序通讯的相关属性。 .DirectShow 接口相关属性IAMTunerPROPSETID VIDCAP TUNERIAMTVAudioPROPSETID VIDCAP TVAUDIOIAMCrossbarPROPSETID VIDCAP CROSSBARIAMVideoProcAmpPROPSETID VIDCAP VIDEOPROCAMPIAMAnalogVideoDecoderPROPSETID VIDCAP VIDEODECODERIAMAnalogVideoEncoderPROPSETID VIDCAP VIDEOENCODERIAMCameraControlPROPSETID VIDCAP CAMERACONTROL捕获数据流类型视频流大致由时间标记,数字视频,和其他相关信息(比如VBI,时间编码) 组成,流可以被暂停,开始和停止。流一般是100ns 次进行数据采样,大多数 情况下,每个数据帧存放在每个 ImediaSample 缓存区中。流输出数据格式流的数据类型由 KSDATARANGE 数据结构的 Stre

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号