英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
微软DirectShow:新媒体架构
桌面革命在生产和后期制作中极大的改变了电影和电视节目的方式,同时降低了设备成本,提高运营效率。利用标准计算平台实现个人公司的数字化创新已经走到了一个价格这些自定义的实现和封闭的解决方案,这使得媒体和硬件应用程序之间共享困难甚至是不可能的。微软的DirectShow流媒体架构和窗口驱动程序模型提供的基础为了今天的后生产应用和硬件真正成为可互操作的。本文介绍了架构,支持技术,及其在后生产方案中的应用。
1989年是一个转折点,对于后期生产设备设计与引进的桌面数字非线性编辑系统。在IBM的兼容个人电脑和苹果电脑使用了线性编辑系统和控制系统的几年前,这些新的编辑系统在实际意义上的第一次抛弃了“盒子里”模拟录像带作为一个在线存储介质而带来的视频和音频素材。其他编辑设备制造商也迅速跳上桌面的行列。那些没有改变的(有的没有)注定要成为历史的注脚的广播设备。
不管他们是建立在哪个平台上,所有这些先驱性的数字非线性系统,以及今天的大多数生产,都有一个共同点:内部媒体的处理是由自定义引擎进行的。每个实现都依赖于专有的和不兼容的文件格式,独特的和不兼容的编程接口,以及之前不存在的数据交换方法。此外,每一环节都需要与操作系统的限制和令人意外的冲突,特别是在内部流同步,外部设备同步,数据吞吐量,以及少数
很多检讨桌面生产的技术将完备的除了提及了标准化的尝试,如苹果的快时间多媒体架构和Avid的技术开放媒体框架交换格式。然而,这些和其他的努力都没有成功地解决微软视窗操作系统的跨平台问题,或跨应用程序的问题远远超出了数字音频交换。微软自己的视频窗口多媒体架构,设计用于低比特率的消费多媒体应用,也不足以对专业用户的高性能需求。在1995一个OpenDML委员会成立,由一个基于Windows的音频视频工具和硬件制造商的构成,强调在数字媒体处理和交换的开放标准的渴望。鉴于“扁平化”的纵向的工具市场,一个标准化的多媒体架构将使更好的互换性的视频和音频硬件和应用软件以及合并传统的单独的应用程序空间如视频编辑、视频会议和基于服务器的流媒体。其他激励因素是新的硬件总线如IEEE 1394串行总线和通用串行总线(USB),这是设计时考虑到多媒体设备,并承诺使音频和视频应用程序的广泛的新类。
为了连接这些和其他要求的地址,微软推出了DirectShow,基于Windows和Macintosh平台的下一代流媒体架构。开发了两年半,DirectShow在1996八月发布,主要是互联网应用的一个MPEG-1回放媒体,虽然基础设施设计具有广泛的应用。DirectShow的后续版本,将关键应用软件开发商以及OpenDML大量投入,解决了许多高端工具问题正是目前开放版本。高数率的视频采集和回放,无缝非线性播放从多个文件,支持过渡效果,提高班子之间的同步,一种改进的媒体文件格式,外部设备的控制,以及一个新的硬件的驱动程序模型是DirectShow的功能集的一部分。其他好处包括容器格式的软件模块独立性、位置透明性、硬件和软件编解码器的互换性和可扩展性。
DirectShow内部技术支持
在DirectShow下的外观显示,它建立在几个微软技术,虽然它不应该被认为是“只是另一层”的系统软件。DirectShow提供的功能划分为:模块的连接,媒体类型,和流控制服务的应用。其他组件提供高性能的媒体服务、低延迟的流处理,硬件独立性和整体模型的组件结构,加载,和组件之间的通信。采用自下而上的方法,最低的部分是硬件抽象层(HAL)所有微软操作系统。作为硬件独立性的基础,这是在任何一个英特尔的x86,DEC Alpha透明地运行一个应用的关键,或PowerPC处理器,只需要重新编译与地方适当的代码生成器,多处理器的实现也在这个级别处理。
最低层的一部分是内核和基础驱动程序服务,包含高优先级的系统任务,即插即用支持和电源管理。它是在这个层次上,低延迟和时间关键软件驻留。这个主题将覆盖更多的深度。在核心服务层的顶部,和上方延伸的很好,是额外的微软DirectX媒体技术,包括二维图形的DirectDraw、DirectSound音频,三维图形Direct3D,摇杆和gameconsoles directlnput,与DirectPlay多机,多人游戏。所有的DirectX驱动程序最初发布的Windows 95操作系统,并且大多数现在被移植到Windows NT。它们是专为低延迟和高性能控制的硬件,虽然目前他们主要是用户模式模块。这引出了一个问题“什么是用户模式?
视窗操作系统利用了当今微处理器的不同特权模式,通常被称为“用户模式”和“内核模式”。他们之间的主要区别是,底层硬件和内存空间的访问级别是不受限制的软件运行在内核模式和高度限制的软件运行在用户模式。这种特权分离的结果是一个强大的计算环境:应用软件和许多操作系统组件在不同的和受保护的用户模式存储空间中运行。由于它们没有直接访问内核模式运行的操作系统的敏感区域,很难“崩溃”系统。
这种分离的缺点是,任何直接的硬件寄存器请求或其他内核模式调用的应用程序会导致每个用户的时间惩罚内核模式转换。这是由于寄存器和环境状态,称为“上下文”,高性能的应用程序有求助于这一点,正如我们后来看到的。
Windows驱动模型(WDM)是一种新的驱动模型,使得低延迟发展,跨平台的驱动程序更实用。WDM驱动程序驻留在内核模式,完全可以直接通过WDM驱动程序进行通信,从而消除了模式转换的相关性能。WDM驱动程序是模块化的,使用驱动这类结构。这种分层的方法将驱动程序分为逻辑分区,允许一个特定的“堆栈”被配置为一个给定的外围使用给定的协议通过一个给定的总线连接。
微软的流媒体,包含所有必要的代码来支持即插即用,内存管理提供了一类驱动,属性和方法设置管理,和其他核心服务。这减少了代码开发量为硬件制造商,一个相对简单的程序,可在C编程语言编写的。
在DirectShow的细节改动之前,另一个微软技术必须介绍:组件对象模型(COM)。
COM是底层的面向对象的软件技术,微软最新产品的基础,它定义了个人软件组件连接、控制和传输数据的通信规则。该软件对编程语言漠不关心,保证了两者兼容。COM也是跨平台,支持Windows,Macintosh和Unix操作系统。
COM其中一个重要的概念是位置透明。对象可以在同一台机器上的相同的进程空间内,或通过网络连接的计算机上运行,或在物理上的一半的世界分开的计算机上进行通信。位置透明性是通过远程过程调用(RPC)成为可能,这是部分行业标准的分布式计算环境规范。RPC处理COM对象之间的实际通信。
通过接口定义对象本身和世界其他部分之间的契约。接口是强行和语义相关的组的函数调用方法。他们是由一个全局唯一标识符(GUID),描述了一个128位的数字,很难不小心给多个接口。其中一个基本法则是:接口是不可改变的。那就是,如果一个接口的变化,它得到一个新的名字和一个新的GUID。这条规则简化了软件版本控制和保证的书面使用一个特定的接口软件将一直工作(当然是一次全面调试)。
DirectShow引脚,过滤器,和图
DirectShow是一组COM对象专门设计,使流媒体应用。由于DirectShow是基于COM的,它是真正的可扩展性。因此,新功能可以通过定义额外的接口和DirectShow的基本对象的新的和扩展的实现是需要添加。这些基本的对象,称为过滤器,针,和过滤图,是累积DirectShow应用程序的构建。
过滤器是执行特定任务的对象,如文件读取、文件写入、压缩、过渡效果或图像显示等。他们通常分为三类:源、变换和提炼,虽然有些过滤器无法进行简单分类如用于外部设备的控制。
过滤器中媒体样本之间可追踪的数据被称为引脚。暴露的引脚在过滤器作中为输入或输出,取决于是否每个引脚汇或源媒体样本。引脚是过滤器之间的连接点和实际处理的对象,实际上是处理媒体样本。DirectShow定义了许多标准的视频、音频、文本的媒体类型,开发者可以自由定义自己的要求。
过滤器之间的样品传递的方式被称为一个传输。DirectShow目前支持三种传输:基于内存的、视频覆盖的、基于硬件的。本地内存传送使用系统内存来存储媒体样本,而有效的实现将指针传递给媒体样本以避免性能造成内存复制。基于硬件的传输允许添加适配器的内存被使用,一个例子就是,与主板上的内存的总线主机适配器直接阅读提供有效的媒体样本缓冲视频采集卡。自定义的传输也可以被定义为更专业的应用程序。
连接在一起的一个集合的集合称为滤波图。应用程序可以允许DirectShow自动建立一定的应用,如媒体文件的播放和捕获筛选器图形,也可以手动安装过滤器一起为它自己的特殊用途。该过滤图的总体是由一个被称为过滤器图管理器的对象所控制的。以MPEG播放器为例子,流控制等运行,停止,暂停通过过滤器图表管理器的控制接口处理。应用程序还可以直接与控制接口的个人过滤器和引脚,以控制他们的行为,如视频和音频参数调整专业方面的接口。
专业应用问题
大多数软件媒体引擎存在的毛病是正确同步,两河间和外部引用。在视频的世界里,几乎每一块硬件有普遍参考或音频输入接口,处理和锁相环同步参考视频信号很好的工作。计算机世界一直忽略了这个基本要求的视频(和音频)系统的设计,通过信任的自由运行和不稳定的音频卡提供的主参考时钟。如果数据流下滑,然后在这里或那里掉一个或五个帧会把事情带回来。在此之上,应用程序一般都没有通知这个可怜的事务状态,直到为时已晚。硬件锁定的视频和音频采样时钟的今天对高端硬件的标准功能,但这通常需要集成音频和视频来自同一制造商的硬件,这限制了用户的选择。这种方法也不能应用在那些想在一个独立运行的视频图形阵列显示实时视频应用(VGA),没有例如lsquo;tearingrsquo;引起的异步时钟。
DirectShow解决这个问题的几个方面。首先,它允许任何过滤器提供一个时间标记的参考时钟驱动的过滤器图。视频捕捉卡,SMPTE时间码读取,或者能够在时钟信号的其他设备就可以对系统的主。时间特征通常是系统时间,因为这是一个始终保持电流,一个过滤器或应用程序可以确定的时间,已通过参考时钟值的时间更新。此功能是非常重要的,用于确定的存在的潜伏期和补偿。其次,新设施提供河间速率匹配,特别是音频。这里有三个层次:音频样本粗过滤,动态硬件采样时钟速率调整,低延迟采样率转换使用内核模式过滤器。所选的技术取决于所需的质量,硬件能力,可用的计算能力。
参考时钟供应商还提供其他过滤器使用事件通知服务。事件操作系统对象时触发预设的条件得到满足,并且可以配置一个镜头或多谐振荡器模式。一个触发事件的网络效应是解除一个过滤器执行等待线程同步,从而过滤处理的时钟源。
DirectShow的时间概念之所以重要是因为它影响同步是以下所描述的质量管理机制的基础上。DirectShow应用维护四个不同但相关的时间值:
- 媒体时间:在一个可搜索的介质,即一个数据文件的字节位置。
- 参考时间:绝对的“wall clock”时间是由一个参考时钟建立。它总是无视规定图表不停计数。
- 流时间:从时间的偏移量开始,也被称为相对基准时间。
- 显示时间:媒体样本的参考时间应被提出。这是直接与参考时间,由以下公式计算:(媒体时间-媒体的开始时间)/播放速率 开始的相关时间
这个值是由一个透明的过滤器使用的,当涉及一个样本时以准确确定
用DirectShow第三同步技术是一组丰富的质量管理控制,这是由先前描述的时间模型驱动。基于展示次数和时间参考比较,过滤器可以报告缓冲区溢出,溢出,或水印条件其他滤波器在流这样的调整可以在样本必须删除或复制了。例如,在视频的情况下捕捉到磁盘,压缩机过滤器可以对提高其压缩比下游输出滤波器如果磁盘子系统落后。当“溢出”条件修正,压缩机可以被告知,以恢复其以前的设置。
编辑支持
编辑应用程序有超出基本媒体处理的附加要求。其中最基本的是支持多个源材料的非线性播放。从多个源过滤器可以过滤图存在,应用程序可以很容易地混合材料来自音频视频interlead(AVI)文件,一个wave(WAV)文件,一个MPEG-1(MPG)文件,甚至QuickTime Movie文件。此外,DirectShow提供的接口,允许将表驱动播放通过底层的技术被称为动态图形重建。
播放片段可分为可重复使用的部分过滤图,或图片允许。在图表的情况下,允许图由源过滤器,解析器,和存根滤波器顺利的链接到目标过滤器,过滤图管理器的参考时间由DirectShow的播放列表决定。这项技术也相当有用,排序复杂的效果和合成滤波器图形硬件编解码器或效果处理器必须在不同的基准时间在不同的位置出现。
内部和目标过滤器有另一个好处。它们允许一个应用程序在运行过滤器图中直接删除或引入媒体样本。这非常有用,如果一个应用程序要直接读取时间码值或源图像和非DirectShow的应用。
其他更高级别的组成符号是目前正在考虑的应用程序,不需要这样的精细控制的滤波器图建设。
改进也为AVI文件格式支持视频编辑。现在可以创建非常大的文件,将所得的大帧索引分布在整个文件中,以有效的访问。其他改进包括视频领域的支持,溪流交错控制,和SMPTE时间码和电影信息源。
由于视频和音频数据通常是提供给编辑系统在录像带上,这些系统输出到录像带,帧精确的外部设备的控制是另一个要求。DirectShow定义复杂的机器的控制接口,以及多种选择的专业和工业录像机将滤波器的实现。SMPTE时间码也被定义为一个标准的媒体类型和控制接口定义使代码采集和生成时间。
采样滤波图
重要的过滤器是在左边的捕获源过滤器,它通过专用接口连接到微软流类
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[147772],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。