作者:Jonathan Kantor
由于多种原因,商业团体一直在探索新的方式,以利用网络实现更有效的新型业务沟通与协作方式。视频会议、网络广播、共享白板、互动式培训和远程教育等应用服务越来越吸引人们的眼球,对这些功能的需求也随之上升。这种需求的增长也为寻求进军这一快速增长市场的开发商提供了一个重要的商业机遇。
不幸的是,对于很多开发商而言,开发分布式丰富媒体应用是一项非常艰巨的工作。面对当今高额的开发成本和各种竞争的技术标准,开发商通常不得不十分谨慎地决定其有限开发资源的投入方向。随着服务器处理能力的成本与性能的提高,以及操作系统级别上 XML Web Service 功能的不断改进和集成,在英特尔® 平台上的 Windows* XP 环境中开发分布式丰富客户端应用的工作已经大大简化,这对于开发团体而言是一个新的机遇。
诸如协作式数字媒体应用等解决方案的独特性在于,它们通常可以充分利用获得的全部处理能力。与只需几秒钟执行时间的任务不同,静态、音频和视频内容的渲染可能需要几分钟甚至几小时。媒体密集型协作式应用可将性能提升转换为最终用户工作效率的提高,因此在编写这类应用时,应该充分利用最新平台技术,以提升性能。Microsoft .NET* 和英特尔® 高性能多媒体函数库技术两种资源相结合,可以为利用数字媒体的高性能分布式协作解决方案提供功能强大的平台。构成此类解决方案的支持技术包括:
- Microsoft .NET——通过公共语言运行时引擎使用 Web 服务来支持协作的一组软件技术,也是为执行应用提供优化环境的平台抽象层。运行时是 .NET Framework 的执行引擎,负责以下功能:处理通信层、编译受控代码、验证类型安全性、管理线程池、执行代码、处理内存管理的各种问题以及其它可以大幅度地降低开发商代码编写量的特性。正是这个运行时抽象层能够识别目标英特尔® 处理器,并充分利用处理器独特的性能特征。
- 超线程(HT)技术——支持超线程(HT)技术的英特尔® 奔腾® 4 处理器或英特尔® 至强® 处理器,可视为两个具有各自状态的虚拟处理器,从而大大提高了应用的性能。
- 英特尔® 高性能多媒体函数库(英特尔® IPP)——一个“C”样式 API 软件库,旨在加速所有英特尔® 处理器平台上各种构造视频、音频和语音处理的软件应用。该库提供的构建模块可提供创建音频和视频编解码器的标准化接口。借助英特尔® IPP,可以快速交付支持跨处理器和操作系统架构开发的优化的线程化例程。
- SIMD 流指令扩展 2(SSE2)——是用于英特尔® 奔腾® 4 处理器的一套处理指令和扩展,其中集成了 76 种全新 SIMD 指令,以及 68 种改进的 SIMD 整数指令,这些指令用于 CPU 密集型编码和解码操作(如流视频、语音、3D 渲染以及其他多媒体的过程)。例如,对于需要处理多重音频流和视频流的实时会议或多媒体培训应用,使用这些并行处理扩展功能,可以获得极大的性能提升。
- 微软实时通信*(RTC)API——RTC API 提供基于个人电脑的通信创新,如即时消息、语音和视频会议以及基于任意 Microsoft Windows XP 的应用共享/协作。RTC API 能够确定客户端通信平台的功能,选择通信会话中使用的首选音频和视频设备,启动通信会话,协调数据的捕捉、压缩和传输,因而使应用无需再执行这些任务。(请注意,RTC API 并非线程安全的,因此基本上无法利用超线程(HT)技术。)
(请注意:有关以上各种技术详细信息的链接,请参阅本文末尾的“
其他资源”部分。)
为演示这些技术如何相互配合来创建分布式丰富媒体应用,我们来看两个示例,它们采用我们的资源库在一个虚构的应用中添加协作功能。
为了便于此示例的演示,我们假设要开发一种
协作式数字视频编辑套件,它支持远程位置上的视频编辑器,可通过特定编辑技术提供输入,添加视频/可视元素和效果,以及查看并将最终结果实时传递给其他编辑器。
对于这些示例,我们假定您熟悉使用 COM 对象开发 Windows 应用。本文中所讨论的全部源代码可以通过文章末尾处提供的链接获得。