VFW vs WDM

VFW技术受到的很多批评,因它捕获的数据保存到磁盘上会占用大量磁盘空间,每秒数据量超过20M,(本人试验640*480窗口1s大约需要10M),同时需要大量的客户端支撑软件,VFW体系架构上的不足在视频会议应用上和PC/TV应用上被暴露无遗,这样就要求一种新的视频捕获技术来弥补这些不足。VFW的体系结构缺乏为视频会议,电视浏览,视频区域捕获和VBI(Vertical Blanking Interval)数据流提供强而有效的支持。一些视频卡等设备开发商在设计自己的产品时,针对这些缺陷,对VFW进行了功能扩展。由于没有统一的标准,我们的应用程序在使用这些扩充的功能时,就必须要写一些基于特定硬件的代码。这就意味着当要改变捕获驱动程序时,就必须要对显卡的驱动程序进行修改。

WDM和视频捕获
WDM 视频捕获设计就是为了来解决VFW体系结构中存在的这些问题。WDM视频捕获主要的好处体现在:
可以为设备(如基于USB,IEEE 1394通讯方式的摄像头  提供32位的驱动程序。
允许DirectShow 和 WDM 流协同工作。 
可以在视频捕获设备和DVD/MPEG设备间,为硬件(如video ports 和 chip sets)共享一个分类的驱动程序结构(Stream.sys)。
·支持多个数据流。 
·允许电视信号调频和输入选择。 
·支持视频区域捕获,区域显示和VBI。 
·允许使用DirectDraw? VPE (Video Port Extensions)管理视频输入。

在一个单独设备上可能会有多个组件共存的情况,这些组件包括DVD解码器,MPEG解码器,视频解码器,调谐器,音频解码器。WDM数据流就是用于解决这种情况而创建的。它是个统一的驱动模型,可以支持所有的这些设备和去处理它们的资源分配。

·WDM数据流为标准数据类型和用户自定义数据类型提供了统一的数据模型,同样,它定义了大部分的标准设备的属性,并且根据需要可以很容易地实现扩充。因为按WDM数据流的协议,它支持在设备内核间进行数据传输,而不需要在用户模式下进行数据转换。这样可以获得较高的效率,减少不必要的工作。

·操作系统仍然支持VfW驱动程序,但是依赖于VFW的开发将逐渐减少,这是因为下面三个原因:
1、WDM数据流为基于电视浏览和视频会议的捕获设备提供了优化支持。 
2、DirectShow提供了更强的功能。  
3、Microsoft 将不会对VFW进行持续开发

VfW WDM mapper是Windows 98 和 Windows 2000 操作系统的一部分。它提供了WDM 驱动程序到基于VfW程序的向后兼容。对于Windows 98, 有一个驱动程序文件和一个动态链接库Vfwwdm.drv 和 Vfwwdm32.dll。Windows 2000只要求一个DLL文件。典型的 mapper应用于显示视频捕获设备对话框、视频源选择对话框、摄像头控制面板和视频格式设置。VfWWDM mapper 不是全面兼容并且不支持旧VFW的所有功能。例如不支持视频覆盖,也不支持视频端口implementations 。

WDM 视频捕获结构图如下:
 
 

你可能感兴趣的:(C++Builder)