專(zhuān)利名稱(chēng):用于動(dòng)態(tài)增加軟件部件以便擴(kuò)展系統(tǒng)過(guò)程功能的系統(tǒng)結(jié)構(gòu)和相關(guān)方法
技術(shù)領(lǐng)域:
該技術(shù)領(lǐng)域通常涉及計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),尤其涉及用于自動(dòng)將軟件部件加入系統(tǒng)過(guò)程的操作系統(tǒng)結(jié)構(gòu)。
背景隨著數(shù)字媒體設(shè)備(例如,數(shù)字錄音帶(DAT)、數(shù)字化視頻光盤(pán)(DVD)、數(shù)字視頻照相機(jī)和數(shù)字靜物照相機(jī))的激增,計(jì)算機(jī)用戶(hù)日益需要更多的硬件和軟件性能來(lái)處理并使用數(shù)字媒體文件。大量的獨(dú)立硬件開(kāi)發(fā)商(IHVs)和獨(dú)立軟件開(kāi)發(fā)商(ISVs)已經(jīng)進(jìn)入市場(chǎng),以滿(mǎn)足對(duì)更多的軟件功能的需求。如此之多的ISVs和IHVs進(jìn)入市場(chǎng),這給具有媒體功能的操作系統(tǒng)和應(yīng)用程序的開(kāi)發(fā)者帶來(lái)許多挑戰(zhàn)。例如,IHVs和ISVs已為多媒體數(shù)字信號(hào)編解碼器和其他過(guò)濾器創(chuàng)建了許多不一致的格式。當(dāng)前,操作系統(tǒng)和應(yīng)用程序在用未被普遍運(yùn)用的多種格式工作方面的性能有限。
過(guò)濾器是被用于媒體文件(例如,音頻、視頻或靜止圖像)的軟件部件,可用作多媒體數(shù)字信號(hào)編解碼器(編碼器或解碼器),用來(lái)添加效果(例如,糾正顏色、增強(qiáng)亮度等)或分析文件的內(nèi)容(例如,用于提取元數(shù)據(jù)(比如給定的圖像文件中的人數(shù)))。當(dāng)前,在用于格式化圖像文件的臺(tái)式出版系統(tǒng)中,普遍使用幾種多媒體數(shù)字信號(hào)編解碼器標(biāo)準(zhǔn)(例如,JPEG、TIFF)。大多數(shù)操作系統(tǒng)、應(yīng)用程序和獲取軟件都支持這些廣為運(yùn)用的標(biāo)準(zhǔn)。例如,Microsoft公司生產(chǎn)的Microsoft、WindowsMe和MicrosoftWindowsXP中名為“掃描儀”(Scanner)和“照相機(jī)向?qū)А?Camera Wizard)的獲取軟件可以使用掃描儀和數(shù)字照相機(jī)設(shè)備,并具有對(duì)這些掃描儀和數(shù)字照相機(jī)驅(qū)動(dòng)器所產(chǎn)生的TIFF文件進(jìn)行解碼和處理的能力。
但是,一些硬件(例如,數(shù)字照相機(jī)和掃描儀)制造商可能喜歡使用為用于其自己的硬件部件而專(zhuān)門(mén)設(shè)計(jì)的多媒體數(shù)字信號(hào)編解碼器。例如,Nikon公司喜歡使用用于為數(shù)字圖像編碼和解碼的、被稱(chēng)作“TIFF/EP格式”的TIFF專(zhuān)用版本。然而,TIFF/EP格式?jīng)]有獲得操作系統(tǒng)或圖像處理應(yīng)用程序的廣泛使用或支持。例如,Microsoft公司的WindowsXP操作系統(tǒng)不支持圖像的TIFF/EP格式。這樣,若不安裝單獨(dú)的觀察器應(yīng)用程序,WindowsXP的桌面用戶(hù)將無(wú)法對(duì)從Nikon照相機(jī)獲得的TIFF/EP圖像文件進(jìn)行解碼和觀察。也無(wú)法擴(kuò)展一些圖像處理應(yīng)用程序(例如,Microsoft公司的“圖像觀察器”),以支持TIFF/EP標(biāo)準(zhǔn),因?yàn)樗鼈儽辉O(shè)計(jì)成無(wú)論何時(shí)為應(yīng)用程序提供TIFF類(lèi)型的文件,都使用標(biāo)準(zhǔn)ITFF解碼器。當(dāng)前,用戶(hù)可能必須為其Windows XP添加TIFF/EP多媒體數(shù)字信號(hào)編解碼器部件,并使用為用于TIFF/EP圖像而專(zhuān)門(mén)設(shè)計(jì)的應(yīng)用程序,以便觀察和改進(jìn)TIFF/EP圖像。所以,越來(lái)越需要操作系統(tǒng)通過(guò)將其自己的專(zhuān)利過(guò)濾器作為內(nèi)插附件提供給系統(tǒng)過(guò)程來(lái)更靈活地允許IHVs和ISVs擴(kuò)展現(xiàn)存的系統(tǒng)過(guò)程(例如,設(shè)備驅(qū)動(dòng)器、獲取軟件和其他應(yīng)用程序)的性能。通過(guò)允許IHVs或ISVs擴(kuò)展現(xiàn)存的應(yīng)用程序或獲取軟件的性能,也將會(huì)不再需要?jiǎng)?chuàng)建使用專(zhuān)用過(guò)濾器的自定義應(yīng)用程序,而使ISVs和IHVs能夠集中精力提供作為內(nèi)插附件的最佳過(guò)濾器。
軟件開(kāi)發(fā)者通常防備外部實(shí)體開(kāi)發(fā)的過(guò)濾器被用作內(nèi)插附件,因?yàn)閮?nèi)插附件過(guò)濾器中的任何錯(cuò)誤都會(huì)對(duì)其自己的軟件部件的操作造成潛在的影響。這樣,需要一些系統(tǒng)和方法,它們能夠充分確保使用內(nèi)插附件過(guò)濾器的系統(tǒng)或應(yīng)用程序的安全性。
通常,被安裝在系統(tǒng)上的過(guò)濾器部件要么是與某個(gè)應(yīng)用程序捆綁在一起,要么被安裝來(lái)專(zhuān)門(mén)用于某些所選擇的應(yīng)用程序。系統(tǒng)上的許多其他應(yīng)用程序通常不能使用所安裝的過(guò)濾器的功能。這樣,需要一種允許系統(tǒng)上的所有程序發(fā)現(xiàn)并使用內(nèi)插附件過(guò)濾器的開(kāi)放而靈活的系統(tǒng)結(jié)構(gòu),以便內(nèi)插附件過(guò)濾器甚至可以由未指定的應(yīng)用程序和設(shè)備驅(qū)動(dòng)器來(lái)加以使用。
此外,由于需要更多的媒體功能,正在系統(tǒng)上安裝和使用眾多不同的具有多種媒體功能的過(guò)濾器。這樣,需要一種系統(tǒng)結(jié)構(gòu),該系統(tǒng)結(jié)構(gòu)能有效率地搜索并列舉系統(tǒng)上所安裝的、可用的內(nèi)插附件過(guò)濾器,以便應(yīng)用程序或用戶(hù)(通過(guò)該應(yīng)用程序)在必要時(shí)可以選擇合適的內(nèi)插附件。
被安裝在系統(tǒng)上的多個(gè)過(guò)濾器中的每個(gè)過(guò)濾器也可以具有多種媒體功能,其中的一些過(guò)濾器可以具有重疊的功能。在一些情況中,這些過(guò)濾器中的一個(gè)或多個(gè)過(guò)濾器特別適合某種類(lèi)型的媒體處理。用戶(hù)或系統(tǒng)過(guò)程可能需要在選擇一個(gè)合適的過(guò)濾器之前發(fā)現(xiàn)多個(gè)過(guò)濾器的功能。實(shí)現(xiàn)這一點(diǎn)的一種方法將會(huì)是將該過(guò)濾器裝載到存儲(chǔ)器,然后確定它的性能。但是,這會(huì)占用系統(tǒng)資源,并會(huì)使過(guò)濾器內(nèi)插附件程序冗長(zhǎng)而緩慢。這樣,還需要一些系統(tǒng)和方法,用于根據(jù)過(guò)濾器的特點(diǎn)來(lái)對(duì)其進(jìn)行分類(lèi),并根據(jù)這些過(guò)濾器的分類(lèi)化來(lái)搜索、發(fā)現(xiàn)和列舉它們,而無(wú)須將過(guò)濾器裝載到存儲(chǔ)器中。
概述如這里所述,系統(tǒng)結(jié)構(gòu)和方法被提供,并用于自動(dòng)安裝和調(diào)用媒體處理過(guò)濾器,以擴(kuò)展系統(tǒng)過(guò)程(例如,媒體應(yīng)用程序、獲取軟件和設(shè)備驅(qū)動(dòng)器)的與媒體相關(guān)的功能。
一方面,系統(tǒng)結(jié)構(gòu)開(kāi)放而靈活,以便一個(gè)實(shí)體所提供的內(nèi)插附件過(guò)濾器能夠被用來(lái)擴(kuò)展另一個(gè)實(shí)體所提供的現(xiàn)存的程序的性能。系統(tǒng)允許內(nèi)插附件過(guò)濾器使用被稱(chēng)作“內(nèi)插附件管理器系統(tǒng)服務(wù)程序”的過(guò)濾器管理服務(wù)程序,以要求自身被安裝在系統(tǒng)上。該過(guò)濾器本身為內(nèi)插附件管理器提供與其功能有關(guān)的信息,內(nèi)插附件管理器使用該信息將內(nèi)插附件過(guò)濾器用可識(shí)別的方法安裝在系統(tǒng)上,待任何系統(tǒng)過(guò)程調(diào)用。
另一方面,內(nèi)插附件管理器對(duì)系統(tǒng)過(guò)程提出的請(qǐng)求作出響應(yīng),以列舉系統(tǒng)上可用的內(nèi)插附件過(guò)濾器。然后,這些程序可以從所列舉的內(nèi)插附件過(guò)濾器中進(jìn)行選擇,以擴(kuò)展其自己的媒體處理性能。這些過(guò)濾器可以根據(jù)其功能和特點(diǎn)來(lái)加以分類(lèi),并且,它們可以根據(jù)這種分類(lèi)化來(lái)被列舉。在一個(gè)實(shí)施例中,內(nèi)插附件管理器是一種服務(wù)程序,被安裝在系統(tǒng)上的任何程序都可以使用該服務(wù)程序來(lái)擴(kuò)展其自己的媒體處理功能。
在另一個(gè)方面中,為要求被安裝的內(nèi)插附件過(guò)濾器提供安全機(jī)制(例如,數(shù)字簽名),內(nèi)插附件管理器在將過(guò)濾器安裝在系統(tǒng)上之前驗(yàn)證數(shù)字簽名。另外,調(diào)用內(nèi)插附件過(guò)濾器的程序本身可能要求內(nèi)插附件管理器只列舉具有所選擇的數(shù)字簽名的過(guò)濾器。此外,可以要求內(nèi)插附件管理器使用與要求列舉內(nèi)插附件過(guò)濾器的程序分開(kāi)的程序中的被選擇的內(nèi)插附件過(guò)濾器,以便這些內(nèi)插附件過(guò)濾器的任何錯(cuò)誤或故障都不會(huì)影響要求列舉的程序的操作。
在一個(gè)額外的方面中,內(nèi)插附件管理器可以列舉多個(gè)類(lèi)別的多個(gè)過(guò)濾器,程序可以使用被連接成一鏈的多個(gè)過(guò)濾器,以便連續(xù)處理媒體數(shù)據(jù)。
通過(guò)以下詳細(xì)的描述并參考附圖,這里所描述的系統(tǒng)和方法的額外的特點(diǎn)和優(yōu)點(diǎn)將會(huì)一目了然。
附圖簡(jiǎn)述
圖1是方框圖,展示了通過(guò)安裝和使用內(nèi)插附件過(guò)濾器來(lái)擴(kuò)展系統(tǒng)過(guò)程的媒體功能的一種靜態(tài)方法。
圖2是方框圖,展示了通過(guò)自動(dòng)安裝和使用內(nèi)插附件過(guò)濾器來(lái)擴(kuò)展系統(tǒng)過(guò)程的媒體功能的一種動(dòng)態(tài)方法。
圖3是一種方法的流程圖,該方法用于動(dòng)態(tài)、自動(dòng)地安裝和使用內(nèi)插附件過(guò)濾器,以擴(kuò)展系統(tǒng)過(guò)程的媒體功能。
圖4是方框圖,展示了包括內(nèi)插附件管理器服務(wù)程序的一種系統(tǒng)結(jié)構(gòu),用于動(dòng)態(tài)、自動(dòng)地安裝和使用內(nèi)插附件過(guò)濾器,以擴(kuò)展各種類(lèi)型的系統(tǒng)過(guò)程的媒體功能。
圖5是與內(nèi)插附件管理器的接口的綱領(lǐng)性代表圖,并表現(xiàn)了用于安裝、發(fā)現(xiàn)和列舉系統(tǒng)內(nèi)的內(nèi)插附件過(guò)濾器的各種方法。
圖6是流程圖,描述了用于在系統(tǒng)內(nèi)自動(dòng)安裝內(nèi)插過(guò)濾器供系統(tǒng)過(guò)程以后調(diào)用的一種方法。
圖7是流程圖,描述了內(nèi)插附件管理器服務(wù)程序處理列舉系統(tǒng)內(nèi)的內(nèi)插附件過(guò)濾器的請(qǐng)求的一種方法。
圖8是流程圖,描述了內(nèi)插附件管理器服務(wù)程序根據(jù)所提供的準(zhǔn)則來(lái)處理列舉系統(tǒng)內(nèi)的內(nèi)插附件過(guò)濾器的請(qǐng)求的一種方法。
圖9是流程圖,描述了系統(tǒng)過(guò)程選擇由內(nèi)插附件過(guò)濾器列舉的一個(gè)或多個(gè)過(guò)濾器并使用所選擇的過(guò)濾器來(lái)擴(kuò)展其自己的媒體處理功能的一種方法。
圖10是流程圖,描述了內(nèi)插附件過(guò)濾器在被系統(tǒng)過(guò)程選擇時(shí)響應(yīng)于該程序的調(diào)用以便擴(kuò)展其媒體功能的一種方法。
圖11是由內(nèi)插附件過(guò)濾器提供的用戶(hù)接口,用于從用戶(hù)那里接收其處理參數(shù)中的一個(gè)或多個(gè)處理參數(shù)。
圖12是方框圖,展示了通過(guò)將不可信的過(guò)濾器與調(diào)用過(guò)濾器對(duì)象的程序分離來(lái)確保調(diào)用內(nèi)插附件過(guò)濾器的程序的安全性的一種方法。
圖13是方框圖,展示了允許可信的過(guò)濾器對(duì)象從系統(tǒng)過(guò)程內(nèi)被調(diào)用的一種方法。
圖14是方框圖,展示了用于連續(xù)處理媒體數(shù)據(jù)的一系列有關(guān)聯(lián)的內(nèi)插附件過(guò)濾器。
圖15是方框圖,展示了一些內(nèi)插附件過(guò)濾器,它們接收媒體數(shù)據(jù)的所選擇的部分,處理所接收的部分,并輸出被處理的部分,同時(shí),繼續(xù)接收該媒體數(shù)據(jù)的更多的部分。
圖16是方框圖,展示了多個(gè)內(nèi)插附件過(guò)濾器,它們具有連續(xù)處理媒體文件的各個(gè)部分的多種功能。
詳細(xì)描述縱覽過(guò)濾器是被用于處理媒體(例如,音頻、視頻和靜止圖像)中的軟件部件。過(guò)濾器可以是多媒體數(shù)字信號(hào)編解碼器(編碼器或解碼器)、分析過(guò)濾器或增強(qiáng)過(guò)濾器。多媒體數(shù)字信號(hào)編解碼器的例子包括用于視頻的MPEG、用于數(shù)字靜止圖像的JPEG或TIFF和用于音頻文件的WAV或AVI。多媒體數(shù)字信號(hào)編解碼器主要被用來(lái)壓縮媒體文件,以便在網(wǎng)絡(luò)上有效率地進(jìn)行傳輸。增強(qiáng)過(guò)濾器(也被稱(chēng)作“效果”)主要被用于通過(guò)改變像位以便改善數(shù)據(jù)或重新改變數(shù)據(jù)用途(例如,為圖像文件增強(qiáng)亮度,或?yàn)橐纛l文件減少噪聲),來(lái)為媒體文件添加增強(qiáng)效果。分析過(guò)濾器從圖像文件中提取數(shù)據(jù)(例如,諸如圖像文件中的背景顏色的元數(shù)據(jù))。提供作為標(biāo)準(zhǔn)的許多過(guò)濾器,同時(shí)提供操作系統(tǒng)軟件(例如,MicrosoftWindowsXP)或媒體處理應(yīng)用程序(例如,AdobePhotoshop)。但是,無(wú)數(shù)具有專(zhuān)門(mén)用途的過(guò)濾器可能不被特殊的操作系統(tǒng)平臺(tái)或應(yīng)用程序支持。在其他事物之中,以下所描述的系統(tǒng)結(jié)構(gòu)和方法規(guī)定了用于增加過(guò)濾器作為內(nèi)插附件以便擴(kuò)展現(xiàn)存的系統(tǒng)過(guò)程的性能的一種開(kāi)放而靈活的結(jié)構(gòu)。
圖1展示了通過(guò)提供完成特殊任務(wù)的內(nèi)插附件來(lái)擴(kuò)展系統(tǒng)的性能的一種靜態(tài)方法。在這種系統(tǒng)中,程序110(例如,設(shè)備驅(qū)動(dòng)器、應(yīng)用程序或獲取軟件)可能需要知道被登記在系統(tǒng)登記冊(cè)120內(nèi)的可用的內(nèi)插附件過(guò)濾器125。然后,程序110可以選擇一個(gè)特殊的內(nèi)插附件過(guò)濾器對(duì)象125,并使用編輯器130(例如,Microsoft公司的“過(guò)濾器圖表編輯器”)來(lái)為過(guò)濾器125添加其他部件(例如,內(nèi)置過(guò)濾器140),以處理媒體文件并將其提供給150處的呈現(xiàn)目標(biāo)(例如,顯示器、揚(yáng)聲器或文件)。這種方法將必須依靠知道現(xiàn)存的內(nèi)插附件過(guò)濾器125的應(yīng)用程序本身,或讓?xiě)?yīng)用程序本身內(nèi)的外延碼詢(xún)問(wèn)登記冊(cè)120,以發(fā)現(xiàn)現(xiàn)存的過(guò)濾器125的可用性。這要求應(yīng)用程序開(kāi)發(fā)者添加額外的代碼行來(lái)完成內(nèi)插附件過(guò)濾器數(shù)據(jù)的詢(xún)問(wèn)和處理,從而給他們帶來(lái)沉重的負(fù)擔(dān)。
用于動(dòng)態(tài)地安裝和調(diào)用內(nèi)插附件過(guò)濾器的示范的總系統(tǒng)和方法圖2展示了用于擴(kuò)展具有內(nèi)插附件過(guò)濾器245的系統(tǒng)過(guò)程210的性能的更動(dòng)態(tài)、更靈活的系統(tǒng)200。在這種系統(tǒng)中,提供了一種在這里被稱(chēng)作“內(nèi)插附件管理器220”的系統(tǒng)服務(wù)程序,作為部件對(duì)象(例如,MicrosoftWindows平臺(tái)上的“部件對(duì)象模型”對(duì)象),它對(duì)整個(gè)系統(tǒng)中都可以訪問(wèn),用作程序210與內(nèi)插附件過(guò)濾器245之間的節(jié)點(diǎn)。這樣,一方面,內(nèi)插附件過(guò)濾器245可以使用內(nèi)插附件管理器220來(lái)將自身安裝在240處的系統(tǒng)中,并使自身可以被程序210使用。另一方面,內(nèi)插附件管理器220可以被程序210用來(lái)發(fā)現(xiàn)、列舉和提供與內(nèi)插附件過(guò)濾器(例如,過(guò)濾器245)的接口。程序210可以使用編輯器250來(lái)添加內(nèi)插附件過(guò)濾器245以及內(nèi)置過(guò)濾器260,以處理媒體文件并將其提供給呈現(xiàn)目標(biāo)270。通過(guò)提供用于管理內(nèi)插附件過(guò)濾器的安裝和供應(yīng)的分開(kāi)的系統(tǒng)服務(wù)程序,將不僅解除程序210本身處理這種代碼密集型任務(wù)的負(fù)擔(dān),而且可以生成對(duì)內(nèi)插附件管理器220的調(diào)用的系統(tǒng)上的所有程序都能夠潛在地獲得的這種服務(wù)。
另外,總系統(tǒng)200以及內(nèi)插附件管理器220提供了一種可靠的安全模型,以確保任何有錯(cuò)誤傾向的、不可信的或未被驗(yàn)證的過(guò)濾器無(wú)法損害系統(tǒng)或在可以使用內(nèi)插附件過(guò)濾器245的程序210內(nèi)引起錯(cuò)誤。例如,在225處安裝或登記系統(tǒng)之前,可以使用內(nèi)插附件管理器220來(lái)驗(yàn)證內(nèi)插附件過(guò)濾器245。也可以在215處使用內(nèi)插附件管理器220來(lái)將程序210與內(nèi)插附件過(guò)濾器245分開(kāi),以便內(nèi)插附件過(guò)濾器245的錯(cuò)誤不會(huì)轉(zhuǎn)給程序210。以下將額外詳細(xì)地描述系統(tǒng)200的這些和其他的方面。
可以使用所展示的總系統(tǒng)結(jié)構(gòu)200和內(nèi)插附件管理器220來(lái)執(zhí)行用于動(dòng)態(tài)地安裝和調(diào)用內(nèi)插附件過(guò)濾器以便擴(kuò)展系統(tǒng)過(guò)程210的性能的一種方法。圖3展示了一個(gè)這樣的程序。在310處,可以使用內(nèi)插附件管理器來(lái)將內(nèi)插附件過(guò)濾器安裝在系統(tǒng)內(nèi),供與系統(tǒng)有關(guān)的一個(gè)或多個(gè)程序調(diào)用。其后,在320處,可以使用內(nèi)插附件管理器220來(lái)動(dòng)態(tài)地調(diào)用將由系統(tǒng)過(guò)程使用的內(nèi)插附件過(guò)濾器。例如,可以使用內(nèi)插附件管理器220來(lái)建立請(qǐng)求并為應(yīng)用程序提供符合特殊詢(xún)問(wèn)準(zhǔn)則的一系列過(guò)濾器。然后,該應(yīng)用程序可以從這一系列過(guò)濾器中進(jìn)行選擇,可以為該應(yīng)用程序提供這些過(guò)濾器,以完成特殊任務(wù)。
具有使系統(tǒng)上的過(guò)程可以獲得安裝和調(diào)用內(nèi)插附件的系統(tǒng)服務(wù)程序的示范系統(tǒng)結(jié)構(gòu)圖4展示了具有安裝和調(diào)用內(nèi)插附件過(guò)濾器的系統(tǒng)服務(wù)程序的一種系統(tǒng)結(jié)構(gòu)。尤其是,圖4展示了具有系統(tǒng)的所有過(guò)程可用來(lái)發(fā)現(xiàn)和使用內(nèi)插附件過(guò)濾器的系統(tǒng)服務(wù)程序的系統(tǒng)結(jié)構(gòu)。過(guò)程可以包括設(shè)備驅(qū)動(dòng)器430(例如,特殊掃描儀模型的設(shè)備驅(qū)動(dòng)器)、可以被用來(lái)在存儲(chǔ)于硬盤(pán)470上之前處理來(lái)自設(shè)備的數(shù)據(jù)的獲取軟件420、獲取用戶(hù)接口425和普通應(yīng)用程序410。內(nèi)插附件管理器440是系統(tǒng)范圍的服務(wù),可以被所有這些過(guò)程(例如,430、420、410和425)訪問(wèn)。內(nèi)插附件過(guò)濾器也可以由IHVs、ISVs或甚至第3方賣(mài)主來(lái)提供。這樣,可以使用第3方賣(mài)主所提供的信托的過(guò)濾器來(lái)擴(kuò)展IHV所提供的驅(qū)動(dòng)器或ISV所提供的應(yīng)用程序。這種靈活性將允許用戶(hù)定制其桌面,以增加其系統(tǒng)的媒體功能。
通過(guò)使用內(nèi)插附件管理器440來(lái)列舉系統(tǒng)上可用的內(nèi)插附件過(guò)濾器455并用來(lái)選擇將被用于特殊任務(wù)的所列舉的過(guò)濾器中的一個(gè)或多個(gè)過(guò)濾器,可以擴(kuò)展設(shè)備驅(qū)動(dòng)器430的各種性能。可以使用驅(qū)動(dòng)器側(cè)470上的內(nèi)插附件過(guò)濾器來(lái)處理媒體數(shù)據(jù),而無(wú)須用戶(hù)具備任何有關(guān)內(nèi)插附件的知識(shí)。例如,如果掃描儀制造商知道特殊的模型可以用黑暗的陰影來(lái)掃描有顏色的紙張,則他們可以提供驅(qū)動(dòng)器側(cè)470的內(nèi)插附件過(guò)濾器455,以便自動(dòng)糾正這種缺點(diǎn),而無(wú)須用戶(hù)具備知識(shí)或進(jìn)行干預(yù)。
另外,典型的設(shè)備驅(qū)動(dòng)器430所執(zhí)行的任務(wù)與將媒體數(shù)據(jù)從設(shè)備(未示出)傳送到應(yīng)用程序或操作系統(tǒng)有關(guān),并與對(duì)正在被傳送數(shù)據(jù)的處理有關(guān)。對(duì)于不同的設(shè)備模型而言,與只在設(shè)備與系統(tǒng)之間傳送數(shù)據(jù)有關(guān)的驅(qū)動(dòng)器430的部件通常是相同的。但是,可以在不同的設(shè)備模型的驅(qū)動(dòng)器中使用不同的效果或增強(qiáng)過(guò)濾器。與處理媒體數(shù)據(jù)有關(guān)的驅(qū)動(dòng)器430的部件可以作為內(nèi)插附件過(guò)濾器455來(lái)加以執(zhí)行,并且,通過(guò)使用內(nèi)插附件管理器440,它們可以只在需要時(shí)由驅(qū)動(dòng)器來(lái)調(diào)用。這樣,靈活的系統(tǒng)結(jié)構(gòu)400允許IHVs或驅(qū)動(dòng)器開(kāi)發(fā)者提供標(biāo)準(zhǔn)驅(qū)動(dòng)器,而無(wú)須在多個(gè)設(shè)備模型之間分享任何專(zhuān)用的過(guò)濾器,也無(wú)須提供作為內(nèi)插附件的模型從屬部件來(lái)擴(kuò)展標(biāo)準(zhǔn)驅(qū)動(dòng)器。也可以提供作為內(nèi)插附件的任何升級(jí)或增強(qiáng)的特點(diǎn),而無(wú)須提供設(shè)備驅(qū)動(dòng)器的全新版本。這大大節(jié)省了用于維修驅(qū)動(dòng)器的成本。
此外,IHVs可以使用內(nèi)插附件管理器440來(lái)替換類(lèi)似但內(nèi)置的或系統(tǒng)默認(rèn)過(guò)濾器的功能。例如,MicrosoftWindowsXP平臺(tái)的掃描儀獲取軟件將掃描儀的文檔供給器滾筒認(rèn)作是被掃描的圖像的一部分。當(dāng)前,用戶(hù)必須通過(guò)選擇不包括被掃描的滾筒的區(qū)域,來(lái)手動(dòng)糾正這一點(diǎn)。但是,IHV可以使用內(nèi)插附件管理器來(lái)提供內(nèi)插附件過(guò)濾器,以替換內(nèi)置過(guò)濾器并自動(dòng)從被掃描的圖像中移走滾筒。
當(dāng)媒體數(shù)據(jù)從設(shè)備被傳送到系統(tǒng)(反之亦然)時(shí),通常使用獲取軟件420(例如,Microsoft公司的“掃描儀”和“照相機(jī)向?qū)А?來(lái)處理該媒體數(shù)據(jù)。獲取軟件420可以使用內(nèi)插附件管理器440來(lái)擴(kuò)展其自己的能力,方法與以上有關(guān)驅(qū)動(dòng)器430的描述非常相似。當(dāng)前,IHVs必須提供其自己的獲取軟件,以使用內(nèi)置于操作系統(tǒng)的標(biāo)準(zhǔn)獲取軟件通常不支持的專(zhuān)用過(guò)濾器。但是,利用系統(tǒng)結(jié)構(gòu)400,通過(guò)使用作為內(nèi)插附件的專(zhuān)用過(guò)濾器,可以擴(kuò)展內(nèi)置于操作系統(tǒng)(例如,Microsoft公司的“掃描儀”和“照相機(jī)向?qū)А?的獲取軟件。這樣,IHVs可以增加現(xiàn)存的獲取軟件的功能,而不是替換它們。
同樣,應(yīng)用程序也可以在460處使用內(nèi)插附件管理器440來(lái)發(fā)現(xiàn)、列舉、選擇和使用系統(tǒng)上可用的內(nèi)插附件過(guò)濾器465,以擴(kuò)展其功能。這樣,當(dāng)作為系統(tǒng)服務(wù)程序被加以執(zhí)行時(shí),內(nèi)插附件管理器440可以增加媒體數(shù)據(jù)處理的各個(gè)不同層次(例如,470、475和480)處的各種程序(例如,410、420和430)的功能。
圖4按各個(gè)層次(例如,470、475和480)示出系統(tǒng)中的媒體數(shù)據(jù)的典型的處理上的劃分,這只展示了一個(gè)概念內(nèi)插附件管理器440是可以被用來(lái)擴(kuò)展各種類(lèi)型的軟件部件的一種系統(tǒng)服務(wù)程序。同樣,將內(nèi)插附件過(guò)濾器455和465劃分為應(yīng)用程序內(nèi)插附件450和獲取內(nèi)插附件460也僅僅是一種輔助說(shuō)明,并不是系統(tǒng)正常運(yùn)行所必需的。
用于安裝和調(diào)用內(nèi)插附件過(guò)濾器的示范系統(tǒng)服務(wù)程序?qū)⒖紙D5、6、7和8來(lái)更詳細(xì)地描述內(nèi)插附件管理器440的功能。內(nèi)插附件管理器440可以作為對(duì)象(例如,部件對(duì)象模型)來(lái)加以執(zhí)行,它可以由系統(tǒng)過(guò)程(例如,設(shè)備驅(qū)動(dòng)器420或應(yīng)用程序410)來(lái)例示。通常,內(nèi)插附件管理器440負(fù)責(zé)安裝和列舉系統(tǒng)上可用的內(nèi)插附件過(guò)濾器455和465。圖5提供了內(nèi)插附件管理器440的示范實(shí)施,表現(xiàn)了程序可以用來(lái)擴(kuò)展其性能的各種方法以及過(guò)濾器開(kāi)發(fā)者可以用來(lái)將其過(guò)濾器安裝在系統(tǒng)上的方法。
內(nèi)插附件過(guò)濾器(例如455和465)可以按其功能來(lái)加以分類(lèi),內(nèi)插附件管理器能夠根據(jù)這種分類(lèi)化來(lái)搜索過(guò)濾器。以下是基于其功能的過(guò)濾器的標(biāo)準(zhǔn)類(lèi)別的可能的清單藝術(shù)、藝術(shù)效果、模糊、模糊效果、彩色、彩色效果、銳化、銳化效果、噪聲和噪聲效果。系統(tǒng)可以具有被登記在這些標(biāo)準(zhǔn)類(lèi)別下的許多過(guò)濾器,一個(gè)以上的過(guò)濾器可以屬于任何一個(gè)類(lèi)別,單個(gè)的過(guò)濾器可以屬于一個(gè)以上的類(lèi)別。但是,有時(shí),一些過(guò)濾器無(wú)法被分類(lèi)到這些標(biāo)準(zhǔn)類(lèi)別中的一個(gè)類(lèi)別以?xún)?nèi)。在那種情況下,通過(guò)提供被稱(chēng)作“類(lèi)別ID”的唯一的標(biāo)識(shí)符(例如,GUID(全局唯一標(biāo)識(shí)符))、名稱(chēng)和過(guò)濾器的功能的某種說(shuō)明,可以使用方法510來(lái)增加非公開(kāi)的類(lèi)別。一旦過(guò)濾器被分類(lèi)和登記,就可以使用方法520來(lái)列舉至少具有系統(tǒng)上可用的一個(gè)過(guò)濾器的所有類(lèi)別。也可以修改方法520,只列舉系統(tǒng)知道的所有類(lèi)別,或只列舉系統(tǒng)定義的類(lèi)別。另外,內(nèi)插附件管理器440也提供用于刪除類(lèi)別的方法。例如,方法530根據(jù)與一個(gè)類(lèi)別有關(guān)的唯一的標(biāo)識(shí)符的輸入,來(lái)刪除該類(lèi)別。使用方法530來(lái)刪除一個(gè)類(lèi)別,這不僅可以刪除該類(lèi)別,而且可以刪除與被刪除的類(lèi)別有關(guān)的所有過(guò)濾器。這樣,內(nèi)插附件管理器440能夠根據(jù)它們所屬的類(lèi)別來(lái)管理過(guò)濾器的添加、列舉和刪除,這可能比在過(guò)濾器層次完成相同的任務(wù)更迅速、更有效率。
使用內(nèi)插附件管理器440,也可以通過(guò)搜索和列舉單獨(dú)的過(guò)濾器(而不是類(lèi)別)來(lái)提供額外層次的細(xì)節(jié)。系統(tǒng)過(guò)程可以使用方法540來(lái)列舉屬于特殊類(lèi)別的所有過(guò)濾器。對(duì)方法540的調(diào)用可能需要通過(guò)使用其唯一的標(biāo)識(shí)符(ID)來(lái)指定類(lèi)別。通過(guò)提供類(lèi)別ID、過(guò)濾器ID、名稱(chēng)和過(guò)濾器的功能的說(shuō)明,過(guò)濾器開(kāi)發(fā)者也可以使用方法550來(lái)安裝新過(guò)濾器。另外,在對(duì)方法560的調(diào)用指定過(guò)濾器ID的情況下,可以使用方法560來(lái)卸載過(guò)濾器。此外,系統(tǒng)過(guò)程可以使用方法570來(lái)獲得有關(guān)特殊的過(guò)濾器的信息并決定是否使用該過(guò)濾器來(lái)擴(kuò)展其自己的性能。
為了確保系統(tǒng)安全,調(diào)用方法來(lái)卸載或刪除類(lèi)別(530)或過(guò)濾器(560)的程序可能需要為內(nèi)插附件管理器440提供合適的安全標(biāo)記。過(guò)濾器開(kāi)發(fā)者(例如,為使用特殊設(shè)備而設(shè)計(jì)的驅(qū)動(dòng)器相關(guān)過(guò)濾器)也可以使用內(nèi)插附件管理器440來(lái)將特殊的非公開(kāi)類(lèi)別或獨(dú)特的過(guò)濾器的使用局限于特殊的設(shè)備或應(yīng)用程序,從而防止它被其他應(yīng)用程序或其他設(shè)備使用。
用于安裝將由系統(tǒng)過(guò)程動(dòng)態(tài)地調(diào)用的內(nèi)插附件過(guò)濾器的示范程序以上有關(guān)圖5的描述簡(jiǎn)要討論了用于在系統(tǒng)上安裝過(guò)濾器的方法550。圖6額外詳細(xì)地展示了安裝過(guò)濾器的程序。在610處,系統(tǒng)接收將被安裝在系統(tǒng)上的一個(gè)內(nèi)插附件。該內(nèi)插附件過(guò)濾器可能是軟件部件對(duì)象,可以與相關(guān)的設(shè)備驅(qū)動(dòng)器以及新的應(yīng)用程序的安裝等一起被提供。也可以將內(nèi)插附件過(guò)濾器布置在網(wǎng)絡(luò)上的服務(wù)器上,以便用戶(hù)可以在方便時(shí)訪問(wèn)服務(wù)器并下載內(nèi)插附件過(guò)濾器。無(wú)論采用什么接收內(nèi)插附件過(guò)濾器的方法,為了使用以上所描述的各種方法來(lái)將其過(guò)濾器安裝入系統(tǒng),過(guò)濾器開(kāi)發(fā)者本身都應(yīng)該熟悉內(nèi)插附件管理器接口(例如,圖5)。這樣,在620處,內(nèi)插附件過(guò)濾器使用內(nèi)插附件管理器接口來(lái)處理來(lái)自?xún)?nèi)插附件管理器的調(diào)用,以開(kāi)始安裝過(guò)濾器。過(guò)濾器為內(nèi)插管理器提供其類(lèi)別ID、其過(guò)濾器ID、其名稱(chēng)和說(shuō)明。然后,在630處,內(nèi)插附件管理器證實(shí)正在被加入的過(guò)濾器是可信的過(guò)濾器。為正在被加入的過(guò)濾器提供數(shù)字簽名,內(nèi)插附件管理器認(rèn)為該數(shù)字簽名是可信賴(lài)的。在640處,如果簽名不被接受,那么,在650處,內(nèi)插附件管理器拒絕正在被加入的過(guò)濾器。但是,在640處,如果簽名被接受,則正在被加入的過(guò)濾器被證實(shí)是可信賴(lài)的。然后,在660處,內(nèi)插附件管理器使用內(nèi)插附件過(guò)濾器所提供的參數(shù),以便將它們安裝在系統(tǒng)上。如果正在被加入的內(nèi)插附件過(guò)濾器不屬于標(biāo)準(zhǔn)過(guò)濾器類(lèi)別或系統(tǒng)已熟悉的任何類(lèi)別,那么,內(nèi)插附件管理器的調(diào)用者可能需要在安裝任何有關(guān)的過(guò)濾器之前將類(lèi)別(510)加入登記冊(cè)。
與搜索和列舉系統(tǒng)上的內(nèi)插附件過(guò)濾器有關(guān)的示范程序如以上參考圖6的描述,一旦安裝這些過(guò)濾器,就可以將它們列舉出來(lái)并將其提供給系統(tǒng)過(guò)程,以擴(kuò)展它們的性能。圖7和圖8描述了這種完整的程序。在710處,內(nèi)插附件管理器從系統(tǒng)過(guò)程接收請(qǐng)求,以列舉符合調(diào)用程序所提供的準(zhǔn)則且在系統(tǒng)上可用的一系列內(nèi)插附件過(guò)濾器。一旦內(nèi)插附件管理器接收列舉的請(qǐng)求,那么,在720處,它通過(guò)列舉一系列內(nèi)插附件過(guò)濾器來(lái)對(duì)該請(qǐng)求作出響應(yīng),并被提供給調(diào)用程序。
關(guān)于選擇將要被列舉的過(guò)濾器的準(zhǔn)則可能跟屬于一個(gè)或多個(gè)過(guò)濾器類(lèi)別(例如540)的過(guò)濾器清單一樣簡(jiǎn)單。該準(zhǔn)則也可以更精細(xì),例如,要求列舉具有與特殊的、可信賴(lài)的實(shí)體有關(guān)的數(shù)字簽名的過(guò)濾器。圖8展示了用于根據(jù)一套示范準(zhǔn)則來(lái)列舉系統(tǒng)上可用的內(nèi)插附件過(guò)濾器的程序。在810處,內(nèi)插附件管理器從程序接收請(qǐng)求,以列舉內(nèi)插附件過(guò)濾器。在820處,內(nèi)插附件管理器識(shí)別屬于在來(lái)自程序的請(qǐng)求中被指定的類(lèi)別的所有過(guò)濾器。隨后,在830處,內(nèi)插附件管理器證實(shí)被選擇的過(guò)濾器具有由請(qǐng)求程序指定的數(shù)字簽名中的一個(gè)或多個(gè)數(shù)字簽名。例如,Microsoft公司的應(yīng)用程序可能只想使用具有Microsoft已驗(yàn)證和批準(zhǔn)的數(shù)字簽名的內(nèi)插附件過(guò)濾器。另外,在840處,內(nèi)插附件管理器證實(shí)所選擇的過(guò)濾器不晚于與過(guò)濾器有關(guān)的某個(gè)截止日期。如果將要購(gòu)買(mǎi)過(guò)濾器的有效許可證的用戶(hù)曾在試用的基礎(chǔ)上將過(guò)濾器裝載在系統(tǒng)上,則這可能會(huì)有用。這樣,在850處,只列舉符合由程序指定的所有準(zhǔn)則(例如,類(lèi)別ID、可接受的數(shù)字簽名、截止日期等)的過(guò)濾器。更精細(xì)的準(zhǔn)則可能也取決于被安裝的過(guò)濾器的名稱(chēng)或說(shuō)明。但是,過(guò)濾器越精致,列舉程序的效率可能會(huì)越低。這些準(zhǔn)則中的一項(xiàng)或多項(xiàng)準(zhǔn)則可以由內(nèi)插附件管理器、內(nèi)插附件過(guò)濾器和操作系統(tǒng)中的一項(xiàng)或多項(xiàng)來(lái)設(shè)置。
用于選擇和使用系統(tǒng)上可用的內(nèi)插附件過(guò)濾器的示范程序一旦內(nèi)插附件管理器響應(yīng)于程序所提出的請(qǐng)求而列舉一系列過(guò)濾器,該程序就可以使用內(nèi)插附件過(guò)濾器來(lái)擴(kuò)展其自己的性能。如圖9所示,在910處,要求列舉內(nèi)插附件過(guò)濾器的程序接收或訪問(wèn)被列舉的內(nèi)插附件過(guò)濾器清單或表格。然后,在920處,要求列舉的程序選擇可用的內(nèi)插附件過(guò)濾器中的一個(gè)或多個(gè)內(nèi)插附件過(guò)濾器。然后,在930處,要求列舉的程序接收指向被選擇的內(nèi)插附件過(guò)濾器對(duì)象的接口指針。然后,在940處,程序使用與內(nèi)插附件過(guò)濾器的接口來(lái)調(diào)用過(guò)濾器及其有關(guān)的方法,以處理被選擇的媒體數(shù)據(jù)。還可能有一個(gè)優(yōu)點(diǎn)讓程序請(qǐng)求或指示內(nèi)插附件管理器調(diào)用過(guò)濾器,而不是程序直接調(diào)用過(guò)濾器。這樣,要求使用內(nèi)插附件過(guò)濾器的程序?qū)⒖梢耘c過(guò)濾器程序分開(kāi),從而不太可能會(huì)容易受到過(guò)濾器內(nèi)的任何錯(cuò)誤的攻擊。
可以通過(guò)應(yīng)用程序或獲取軟件用戶(hù)接口向用戶(hù)顯示被列舉的過(guò)濾器的清單,以允許用戶(hù)從該清單中選擇一個(gè)過(guò)濾器。但是,為用戶(hù)提供這種清單可能并不總是必要的或有用的。在這種情況下,應(yīng)用程序或其他系統(tǒng)過(guò)程可以自動(dòng)從被列舉的內(nèi)插附件過(guò)濾器的清單中進(jìn)行選擇。
一旦程序調(diào)用被選擇的內(nèi)插附件過(guò)濾器來(lái)處理媒體數(shù)據(jù),程序或內(nèi)插附件管理器(看情況)就可以將對(duì)處理的控制交給過(guò)濾器本身。如圖10所示,在1010處,內(nèi)插附件過(guò)濾器可以為用戶(hù)提供用戶(hù)接口,以輸入用于處理媒體數(shù)據(jù)的參數(shù)。圖11展示了涉及為擴(kuò)散器效果過(guò)濾器輸入用戶(hù)定義的參數(shù)的用戶(hù)接口的一個(gè)這樣的例子?;蛘撸^(guò)濾器的功能可能不要求任何用戶(hù)輸入或甚至任何過(guò)程參數(shù)(例如,一些分析過(guò)濾器只要求作為輸入的媒體數(shù)據(jù),并可以提供作為輸出的一個(gè)或多個(gè)元數(shù)據(jù))。在1020處,內(nèi)插附件過(guò)濾器使用被指定的參數(shù)來(lái)處理媒體數(shù)據(jù)。然后,在1030處,內(nèi)插附件過(guò)濾器將處理過(guò)的數(shù)據(jù)提供給調(diào)用內(nèi)插附件過(guò)濾器或另一個(gè)過(guò)濾器的程序,以便繼續(xù)處理媒體數(shù)據(jù)。然后,處理過(guò)的數(shù)據(jù)可以被提供給呈現(xiàn)目標(biāo)(例如,顯示器或揚(yáng)聲器)。
用于安裝和調(diào)用內(nèi)插附件過(guò)濾器的系統(tǒng)的示范安全模型圖4中的系統(tǒng)結(jié)構(gòu)(允許系統(tǒng)過(guò)程通過(guò)使用內(nèi)插附件過(guò)濾器來(lái)擴(kuò)展其性能)開(kāi)放而靈活。其優(yōu)點(diǎn)在于這種開(kāi)放而靈活的結(jié)構(gòu)允許用戶(hù)將定制的媒體處理部件加入其桌面。但是,這也使系統(tǒng)容易受到可能駐留在ISV、IHV或第3方所提供的內(nèi)插附件過(guò)濾器內(nèi)的錯(cuò)誤和故障的攻擊。由于該危險(xiǎn)成分日益增加,操作系統(tǒng)軟件或應(yīng)用程序的制造者始終防備用戶(hù)通過(guò)使用其他方所提供的部件來(lái)擴(kuò)展其程序。但是,如上所述,通過(guò)要求與可以驗(yàn)證其安全服從性的數(shù)字簽名一起提供內(nèi)插附件過(guò)濾器,可以解決其中的一些顧慮。例如,可以將內(nèi)插附件管理器配置成要求所有的內(nèi)插附件過(guò)濾器提供一個(gè)或多個(gè)被批準(zhǔn)的數(shù)字簽名(例如見(jiàn)630)。此外,即使在批準(zhǔn)將內(nèi)插附件過(guò)濾器安裝在系統(tǒng)內(nèi)之后,要求內(nèi)插附件過(guò)濾器的程序也可以為內(nèi)插附件管理器指定額外的安全準(zhǔn)則,以便只列舉那些符合這種準(zhǔn)則的過(guò)濾器,供選擇(例如見(jiàn)830)。
此外,圖12和13展示了另一種安全機(jī)制,用于保護(hù)程序不會(huì)遇到被用于擴(kuò)展其性能的內(nèi)插附件過(guò)濾器內(nèi)的任何錯(cuò)誤或故障。如圖12所示,程序1210可以要求內(nèi)插附件管理器1220列舉一系列可用的內(nèi)插附件過(guò)濾器1230。該程序也可以要求內(nèi)插附件管理器1220識(shí)別與每個(gè)內(nèi)插附件過(guò)濾器有關(guān)的數(shù)字簽名。無(wú)法提供某些被批準(zhǔn)的數(shù)字簽名中的一個(gè)或多個(gè)數(shù)字簽名的那些過(guò)濾器可以被放置在沙箱1240中,以便可以在程序1210以外使用被選擇的過(guò)濾器1250、1251和1253。這樣,程序1210可以與被選擇的過(guò)濾器1250、1251和1253隔離,以便這些過(guò)濾器內(nèi)的任何錯(cuò)誤或故障不會(huì)使程序1210在操作期間失靈。但是,程序1210將仍然能夠接收過(guò)濾器1250、1251和1253的輸出。
如圖12所示的沙箱方法會(huì)導(dǎo)致媒體文件的處理速度明顯減小。所以,在某些情況下,過(guò)濾器在程序1210本身內(nèi)被使用也可能是有益的。圖13展示了正在程序1320內(nèi)被調(diào)用和使用的所選擇的內(nèi)插附件對(duì)象1320。雖然這通常使處理更加迅速,但是,也呈現(xiàn)了一個(gè)危險(xiǎn)程序1310因內(nèi)插附件過(guò)濾器1320內(nèi)的錯(cuò)誤而發(fā)生故障。所以,可以使用內(nèi)插附件管理器1340來(lái)驗(yàn)證內(nèi)插附件過(guò)濾器的數(shù)字簽名,以便只有呈現(xiàn)被批準(zhǔn)的簽名1320的過(guò)濾器可以在程序1310內(nèi)被加以調(diào)用和使用。否則,如圖12所示,內(nèi)插附件過(guò)濾器可以被放置在程序1310以外。例如,如果應(yīng)用程序從內(nèi)插附件管理器1340那里接收對(duì)過(guò)濾器的可信賴(lài)度的證實(shí),則應(yīng)用程序1310可以裝載將通過(guò)其自己的用戶(hù)接口而被調(diào)用的過(guò)濾器。通過(guò)這種布置,即使過(guò)濾器開(kāi)發(fā)者自己的品牌正被用于另一個(gè)實(shí)體的軟件內(nèi),他們也將可以為這些品牌做廣告。
將被用于動(dòng)態(tài)地?cái)U(kuò)展系統(tǒng)過(guò)程的性能的內(nèi)插附件過(guò)濾器的示范特征內(nèi)插附件管理器用來(lái)擴(kuò)展程序的各種性能(如圖4中的系統(tǒng)結(jié)構(gòu)所啟用的)的內(nèi)插附件過(guò)濾器可能需要讓某種標(biāo)準(zhǔn)功能有效地使用內(nèi)插附件管理器和系統(tǒng)過(guò)程。例如,內(nèi)插附件過(guò)濾器能夠接收多種類(lèi)別的輸入,并能夠提供多種類(lèi)別的輸出。一個(gè)這樣的過(guò)濾器是縫合過(guò)濾器,它能夠接受多個(gè)圖像并產(chǎn)生一個(gè)輸出圖像。文檔掃描過(guò)濾器也可以接受一個(gè)圖像并產(chǎn)生多種輸出類(lèi)型(例如,圖像和文本數(shù)據(jù))。提供輸出數(shù)據(jù)(除圖像以外)的過(guò)濾器的例子包括注解發(fā)生器和圖像測(cè)量過(guò)濾器。注解發(fā)生器可以提取數(shù)據(jù)(例如,來(lái)自圖像(無(wú)論圖像中是否有人)上的日期郵戳的日期)。圖像測(cè)量過(guò)濾器可以產(chǎn)生將被用于設(shè)置掃描參數(shù)的預(yù)覽掃描圖像的直方圖或各個(gè)測(cè)量方面。
另外,內(nèi)插附件過(guò)濾器應(yīng)該能夠從另一個(gè)過(guò)濾器對(duì)象那里接收其輸入,也能夠?qū)⑵漭敵鎏峁┙o另一個(gè)過(guò)濾器對(duì)象。如圖14所示,內(nèi)插附件過(guò)濾器1410、1420和1430可以在一個(gè)鏈中有關(guān)聯(lián),以便可以馬上使用多個(gè)過(guò)濾器1410、1420和1430來(lái)處理媒體數(shù)據(jù)1440。否則,內(nèi)插附件過(guò)濾器1410、1420和1430都必須被分開(kāi)處理、呈現(xiàn),然后再由另一個(gè)過(guò)濾器來(lái)處理。這會(huì)很耗時(shí)。利用一系列有關(guān)聯(lián)的過(guò)濾器的各種性能,內(nèi)插附件管理器可以列舉幾個(gè)過(guò)濾器,并且,應(yīng)用程序可以馬上選擇多個(gè)效果過(guò)濾器來(lái)擴(kuò)展其性能。
圖15中展示了內(nèi)插附件過(guò)濾器的另一個(gè)特點(diǎn)。通常,過(guò)濾器能夠只處理媒體數(shù)據(jù)的全部輸入的一些部分。例如,關(guān)于圖像處理,過(guò)濾器(例如,內(nèi)插附件效果過(guò)濾器1510)能夠接收完整圖像的一部分(例如,由其坐標(biāo)識(shí)別)、處理那個(gè)所選擇的部分并將其輸出到呈現(xiàn)目標(biāo)1530。利用這種方式,由于應(yīng)用程序正通過(guò)過(guò)濾器來(lái)操縱圖像,因此,當(dāng)該圖像的一部分正由效果改變時(shí),該圖像的原始視圖可以持續(xù)下去。這樣,應(yīng)用程序?qū)⒛軌驗(yàn)橛脩?hù)提供內(nèi)插附件的效果的幾乎瞬間的視圖。如果(例如)效果不合乎需要,則可以中途淘汰內(nèi)插附件。雖然圖15使用圖像文件的一個(gè)例子來(lái)展示這個(gè)過(guò)濾器特點(diǎn),但是,可以用與其各自的過(guò)濾器類(lèi)別相同的方式來(lái)處理其他媒體(例如,音頻或視頻)。
如圖16所示,使一系列的內(nèi)插附件過(guò)濾器聯(lián)合(圖14)的特點(diǎn)和處理媒體文件的一部分的特點(diǎn)可以被組合起來(lái),以便使一系列的多個(gè)過(guò)濾器聯(lián)合起來(lái),或者在處理輸入文件的各個(gè)部分時(shí)觀察或收聽(tīng)內(nèi)插附件過(guò)濾器的效果。例如,可以在1620處縮放1610處的完整圖像的一部分,然后,可以在1630處取消被選擇的部分,以便在1640處,在呈現(xiàn)該圖像之前除去“紅眼”。
備擇方案這些方法和系統(tǒng)描述了幾個(gè)系統(tǒng)部件(例如,系統(tǒng)服務(wù)程序內(nèi)插附件管理器、內(nèi)插附件過(guò)濾器和系統(tǒng)過(guò)程)的功能。不言而喻,如果被加以編程的話(huà),則歸于以上所描述的任何一個(gè)這些和其他的部件的功能也可以由任何其他相關(guān)的部件來(lái)執(zhí)行。
例子也討論了特殊類(lèi)型的媒體(例如,視頻、音頻、圖像等)的處理,但是,作為例子的基礎(chǔ)的概念同樣可應(yīng)用于所有形式的媒體數(shù)據(jù)。鑒于許多可能的實(shí)施例,將會(huì)認(rèn)識(shí)到所展示的實(shí)施例只包括例子,而不應(yīng)該被作為是對(duì)本發(fā)明的范圍的限制。相反,本發(fā)明由以下的權(quán)利要求書(shū)來(lái)加以定義。所以,我們聲明本發(fā)明是在這些權(quán)利要求的范圍以?xún)?nèi)的所有這樣的實(shí)施例。
權(quán)利要求
1.一種管理媒體過(guò)濾器的方法,該方法在計(jì)算機(jī)上被加以執(zhí)行,該計(jì)算機(jī)所具有的操作系統(tǒng)具備用于安裝媒體過(guò)濾器的系統(tǒng)級(jí)服務(wù)程序,該方法的特征在于包括系統(tǒng)服務(wù)程序接收安裝一個(gè)或多個(gè)媒體過(guò)濾器的請(qǐng)求;以及,系統(tǒng)服務(wù)程序安裝一個(gè)或多個(gè)過(guò)濾器。
2.權(quán)利要求1的方法,其特征在于其中,從一個(gè)或多個(gè)過(guò)濾器那里接收安裝一個(gè)或多個(gè)過(guò)濾器的請(qǐng)求。
3.權(quán)利要求1的方法,其特征在于其中,安裝一個(gè)或多個(gè)媒體過(guò)濾器的請(qǐng)求包括以下的一項(xiàng)或多項(xiàng)內(nèi)容對(duì)應(yīng)于有關(guān)媒體過(guò)濾器的類(lèi)別的一個(gè)或多個(gè)唯一的標(biāo)識(shí)符;對(duì)應(yīng)于媒體過(guò)濾器的一個(gè)或多個(gè)唯一的標(biāo)識(shí)符;對(duì)應(yīng)于媒體過(guò)濾器的一個(gè)或多個(gè)名稱(chēng);媒體過(guò)濾器的一項(xiàng)或多項(xiàng)說(shuō)明;以及,與這些媒體過(guò)濾器中每個(gè)有關(guān)的一個(gè)或多個(gè)數(shù)字簽名。
4.一種管理媒體過(guò)濾器的方法,該方法在計(jì)算機(jī)系統(tǒng)上被加以執(zhí)行,該計(jì)算機(jī)系統(tǒng)所具有的操作系統(tǒng)具備用于安裝和列舉媒體過(guò)濾器的系統(tǒng)級(jí)服務(wù)程序,該方法的特征在于包括系統(tǒng)級(jí)服務(wù)程序接收安裝一個(gè)或多個(gè)媒體過(guò)濾器的請(qǐng)求;系統(tǒng)級(jí)服務(wù)程序安裝一個(gè)或多個(gè)媒體過(guò)濾器;系統(tǒng)級(jí)服務(wù)程序接收請(qǐng)求以列舉所安裝的媒體過(guò)濾器中的一個(gè)或多個(gè)媒體過(guò)濾器;以及,系統(tǒng)級(jí)服務(wù)程序列舉所安裝的媒體過(guò)濾器中的一個(gè)或多個(gè)媒體過(guò)濾器。
5.權(quán)利要求4的方法,其特征在于其中從一個(gè)或多個(gè)媒體過(guò)濾器那里接收安裝一個(gè)或多個(gè)媒體過(guò)濾器的請(qǐng)求。
6.權(quán)利要求4的方法,其特征在于其中,從與計(jì)算機(jī)有關(guān)的一個(gè)或多個(gè)程序那里接收列舉所安裝的媒體過(guò)濾器的請(qǐng)求。
7.權(quán)利要求4的方法,其特征在于其中,根據(jù)對(duì)應(yīng)于媒體過(guò)濾器的一個(gè)或多個(gè)類(lèi)別來(lái)列舉所安裝的媒體過(guò)濾器。
8.權(quán)利要求7的方法,其特征在于其中,這些類(lèi)別中的每個(gè)類(lèi)別對(duì)應(yīng)于唯一的系統(tǒng)范圍標(biāo)識(shí)符,列舉過(guò)濾器的請(qǐng)求包括這個(gè)唯一的類(lèi)別標(biāo)識(shí)符。
9.權(quán)利要求4的方法,其特征在于還包括在安裝過(guò)濾器之前,確定與一個(gè)或多個(gè)媒體過(guò)濾器有關(guān)的一個(gè)或多個(gè)數(shù)字簽名的可接受性。
10.權(quán)利要求9的方法,其特征在于還包括在列舉所安裝的過(guò)濾器之前,確定與過(guò)濾器有關(guān)的一個(gè)或多個(gè)數(shù)字簽名的可接受性。
11.權(quán)利要求4的方法,其特征在于還包括在列舉所安裝的過(guò)濾器之前,確定與過(guò)濾器有關(guān)的一個(gè)或多個(gè)數(shù)字簽名的可接受性。
12.權(quán)利要求11的方法,其特征在于還包括與要求列舉所安裝的過(guò)濾器的程序分開(kāi)的那些過(guò)濾器被確定具有不可接受的數(shù)字簽名。
13.權(quán)利要求11的方法,其特征在于其中,根據(jù)從要求列舉的程序那里接收的準(zhǔn)則,來(lái)確定用于列舉的所安裝的過(guò)濾器的可接受性。
14.權(quán)利要求11的方法,其特征在于其中,根據(jù)從以下的一項(xiàng)或多項(xiàng)內(nèi)容那里接收的準(zhǔn)則,來(lái)確定用于列舉的系統(tǒng)上所安裝的過(guò)濾器的可接受性請(qǐng)求列舉的過(guò)程;所安裝的過(guò)濾器;以及,操作系統(tǒng)。
15.一種計(jì)算機(jī)可讀介質(zhì),其特征在于包括用于執(zhí)行權(quán)利要求4中的方法的計(jì)算機(jī)可執(zhí)行指令。
16.權(quán)利要求4的方法,其特征在于其中,媒體過(guò)濾器被連接成鏈,輸入媒體數(shù)據(jù)由這鏈中的媒體過(guò)濾器來(lái)連續(xù)處理。
17.權(quán)利要求4的方法,其特征在于其中,多個(gè)程序馬上可以使用這些媒體過(guò)濾器中的任何一個(gè)媒體過(guò)濾器。
18.在具有的操作系統(tǒng)具備媒體過(guò)濾器管理系統(tǒng)服務(wù)程序的計(jì)算機(jī)中,過(guò)濾器管理服務(wù)的特征在于包括用于從要被安裝的媒體過(guò)濾器那里接收請(qǐng)求的代碼;用于安裝媒體過(guò)濾器的代碼;用于從系統(tǒng)過(guò)程那里接收列舉所安裝的過(guò)濾器的請(qǐng)求的代碼;以及,用于發(fā)現(xiàn)和列舉所安裝的過(guò)濾器的代碼。
19.權(quán)利要求18的過(guò)濾器管理服務(wù),其特征在于還包括用于在安裝媒體過(guò)濾器之前確定媒體過(guò)濾器的有效性的代碼。
20.權(quán)利要求18的過(guò)濾器管理服務(wù),其特征在于還包括用于根據(jù)要求列舉過(guò)濾器的系統(tǒng)過(guò)程所指定的準(zhǔn)則來(lái)選擇將要被列舉的過(guò)濾器的代碼。
21.權(quán)利要求18的過(guò)濾器管理服務(wù),其特征在于還包括一種代碼,該代碼用于將待調(diào)用的、被列舉的過(guò)濾器中的一個(gè)或多個(gè)過(guò)濾器選作與請(qǐng)求列舉的系統(tǒng)過(guò)程分開(kāi)的程序。
22.定制可在計(jì)算機(jī)上運(yùn)行的可擴(kuò)展媒體相關(guān)計(jì)算機(jī)系統(tǒng)過(guò)程的一種方法,該計(jì)算機(jī)具有用于列舉被安裝在計(jì)算機(jī)系統(tǒng)上的媒體相關(guān)過(guò)濾器的操作系統(tǒng)服務(wù)程序,該方法的特征在于包括要求操作系統(tǒng)服務(wù)程序列舉被安裝在計(jì)算機(jī)上的媒體相關(guān)過(guò)濾器;選擇所列舉的媒體相關(guān)過(guò)濾器中的一個(gè)或多個(gè)過(guò)濾器;以及,使用所選擇的媒體相關(guān)過(guò)濾器來(lái)處理媒體相關(guān)數(shù)據(jù)。
23.權(quán)利要求22的方法,其特征在于還包括證實(shí)系統(tǒng)過(guò)程有正當(dāng)?shù)氖跈?quán)來(lái)使用所選擇的媒體相關(guān)過(guò)濾器。
24.一種計(jì)算機(jī)可讀介質(zhì),其特征在于包括用于執(zhí)行權(quán)利要求22中的方法的計(jì)算機(jī)可執(zhí)行指令。
25.權(quán)利要求22的方法,其特征在于其中,系統(tǒng)過(guò)程是以下的內(nèi)容之一媒體處理軟件應(yīng)用程序;設(shè)備驅(qū)動(dòng)器;以及,媒體相關(guān)獲取軟件。
26.將媒體相關(guān)過(guò)濾器安裝在與一種操作系統(tǒng)有關(guān)的計(jì)算機(jī)系統(tǒng)上的一種方法,該操作系統(tǒng)具有用于安裝媒體過(guò)濾器的系統(tǒng)級(jí)服務(wù)程序,該方法的特征在于包括請(qǐng)求系統(tǒng)級(jí)服務(wù)程序?qū)⒚襟w相關(guān)過(guò)濾器安裝在系統(tǒng)上;以及,為系統(tǒng)級(jí)服務(wù)程序提供要被安裝的媒體過(guò)濾器以及有關(guān)媒體過(guò)濾器的信息。
27.一種計(jì)算機(jī)可讀介質(zhì),其特征在于包括用于執(zhí)行權(quán)利要求26中的方法的計(jì)算機(jī)可執(zhí)行指令。
28.權(quán)利要求26的方法,其特征在于其中,有關(guān)媒體過(guò)濾器的信息包括以下的一項(xiàng)或多項(xiàng)內(nèi)容對(duì)應(yīng)于媒體過(guò)濾器的一個(gè)或多個(gè)唯一的標(biāo)識(shí)符;對(duì)應(yīng)于媒體過(guò)濾器的一個(gè)或多個(gè)名稱(chēng);媒體過(guò)濾器的一項(xiàng)或多項(xiàng)說(shuō)明;以及,與這些媒體過(guò)濾器中每個(gè)有關(guān)的一個(gè)或多個(gè)數(shù)字簽名。
29.一種管理媒體過(guò)濾器的方法,該方法在計(jì)算機(jī)系統(tǒng)上被加以執(zhí)行,該計(jì)算機(jī)系統(tǒng)所具有的操作系統(tǒng)具備用于安裝和發(fā)現(xiàn)被安裝在計(jì)算機(jī)上的媒體過(guò)濾器的系統(tǒng)級(jí)服務(wù)程序,該方法的特征在于包括系統(tǒng)級(jí)服務(wù)程序接收將一個(gè)或多個(gè)媒體過(guò)濾器安裝在計(jì)算機(jī)上的請(qǐng)求;系統(tǒng)級(jí)服務(wù)程序?qū)⒚襟w過(guò)濾器安裝在計(jì)算機(jī)上;系統(tǒng)級(jí)服務(wù)程序接收請(qǐng)求以發(fā)現(xiàn)被安裝在計(jì)算機(jī)上的媒體過(guò)濾器;以及,系統(tǒng)級(jí)服務(wù)程序發(fā)現(xiàn)被安裝在計(jì)算機(jī)上的媒體過(guò)濾器。
30.在與一個(gè)或多個(gè)系統(tǒng)過(guò)程以及一種操作系統(tǒng)有關(guān)的計(jì)算機(jī)系統(tǒng)中,該操作系統(tǒng)具有用于安裝和列舉媒體過(guò)濾器的系統(tǒng)級(jí)服務(wù)程序,其中,這些過(guò)程包括調(diào)用以暴露編程接口,該接口與用于安裝和列舉媒體過(guò)濾器的系統(tǒng)級(jí)服務(wù)程序有關(guān),該接口的特征在于包括用于將一個(gè)或多個(gè)媒體過(guò)濾器安裝在計(jì)算機(jī)系統(tǒng)上的代碼;以及,用于列舉被安裝在計(jì)算機(jī)系統(tǒng)上的一個(gè)或多個(gè)過(guò)濾器的代碼。
31.權(quán)利要求30的接口,其特征在于其中,根據(jù)與這些過(guò)濾器的每個(gè)有關(guān)的唯一的標(biāo)識(shí)符,將一個(gè)或多個(gè)媒體過(guò)濾器安裝在計(jì)算機(jī)系統(tǒng)上。
32.權(quán)利要求30的接口,其特征在于其中,一個(gè)或多個(gè)媒體過(guò)濾器中的每個(gè)媒體過(guò)濾器對(duì)應(yīng)于一個(gè)過(guò)濾器類(lèi)別,并根據(jù)其對(duì)應(yīng)的類(lèi)別來(lái)安裝一個(gè)或多個(gè)過(guò)濾器。
33.權(quán)利要求32的接口,其特征在于其中,根據(jù)其對(duì)應(yīng)的類(lèi)別來(lái)列舉被安裝在計(jì)算機(jī)系統(tǒng)上的一個(gè)或多個(gè)過(guò)濾器。
34.權(quán)利要求32的接口,其特征在于還包括用于刪除對(duì)應(yīng)于被安裝在計(jì)算機(jī)系統(tǒng)上的一個(gè)或多個(gè)過(guò)濾器的一個(gè)或多個(gè)類(lèi)別。
35.權(quán)利要求34的接口,其特征在于其中,刪除一個(gè)或多個(gè)類(lèi)別會(huì)導(dǎo)致將其對(duì)應(yīng)的過(guò)濾器從計(jì)算機(jī)系統(tǒng)中刪除。
36.權(quán)利要求30的接口,其特征在于還包括用于刪除被安裝在計(jì)算機(jī)系統(tǒng)上的一個(gè)或多個(gè)過(guò)濾器的代碼。
全文摘要
這里所描述的系統(tǒng)和方法用于自動(dòng)安裝和使用媒體處理過(guò)濾器,以擴(kuò)展系統(tǒng)過(guò)程的媒體功能。內(nèi)插附件過(guò)濾器請(qǐng)求將系統(tǒng)服務(wù)程序安裝在系統(tǒng)上。過(guò)濾器管理服務(wù)程序?qū)υ撜?qǐng)求進(jìn)行處理,并安裝以后將由其他系統(tǒng)過(guò)程(例如,設(shè)備驅(qū)動(dòng)器、應(yīng)用程序和獲取軟件)調(diào)用的過(guò)濾器。這些系統(tǒng)過(guò)程使用過(guò)濾器管理服務(wù)程序來(lái)列舉系統(tǒng)上可用的過(guò)濾器,并選擇這些過(guò)濾器中的一個(gè)或多個(gè)過(guò)濾器,以擴(kuò)展其媒體功能。過(guò)濾器是可以由多個(gè)過(guò)程在任何給定的時(shí)間使用的對(duì)象。在將過(guò)濾器安裝在系統(tǒng)上之前,過(guò)濾器管理服務(wù)也可以驗(yàn)證該過(guò)濾器的可信賴(lài)度。此外,可以使用過(guò)濾器管理服務(wù)程序來(lái)提供由一個(gè)被調(diào)用過(guò)程所選擇的過(guò)濾器,并與請(qǐng)求使用該過(guò)濾器的過(guò)程分開(kāi)??梢愿鶕?jù)其有關(guān)的類(lèi)別來(lái)搜索和列舉被安裝的過(guò)濾器。
文檔編號(hào)G06F13/10GK1534461SQ0314347
公開(kāi)日2004年10月6日 申請(qǐng)日期2003年9月29日 優(yōu)先權(quán)日2003年3月31日
發(fā)明者M·劉, I·扈利, A·科茲洛夫, M 劉, 嚷宸 申請(qǐng)人:微軟公司