专利名称:用于动态增加软件部件以便扩展系统过程功能的系统结构和相关方法
技术领域:
该技术领域通常涉及计算机系统结构,尤其涉及用于自动将软件部件加入系统过程的操作系统结构。
背景随着数字媒体设备(例如,数字录音带(DAT)、数字化视频光盘(DVD)、数字视频照相机和数字静物照相机)的激增,计算机用户日益需要更多的硬件和软件性能来处理并使用数字媒体文件。大量的独立硬件开发商(IHVs)和独立软件开发商(ISVs)已经进入市场,以满足对更多的软件功能的需求。如此之多的ISVs和IHVs进入市场,这给具有媒体功能的操作系统和应用程序的开发者带来许多挑战。例如,IHVs和ISVs已为多媒体数字信号编解码器和其他过滤器创建了许多不一致的格式。当前,操作系统和应用程序在用未被普遍运用的多种格式工作方面的性能有限。
过滤器是被用于媒体文件(例如,音频、视频或静止图像)的软件部件,可用作多媒体数字信号编解码器(编码器或解码器),用来添加效果(例如,纠正颜色、增强亮度等)或分析文件的内容(例如,用于提取元数据(比如给定的图像文件中的人数))。当前,在用于格式化图像文件的台式出版系统中,普遍使用几种多媒体数字信号编解码器标准(例如,JPEG、TIFF)。大多数操作系统、应用程序和获取软件都支持这些广为运用的标准。例如,Microsoft公司生产的Microsoft、WindowsMe和MicrosoftWindowsXP中名为“扫描仪”(Scanner)和“照相机向导”(Camera Wizard)的获取软件可以使用扫描仪和数字照相机设备,并具有对这些扫描仪和数字照相机驱动器所产生的TIFF文件进行解码和处理的能力。
但是,一些硬件(例如,数字照相机和扫描仪)制造商可能喜欢使用为用于其自己的硬件部件而专门设计的多媒体数字信号编解码器。例如,Nikon公司喜欢使用用于为数字图像编码和解码的、被称作“TIFF/EP格式”的TIFF专用版本。然而,TIFF/EP格式没有获得操作系统或图像处理应用程序的广泛使用或支持。例如,Microsoft公司的WindowsXP操作系统不支持图像的TIFF/EP格式。这样,若不安装单独的观察器应用程序,WindowsXP的桌面用户将无法对从Nikon照相机获得的TIFF/EP图像文件进行解码和观察。也无法扩展一些图像处理应用程序(例如,Microsoft公司的“图像观察器”),以支持TIFF/EP标准,因为它们被设计成无论何时为应用程序提供TIFF类型的文件,都使用标准ITFF解码器。当前,用户可能必须为其Windows XP添加TIFF/EP多媒体数字信号编解码器部件,并使用为用于TIFF/EP图像而专门设计的应用程序,以便观察和改进TIFF/EP图像。所以,越来越需要操作系统通过将其自己的专利过滤器作为内插附件提供给系统过程来更灵活地允许IHVs和ISVs扩展现存的系统过程(例如,设备驱动器、获取软件和其他应用程序)的性能。通过允许IHVs或ISVs扩展现存的应用程序或获取软件的性能,也将会不再需要创建使用专用过滤器的自定义应用程序,而使ISVs和IHVs能够集中精力提供作为内插附件的最佳过滤器。
软件开发者通常防备外部实体开发的过滤器被用作内插附件,因为内插附件过滤器中的任何错误都会对其自己的软件部件的操作造成潜在的影响。这样,需要一些系统和方法,它们能够充分确保使用内插附件过滤器的系统或应用程序的安全性。
通常,被安装在系统上的过滤器部件要么是与某个应用程序捆绑在一起,要么被安装来专门用于某些所选择的应用程序。系统上的许多其他应用程序通常不能使用所安装的过滤器的功能。这样,需要一种允许系统上的所有程序发现并使用内插附件过滤器的开放而灵活的系统结构,以便内插附件过滤器甚至可以由未指定的应用程序和设备驱动器来加以使用。
此外,由于需要更多的媒体功能,正在系统上安装和使用众多不同的具有多种媒体功能的过滤器。这样,需要一种系统结构,该系统结构能有效率地搜索并列举系统上所安装的、可用的内插附件过滤器,以便应用程序或用户(通过该应用程序)在必要时可以选择合适的内插附件。
被安装在系统上的多个过滤器中的每个过滤器也可以具有多种媒体功能,其中的一些过滤器可以具有重叠的功能。在一些情况中,这些过滤器中的一个或多个过滤器特别适合某种类型的媒体处理。用户或系统过程可能需要在选择一个合适的过滤器之前发现多个过滤器的功能。实现这一点的一种方法将会是将该过滤器装载到存储器,然后确定它的性能。但是,这会占用系统资源,并会使过滤器内插附件程序冗长而缓慢。这样,还需要一些系统和方法,用于根据过滤器的特点来对其进行分类,并根据这些过滤器的分类化来搜索、发现和列举它们,而无须将过滤器装载到存储器中。
概述如这里所述,系统结构和方法被提供,并用于自动安装和调用媒体处理过滤器,以扩展系统过程(例如,媒体应用程序、获取软件和设备驱动器)的与媒体相关的功能。
一方面,系统结构开放而灵活,以便一个实体所提供的内插附件过滤器能够被用来扩展另一个实体所提供的现存的程序的性能。系统允许内插附件过滤器使用被称作“内插附件管理器系统服务程序”的过滤器管理服务程序,以要求自身被安装在系统上。该过滤器本身为内插附件管理器提供与其功能有关的信息,内插附件管理器使用该信息将内插附件过滤器用可识别的方法安装在系统上,待任何系统过程调用。
另一方面,内插附件管理器对系统过程提出的请求作出响应,以列举系统上可用的内插附件过滤器。然后,这些程序可以从所列举的内插附件过滤器中进行选择,以扩展其自己的媒体处理性能。这些过滤器可以根据其功能和特点来加以分类,并且,它们可以根据这种分类化来被列举。在一个实施例中,内插附件管理器是一种服务程序,被安装在系统上的任何程序都可以使用该服务程序来扩展其自己的媒体处理功能。
在另一个方面中,为要求被安装的内插附件过滤器提供安全机制(例如,数字签名),内插附件管理器在将过滤器安装在系统上之前验证数字签名。另外,调用内插附件过滤器的程序本身可能要求内插附件管理器只列举具有所选择的数字签名的过滤器。此外,可以要求内插附件管理器使用与要求列举内插附件过滤器的程序分开的程序中的被选择的内插附件过滤器,以便这些内插附件过滤器的任何错误或故障都不会影响要求列举的程序的操作。
在一个额外的方面中,内插附件管理器可以列举多个类别的多个过滤器,程序可以使用被连接成一链的多个过滤器,以便连续处理媒体数据。
通过以下详细的描述并参考附图,这里所描述的系统和方法的额外的特点和优点将会一目了然。
附图简述
图1是方框图,展示了通过安装和使用内插附件过滤器来扩展系统过程的媒体功能的一种静态方法。
图2是方框图,展示了通过自动安装和使用内插附件过滤器来扩展系统过程的媒体功能的一种动态方法。
图3是一种方法的流程图,该方法用于动态、自动地安装和使用内插附件过滤器,以扩展系统过程的媒体功能。
图4是方框图,展示了包括内插附件管理器服务程序的一种系统结构,用于动态、自动地安装和使用内插附件过滤器,以扩展各种类型的系统过程的媒体功能。
图5是与内插附件管理器的接口的纲领性代表图,并表现了用于安装、发现和列举系统内的内插附件过滤器的各种方法。
图6是流程图,描述了用于在系统内自动安装内插过滤器供系统过程以后调用的一种方法。
图7是流程图,描述了内插附件管理器服务程序处理列举系统内的内插附件过滤器的请求的一种方法。
图8是流程图,描述了内插附件管理器服务程序根据所提供的准则来处理列举系统内的内插附件过滤器的请求的一种方法。
图9是流程图,描述了系统过程选择由内插附件过滤器列举的一个或多个过滤器并使用所选择的过滤器来扩展其自己的媒体处理功能的一种方法。
图10是流程图,描述了内插附件过滤器在被系统过程选择时响应于该程序的调用以便扩展其媒体功能的一种方法。
图11是由内插附件过滤器提供的用户接口,用于从用户那里接收其处理参数中的一个或多个处理参数。
图12是方框图,展示了通过将不可信的过滤器与调用过滤器对象的程序分离来确保调用内插附件过滤器的程序的安全性的一种方法。
图13是方框图,展示了允许可信的过滤器对象从系统过程内被调用的一种方法。
图14是方框图,展示了用于连续处理媒体数据的一系列有关联的内插附件过滤器。
图15是方框图,展示了一些内插附件过滤器,它们接收媒体数据的所选择的部分,处理所接收的部分,并输出被处理的部分,同时,继续接收该媒体数据的更多的部分。
图16是方框图,展示了多个内插附件过滤器,它们具有连续处理媒体文件的各个部分的多种功能。
详细描述纵览过滤器是被用于处理媒体(例如,音频、视频和静止图像)中的软件部件。过滤器可以是多媒体数字信号编解码器(编码器或解码器)、分析过滤器或增强过滤器。多媒体数字信号编解码器的例子包括用于视频的MPEG、用于数字静止图像的JPEG或TIFF和用于音频文件的WAV或AVI。多媒体数字信号编解码器主要被用来压缩媒体文件,以便在网络上有效率地进行传输。增强过滤器(也被称作“效果”)主要被用于通过改变像位以便改善数据或重新改变数据用途(例如,为图像文件增强亮度,或为音频文件减少噪声),来为媒体文件添加增强效果。分析过滤器从图像文件中提取数据(例如,诸如图像文件中的背景颜色的元数据)。提供作为标准的许多过滤器,同时提供操作系统软件(例如,MicrosoftWindowsXP)或媒体处理应用程序(例如,AdobePhotoshop)。但是,无数具有专门用途的过滤器可能不被特殊的操作系统平台或应用程序支持。在其他事物之中,以下所描述的系统结构和方法规定了用于增加过滤器作为内插附件以便扩展现存的系统过程的性能的一种开放而灵活的结构。
图1展示了通过提供完成特殊任务的内插附件来扩展系统的性能的一种静态方法。在这种系统中,程序110(例如,设备驱动器、应用程序或获取软件)可能需要知道被登记在系统登记册120内的可用的内插附件过滤器125。然后,程序110可以选择一个特殊的内插附件过滤器对象125,并使用编辑器130(例如,Microsoft公司的“过滤器图表编辑器”)来为过滤器125添加其他部件(例如,内置过滤器140),以处理媒体文件并将其提供给150处的呈现目标(例如,显示器、扬声器或文件)。这种方法将必须依靠知道现存的内插附件过滤器125的应用程序本身,或让应用程序本身内的外延码询问登记册120,以发现现存的过滤器125的可用性。这要求应用程序开发者添加额外的代码行来完成内插附件过滤器数据的询问和处理,从而给他们带来沉重的负担。
用于动态地安装和调用内插附件过滤器的示范的总系统和方法图2展示了用于扩展具有内插附件过滤器245的系统过程210的性能的更动态、更灵活的系统200。在这种系统中,提供了一种在这里被称作“内插附件管理器220”的系统服务程序,作为部件对象(例如,MicrosoftWindows平台上的“部件对象模型”对象),它对整个系统中都可以访问,用作程序210与内插附件过滤器245之间的节点。这样,一方面,内插附件过滤器245可以使用内插附件管理器220来将自身安装在240处的系统中,并使自身可以被程序210使用。另一方面,内插附件管理器220可以被程序210用来发现、列举和提供与内插附件过滤器(例如,过滤器245)的接口。程序210可以使用编辑器250来添加内插附件过滤器245以及内置过滤器260,以处理媒体文件并将其提供给呈现目标270。通过提供用于管理内插附件过滤器的安装和供应的分开的系统服务程序,将不仅解除程序210本身处理这种代码密集型任务的负担,而且可以生成对内插附件管理器220的调用的系统上的所有程序都能够潜在地获得的这种服务。
另外,总系统200以及内插附件管理器220提供了一种可靠的安全模型,以确保任何有错误倾向的、不可信的或未被验证的过滤器无法损害系统或在可以使用内插附件过滤器245的程序210内引起错误。例如,在225处安装或登记系统之前,可以使用内插附件管理器220来验证内插附件过滤器245。也可以在215处使用内插附件管理器220来将程序210与内插附件过滤器245分开,以便内插附件过滤器245的错误不会转给程序210。以下将额外详细地描述系统200的这些和其他的方面。
可以使用所展示的总系统结构200和内插附件管理器220来执行用于动态地安装和调用内插附件过滤器以便扩展系统过程210的性能的一种方法。图3展示了一个这样的程序。在310处,可以使用内插附件管理器来将内插附件过滤器安装在系统内,供与系统有关的一个或多个程序调用。其后,在320处,可以使用内插附件管理器220来动态地调用将由系统过程使用的内插附件过滤器。例如,可以使用内插附件管理器220来建立请求并为应用程序提供符合特殊询问准则的一系列过滤器。然后,该应用程序可以从这一系列过滤器中进行选择,可以为该应用程序提供这些过滤器,以完成特殊任务。
具有使系统上的过程可以获得安装和调用内插附件的系统服务程序的示范系统结构图4展示了具有安装和调用内插附件过滤器的系统服务程序的一种系统结构。尤其是,图4展示了具有系统的所有过程可用来发现和使用内插附件过滤器的系统服务程序的系统结构。过程可以包括设备驱动器430(例如,特殊扫描仪模型的设备驱动器)、可以被用来在存储于硬盘470上之前处理来自设备的数据的获取软件420、获取用户接口425和普通应用程序410。内插附件管理器440是系统范围的服务,可以被所有这些过程(例如,430、420、410和425)访问。内插附件过滤器也可以由IHVs、ISVs或甚至第3方卖主来提供。这样,可以使用第3方卖主所提供的信托的过滤器来扩展IHV所提供的驱动器或ISV所提供的应用程序。这种灵活性将允许用户定制其桌面,以增加其系统的媒体功能。
通过使用内插附件管理器440来列举系统上可用的内插附件过滤器455并用来选择将被用于特殊任务的所列举的过滤器中的一个或多个过滤器,可以扩展设备驱动器430的各种性能。可以使用驱动器侧470上的内插附件过滤器来处理媒体数据,而无须用户具备任何有关内插附件的知识。例如,如果扫描仪制造商知道特殊的模型可以用黑暗的阴影来扫描有颜色的纸张,则他们可以提供驱动器侧470的内插附件过滤器455,以便自动纠正这种缺点,而无须用户具备知识或进行干预。
另外,典型的设备驱动器430所执行的任务与将媒体数据从设备(未示出)传送到应用程序或操作系统有关,并与对正在被传送数据的处理有关。对于不同的设备模型而言,与只在设备与系统之间传送数据有关的驱动器430的部件通常是相同的。但是,可以在不同的设备模型的驱动器中使用不同的效果或增强过滤器。与处理媒体数据有关的驱动器430的部件可以作为内插附件过滤器455来加以执行,并且,通过使用内插附件管理器440,它们可以只在需要时由驱动器来调用。这样,灵活的系统结构400允许IHVs或驱动器开发者提供标准驱动器,而无须在多个设备模型之间分享任何专用的过滤器,也无须提供作为内插附件的模型从属部件来扩展标准驱动器。也可以提供作为内插附件的任何升级或增强的特点,而无须提供设备驱动器的全新版本。这大大节省了用于维修驱动器的成本。
此外,IHVs可以使用内插附件管理器440来替换类似但内置的或系统默认过滤器的功能。例如,MicrosoftWindowsXP平台的扫描仪获取软件将扫描仪的文档供给器滚筒认作是被扫描的图像的一部分。当前,用户必须通过选择不包括被扫描的滚筒的区域,来手动纠正这一点。但是,IHV可以使用内插附件管理器来提供内插附件过滤器,以替换内置过滤器并自动从被扫描的图像中移走滚筒。
当媒体数据从设备被传送到系统(反之亦然)时,通常使用获取软件420(例如,Microsoft公司的“扫描仪”和“照相机向导”)来处理该媒体数据。获取软件420可以使用内插附件管理器440来扩展其自己的能力,方法与以上有关驱动器430的描述非常相似。当前,IHVs必须提供其自己的获取软件,以使用内置于操作系统的标准获取软件通常不支持的专用过滤器。但是,利用系统结构400,通过使用作为内插附件的专用过滤器,可以扩展内置于操作系统(例如,Microsoft公司的“扫描仪”和“照相机向导”)的获取软件。这样,IHVs可以增加现存的获取软件的功能,而不是替换它们。
同样,应用程序也可以在460处使用内插附件管理器440来发现、列举、选择和使用系统上可用的内插附件过滤器465,以扩展其功能。这样,当作为系统服务程序被加以执行时,内插附件管理器440可以增加媒体数据处理的各个不同层次(例如,470、475和480)处的各种程序(例如,410、420和430)的功能。
图4按各个层次(例如,470、475和480)示出系统中的媒体数据的典型的处理上的划分,这只展示了一个概念内插附件管理器440是可以被用来扩展各种类型的软件部件的一种系统服务程序。同样,将内插附件过滤器455和465划分为应用程序内插附件450和获取内插附件460也仅仅是一种辅助说明,并不是系统正常运行所必需的。
用于安装和调用内插附件过滤器的示范系统服务程序将参考图5、6、7和8来更详细地描述内插附件管理器440的功能。内插附件管理器440可以作为对象(例如,部件对象模型)来加以执行,它可以由系统过程(例如,设备驱动器420或应用程序410)来例示。通常,内插附件管理器440负责安装和列举系统上可用的内插附件过滤器455和465。图5提供了内插附件管理器440的示范实施,表现了程序可以用来扩展其性能的各种方法以及过滤器开发者可以用来将其过滤器安装在系统上的方法。
内插附件过滤器(例如455和465)可以按其功能来加以分类,内插附件管理器能够根据这种分类化来搜索过滤器。以下是基于其功能的过滤器的标准类别的可能的清单艺术、艺术效果、模糊、模糊效果、彩色、彩色效果、锐化、锐化效果、噪声和噪声效果。系统可以具有被登记在这些标准类别下的许多过滤器,一个以上的过滤器可以属于任何一个类别,单个的过滤器可以属于一个以上的类别。但是,有时,一些过滤器无法被分类到这些标准类别中的一个类别以内。在那种情况下,通过提供被称作“类别ID”的唯一的标识符(例如,GUID(全局唯一标识符))、名称和过滤器的功能的某种说明,可以使用方法510来增加非公开的类别。一旦过滤器被分类和登记,就可以使用方法520来列举至少具有系统上可用的一个过滤器的所有类别。也可以修改方法520,只列举系统知道的所有类别,或只列举系统定义的类别。另外,内插附件管理器440也提供用于删除类别的方法。例如,方法530根据与一个类别有关的唯一的标识符的输入,来删除该类别。使用方法530来删除一个类别,这不仅可以删除该类别,而且可以删除与被删除的类别有关的所有过滤器。这样,内插附件管理器440能够根据它们所属的类别来管理过滤器的添加、列举和删除,这可能比在过滤器层次完成相同的任务更迅速、更有效率。
使用内插附件管理器440,也可以通过搜索和列举单独的过滤器(而不是类别)来提供额外层次的细节。系统过程可以使用方法540来列举属于特殊类别的所有过滤器。对方法540的调用可能需要通过使用其唯一的标识符(ID)来指定类别。通过提供类别ID、过滤器ID、名称和过滤器的功能的说明,过滤器开发者也可以使用方法550来安装新过滤器。另外,在对方法560的调用指定过滤器ID的情况下,可以使用方法560来卸载过滤器。此外,系统过程可以使用方法570来获得有关特殊的过滤器的信息并决定是否使用该过滤器来扩展其自己的性能。
为了确保系统安全,调用方法来卸载或删除类别(530)或过滤器(560)的程序可能需要为内插附件管理器440提供合适的安全标记。过滤器开发者(例如,为使用特殊设备而设计的驱动器相关过滤器)也可以使用内插附件管理器440来将特殊的非公开类别或独特的过滤器的使用局限于特殊的设备或应用程序,从而防止它被其他应用程序或其他设备使用。
用于安装将由系统过程动态地调用的内插附件过滤器的示范程序以上有关图5的描述简要讨论了用于在系统上安装过滤器的方法550。图6额外详细地展示了安装过滤器的程序。在610处,系统接收将被安装在系统上的一个内插附件。该内插附件过滤器可能是软件部件对象,可以与相关的设备驱动器以及新的应用程序的安装等一起被提供。也可以将内插附件过滤器布置在网络上的服务器上,以便用户可以在方便时访问服务器并下载内插附件过滤器。无论采用什么接收内插附件过滤器的方法,为了使用以上所描述的各种方法来将其过滤器安装入系统,过滤器开发者本身都应该熟悉内插附件管理器接口(例如,图5)。这样,在620处,内插附件过滤器使用内插附件管理器接口来处理来自内插附件管理器的调用,以开始安装过滤器。过滤器为内插管理器提供其类别ID、其过滤器ID、其名称和说明。然后,在630处,内插附件管理器证实正在被加入的过滤器是可信的过滤器。为正在被加入的过滤器提供数字签名,内插附件管理器认为该数字签名是可信赖的。在640处,如果签名不被接受,那么,在650处,内插附件管理器拒绝正在被加入的过滤器。但是,在640处,如果签名被接受,则正在被加入的过滤器被证实是可信赖的。然后,在660处,内插附件管理器使用内插附件过滤器所提供的参数,以便将它们安装在系统上。如果正在被加入的内插附件过滤器不属于标准过滤器类别或系统已熟悉的任何类别,那么,内插附件管理器的调用者可能需要在安装任何有关的过滤器之前将类别(510)加入登记册。
与搜索和列举系统上的内插附件过滤器有关的示范程序如以上参考图6的描述,一旦安装这些过滤器,就可以将它们列举出来并将其提供给系统过程,以扩展它们的性能。图7和图8描述了这种完整的程序。在710处,内插附件管理器从系统过程接收请求,以列举符合调用程序所提供的准则且在系统上可用的一系列内插附件过滤器。一旦内插附件管理器接收列举的请求,那么,在720处,它通过列举一系列内插附件过滤器来对该请求作出响应,并被提供给调用程序。
关于选择将要被列举的过滤器的准则可能跟属于一个或多个过滤器类别(例如540)的过滤器清单一样简单。该准则也可以更精细,例如,要求列举具有与特殊的、可信赖的实体有关的数字签名的过滤器。图8展示了用于根据一套示范准则来列举系统上可用的内插附件过滤器的程序。在810处,内插附件管理器从程序接收请求,以列举内插附件过滤器。在820处,内插附件管理器识别属于在来自程序的请求中被指定的类别的所有过滤器。随后,在830处,内插附件管理器证实被选择的过滤器具有由请求程序指定的数字签名中的一个或多个数字签名。例如,Microsoft公司的应用程序可能只想使用具有Microsoft已验证和批准的数字签名的内插附件过滤器。另外,在840处,内插附件管理器证实所选择的过滤器不晚于与过滤器有关的某个截止日期。如果将要购买过滤器的有效许可证的用户曾在试用的基础上将过滤器装载在系统上,则这可能会有用。这样,在850处,只列举符合由程序指定的所有准则(例如,类别ID、可接受的数字签名、截止日期等)的过滤器。更精细的准则可能也取决于被安装的过滤器的名称或说明。但是,过滤器越精致,列举程序的效率可能会越低。这些准则中的一项或多项准则可以由内插附件管理器、内插附件过滤器和操作系统中的一项或多项来设置。
用于选择和使用系统上可用的内插附件过滤器的示范程序一旦内插附件管理器响应于程序所提出的请求而列举一系列过滤器,该程序就可以使用内插附件过滤器来扩展其自己的性能。如图9所示,在910处,要求列举内插附件过滤器的程序接收或访问被列举的内插附件过滤器清单或表格。然后,在920处,要求列举的程序选择可用的内插附件过滤器中的一个或多个内插附件过滤器。然后,在930处,要求列举的程序接收指向被选择的内插附件过滤器对象的接口指针。然后,在940处,程序使用与内插附件过滤器的接口来调用过滤器及其有关的方法,以处理被选择的媒体数据。还可能有一个优点让程序请求或指示内插附件管理器调用过滤器,而不是程序直接调用过滤器。这样,要求使用内插附件过滤器的程序将可以与过滤器程序分开,从而不太可能会容易受到过滤器内的任何错误的攻击。
可以通过应用程序或获取软件用户接口向用户显示被列举的过滤器的清单,以允许用户从该清单中选择一个过滤器。但是,为用户提供这种清单可能并不总是必要的或有用的。在这种情况下,应用程序或其他系统过程可以自动从被列举的内插附件过滤器的清单中进行选择。
一旦程序调用被选择的内插附件过滤器来处理媒体数据,程序或内插附件管理器(看情况)就可以将对处理的控制交给过滤器本身。如图10所示,在1010处,内插附件过滤器可以为用户提供用户接口,以输入用于处理媒体数据的参数。图11展示了涉及为扩散器效果过滤器输入用户定义的参数的用户接口的一个这样的例子。或者,过滤器的功能可能不要求任何用户输入或甚至任何过程参数(例如,一些分析过滤器只要求作为输入的媒体数据,并可以提供作为输出的一个或多个元数据)。在1020处,内插附件过滤器使用被指定的参数来处理媒体数据。然后,在1030处,内插附件过滤器将处理过的数据提供给调用内插附件过滤器或另一个过滤器的程序,以便继续处理媒体数据。然后,处理过的数据可以被提供给呈现目标(例如,显示器或扬声器)。
用于安装和调用内插附件过滤器的系统的示范安全模型图4中的系统结构(允许系统过程通过使用内插附件过滤器来扩展其性能)开放而灵活。其优点在于这种开放而灵活的结构允许用户将定制的媒体处理部件加入其桌面。但是,这也使系统容易受到可能驻留在ISV、IHV或第3方所提供的内插附件过滤器内的错误和故障的攻击。由于该危险成分日益增加,操作系统软件或应用程序的制造者始终防备用户通过使用其他方所提供的部件来扩展其程序。但是,如上所述,通过要求与可以验证其安全服从性的数字签名一起提供内插附件过滤器,可以解决其中的一些顾虑。例如,可以将内插附件管理器配置成要求所有的内插附件过滤器提供一个或多个被批准的数字签名(例如见630)。此外,即使在批准将内插附件过滤器安装在系统内之后,要求内插附件过滤器的程序也可以为内插附件管理器指定额外的安全准则,以便只列举那些符合这种准则的过滤器,供选择(例如见830)。
此外,图12和13展示了另一种安全机制,用于保护程序不会遇到被用于扩展其性能的内插附件过滤器内的任何错误或故障。如图12所示,程序1210可以要求内插附件管理器1220列举一系列可用的内插附件过滤器1230。该程序也可以要求内插附件管理器1220识别与每个内插附件过滤器有关的数字签名。无法提供某些被批准的数字签名中的一个或多个数字签名的那些过滤器可以被放置在沙箱1240中,以便可以在程序1210以外使用被选择的过滤器1250、1251和1253。这样,程序1210可以与被选择的过滤器1250、1251和1253隔离,以便这些过滤器内的任何错误或故障不会使程序1210在操作期间失灵。但是,程序1210将仍然能够接收过滤器1250、1251和1253的输出。
如图12所示的沙箱方法会导致媒体文件的处理速度明显减小。所以,在某些情况下,过滤器在程序1210本身内被使用也可能是有益的。图13展示了正在程序1320内被调用和使用的所选择的内插附件对象1320。虽然这通常使处理更加迅速,但是,也呈现了一个危险程序1310因内插附件过滤器1320内的错误而发生故障。所以,可以使用内插附件管理器1340来验证内插附件过滤器的数字签名,以便只有呈现被批准的签名1320的过滤器可以在程序1310内被加以调用和使用。否则,如图12所示,内插附件过滤器可以被放置在程序1310以外。例如,如果应用程序从内插附件管理器1340那里接收对过滤器的可信赖度的证实,则应用程序1310可以装载将通过其自己的用户接口而被调用的过滤器。通过这种布置,即使过滤器开发者自己的品牌正被用于另一个实体的软件内,他们也将可以为这些品牌做广告。
将被用于动态地扩展系统过程的性能的内插附件过滤器的示范特征内插附件管理器用来扩展程序的各种性能(如图4中的系统结构所启用的)的内插附件过滤器可能需要让某种标准功能有效地使用内插附件管理器和系统过程。例如,内插附件过滤器能够接收多种类别的输入,并能够提供多种类别的输出。一个这样的过滤器是缝合过滤器,它能够接受多个图像并产生一个输出图像。文档扫描过滤器也可以接受一个图像并产生多种输出类型(例如,图像和文本数据)。提供输出数据(除图像以外)的过滤器的例子包括注解发生器和图像测量过滤器。注解发生器可以提取数据(例如,来自图像(无论图像中是否有人)上的日期邮戳的日期)。图像测量过滤器可以产生将被用于设置扫描参数的预览扫描图像的直方图或各个测量方面。
另外,内插附件过滤器应该能够从另一个过滤器对象那里接收其输入,也能够将其输出提供给另一个过滤器对象。如图14所示,内插附件过滤器1410、1420和1430可以在一个链中有关联,以便可以马上使用多个过滤器1410、1420和1430来处理媒体数据1440。否则,内插附件过滤器1410、1420和1430都必须被分开处理、呈现,然后再由另一个过滤器来处理。这会很耗时。利用一系列有关联的过滤器的各种性能,内插附件管理器可以列举几个过滤器,并且,应用程序可以马上选择多个效果过滤器来扩展其性能。
图15中展示了内插附件过滤器的另一个特点。通常,过滤器能够只处理媒体数据的全部输入的一些部分。例如,关于图像处理,过滤器(例如,内插附件效果过滤器1510)能够接收完整图像的一部分(例如,由其坐标识别)、处理那个所选择的部分并将其输出到呈现目标1530。利用这种方式,由于应用程序正通过过滤器来操纵图像,因此,当该图像的一部分正由效果改变时,该图像的原始视图可以持续下去。这样,应用程序将能够为用户提供内插附件的效果的几乎瞬间的视图。如果(例如)效果不合乎需要,则可以中途淘汰内插附件。虽然图15使用图像文件的一个例子来展示这个过滤器特点,但是,可以用与其各自的过滤器类别相同的方式来处理其他媒体(例如,音频或视频)。
如图16所示,使一系列的内插附件过滤器联合(图14)的特点和处理媒体文件的一部分的特点可以被组合起来,以便使一系列的多个过滤器联合起来,或者在处理输入文件的各个部分时观察或收听内插附件过滤器的效果。例如,可以在1620处缩放1610处的完整图像的一部分,然后,可以在1630处取消被选择的部分,以便在1640处,在呈现该图像之前除去“红眼”。
备择方案这些方法和系统描述了几个系统部件(例如,系统服务程序内插附件管理器、内插附件过滤器和系统过程)的功能。不言而喻,如果被加以编程的话,则归于以上所描述的任何一个这些和其他的部件的功能也可以由任何其他相关的部件来执行。
例子也讨论了特殊类型的媒体(例如,视频、音频、图像等)的处理,但是,作为例子的基础的概念同样可应用于所有形式的媒体数据。鉴于许多可能的实施例,将会认识到所展示的实施例只包括例子,而不应该被作为是对本发明的范围的限制。相反,本发明由以下的权利要求书来加以定义。所以,我们声明本发明是在这些权利要求的范围以内的所有这样的实施例。
权利要求
1.一种管理媒体过滤器的方法,该方法在计算机上被加以执行,该计算机所具有的操作系统具备用于安装媒体过滤器的系统级服务程序,该方法的特征在于包括系统服务程序接收安装一个或多个媒体过滤器的请求;以及,系统服务程序安装一个或多个过滤器。
2.权利要求1的方法,其特征在于其中,从一个或多个过滤器那里接收安装一个或多个过滤器的请求。
3.权利要求1的方法,其特征在于其中,安装一个或多个媒体过滤器的请求包括以下的一项或多项内容对应于有关媒体过滤器的类别的一个或多个唯一的标识符;对应于媒体过滤器的一个或多个唯一的标识符;对应于媒体过滤器的一个或多个名称;媒体过滤器的一项或多项说明;以及,与这些媒体过滤器中每个有关的一个或多个数字签名。
4.一种管理媒体过滤器的方法,该方法在计算机系统上被加以执行,该计算机系统所具有的操作系统具备用于安装和列举媒体过滤器的系统级服务程序,该方法的特征在于包括系统级服务程序接收安装一个或多个媒体过滤器的请求;系统级服务程序安装一个或多个媒体过滤器;系统级服务程序接收请求以列举所安装的媒体过滤器中的一个或多个媒体过滤器;以及,系统级服务程序列举所安装的媒体过滤器中的一个或多个媒体过滤器。
5.权利要求4的方法,其特征在于其中从一个或多个媒体过滤器那里接收安装一个或多个媒体过滤器的请求。
6.权利要求4的方法,其特征在于其中,从与计算机有关的一个或多个程序那里接收列举所安装的媒体过滤器的请求。
7.权利要求4的方法,其特征在于其中,根据对应于媒体过滤器的一个或多个类别来列举所安装的媒体过滤器。
8.权利要求7的方法,其特征在于其中,这些类别中的每个类别对应于唯一的系统范围标识符,列举过滤器的请求包括这个唯一的类别标识符。
9.权利要求4的方法,其特征在于还包括在安装过滤器之前,确定与一个或多个媒体过滤器有关的一个或多个数字签名的可接受性。
10.权利要求9的方法,其特征在于还包括在列举所安装的过滤器之前,确定与过滤器有关的一个或多个数字签名的可接受性。
11.权利要求4的方法,其特征在于还包括在列举所安装的过滤器之前,确定与过滤器有关的一个或多个数字签名的可接受性。
12.权利要求11的方法,其特征在于还包括与要求列举所安装的过滤器的程序分开的那些过滤器被确定具有不可接受的数字签名。
13.权利要求11的方法,其特征在于其中,根据从要求列举的程序那里接收的准则,来确定用于列举的所安装的过滤器的可接受性。
14.权利要求11的方法,其特征在于其中,根据从以下的一项或多项内容那里接收的准则,来确定用于列举的系统上所安装的过滤器的可接受性请求列举的过程;所安装的过滤器;以及,操作系统。
15.一种计算机可读介质,其特征在于包括用于执行权利要求4中的方法的计算机可执行指令。
16.权利要求4的方法,其特征在于其中,媒体过滤器被连接成链,输入媒体数据由这链中的媒体过滤器来连续处理。
17.权利要求4的方法,其特征在于其中,多个程序马上可以使用这些媒体过滤器中的任何一个媒体过滤器。
18.在具有的操作系统具备媒体过滤器管理系统服务程序的计算机中,过滤器管理服务的特征在于包括用于从要被安装的媒体过滤器那里接收请求的代码;用于安装媒体过滤器的代码;用于从系统过程那里接收列举所安装的过滤器的请求的代码;以及,用于发现和列举所安装的过滤器的代码。
19.权利要求18的过滤器管理服务,其特征在于还包括用于在安装媒体过滤器之前确定媒体过滤器的有效性的代码。
20.权利要求18的过滤器管理服务,其特征在于还包括用于根据要求列举过滤器的系统过程所指定的准则来选择将要被列举的过滤器的代码。
21.权利要求18的过滤器管理服务,其特征在于还包括一种代码,该代码用于将待调用的、被列举的过滤器中的一个或多个过滤器选作与请求列举的系统过程分开的程序。
22.定制可在计算机上运行的可扩展媒体相关计算机系统过程的一种方法,该计算机具有用于列举被安装在计算机系统上的媒体相关过滤器的操作系统服务程序,该方法的特征在于包括要求操作系统服务程序列举被安装在计算机上的媒体相关过滤器;选择所列举的媒体相关过滤器中的一个或多个过滤器;以及,使用所选择的媒体相关过滤器来处理媒体相关数据。
23.权利要求22的方法,其特征在于还包括证实系统过程有正当的授权来使用所选择的媒体相关过滤器。
24.一种计算机可读介质,其特征在于包括用于执行权利要求22中的方法的计算机可执行指令。
25.权利要求22的方法,其特征在于其中,系统过程是以下的内容之一媒体处理软件应用程序;设备驱动器;以及,媒体相关获取软件。
26.将媒体相关过滤器安装在与一种操作系统有关的计算机系统上的一种方法,该操作系统具有用于安装媒体过滤器的系统级服务程序,该方法的特征在于包括请求系统级服务程序将媒体相关过滤器安装在系统上;以及,为系统级服务程序提供要被安装的媒体过滤器以及有关媒体过滤器的信息。
27.一种计算机可读介质,其特征在于包括用于执行权利要求26中的方法的计算机可执行指令。
28.权利要求26的方法,其特征在于其中,有关媒体过滤器的信息包括以下的一项或多项内容对应于媒体过滤器的一个或多个唯一的标识符;对应于媒体过滤器的一个或多个名称;媒体过滤器的一项或多项说明;以及,与这些媒体过滤器中每个有关的一个或多个数字签名。
29.一种管理媒体过滤器的方法,该方法在计算机系统上被加以执行,该计算机系统所具有的操作系统具备用于安装和发现被安装在计算机上的媒体过滤器的系统级服务程序,该方法的特征在于包括系统级服务程序接收将一个或多个媒体过滤器安装在计算机上的请求;系统级服务程序将媒体过滤器安装在计算机上;系统级服务程序接收请求以发现被安装在计算机上的媒体过滤器;以及,系统级服务程序发现被安装在计算机上的媒体过滤器。
30.在与一个或多个系统过程以及一种操作系统有关的计算机系统中,该操作系统具有用于安装和列举媒体过滤器的系统级服务程序,其中,这些过程包括调用以暴露编程接口,该接口与用于安装和列举媒体过滤器的系统级服务程序有关,该接口的特征在于包括用于将一个或多个媒体过滤器安装在计算机系统上的代码;以及,用于列举被安装在计算机系统上的一个或多个过滤器的代码。
31.权利要求30的接口,其特征在于其中,根据与这些过滤器的每个有关的唯一的标识符,将一个或多个媒体过滤器安装在计算机系统上。
32.权利要求30的接口,其特征在于其中,一个或多个媒体过滤器中的每个媒体过滤器对应于一个过滤器类别,并根据其对应的类别来安装一个或多个过滤器。
33.权利要求32的接口,其特征在于其中,根据其对应的类别来列举被安装在计算机系统上的一个或多个过滤器。
34.权利要求32的接口,其特征在于还包括用于删除对应于被安装在计算机系统上的一个或多个过滤器的一个或多个类别。
35.权利要求34的接口,其特征在于其中,删除一个或多个类别会导致将其对应的过滤器从计算机系统中删除。
36.权利要求30的接口,其特征在于还包括用于删除被安装在计算机系统上的一个或多个过滤器的代码。
全文摘要
这里所描述的系统和方法用于自动安装和使用媒体处理过滤器,以扩展系统过程的媒体功能。内插附件过滤器请求将系统服务程序安装在系统上。过滤器管理服务程序对该请求进行处理,并安装以后将由其他系统过程(例如,设备驱动器、应用程序和获取软件)调用的过滤器。这些系统过程使用过滤器管理服务程序来列举系统上可用的过滤器,并选择这些过滤器中的一个或多个过滤器,以扩展其媒体功能。过滤器是可以由多个过程在任何给定的时间使用的对象。在将过滤器安装在系统上之前,过滤器管理服务也可以验证该过滤器的可信赖度。此外,可以使用过滤器管理服务程序来提供由一个被调用过程所选择的过滤器,并与请求使用该过滤器的过程分开。可以根据其有关的类别来搜索和列举被安装的过滤器。
文档编号G06F13/10GK1534461SQ0314347
公开日2004年10月6日 申请日期2003年9月29日 优先权日2003年3月31日
发明者M·刘, I·扈利, A·科兹洛夫, M 刘, 嚷宸 申请人:微软公司