欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多實(shí)例輸入設(shè)備控制的制作方法

文檔序號:6582089閱讀:240來源:國知局
專利名稱:多實(shí)例輸入設(shè)備控制的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及媒介源輸入設(shè)備如麥克風(fēng)和攝像機(jī),并且尤其是涉及媒介源輸入設(shè)備與應(yīng)用程序的接口。
背景技術(shù)
一般地,當(dāng)一個(gè)應(yīng)用程序連接到一個(gè)媒介源時(shí),所有其它的應(yīng)用程序都被禁止使用該媒介源。對于通用的個(gè)人計(jì)算機(jī),當(dāng)一個(gè)應(yīng)用程序呼叫以便與一個(gè)媒介源通信時(shí),該應(yīng)用程序呼叫其驅(qū)動器文件或動態(tài)鏈接庫(DLL或*.dll)。一般地,DLL提供一個(gè)或多個(gè)特定的函數(shù),以及一個(gè)程序通過創(chuàng)建到該DLL的鏈接訪問該函數(shù)。DLL也可以包含數(shù)據(jù),有些DLL與操作系統(tǒng)(如窗口操作系統(tǒng))設(shè)置在一起并且對于任何操作系統(tǒng)應(yīng)用來說都是可用的。為了某種特定的應(yīng)用可以寫其它的DLL并將其與應(yīng)用程序(例如一個(gè)媒介源控制應(yīng)用程序)一起裝載。當(dāng)媒介源控制應(yīng)用程序呼叫以連接到一個(gè)媒介源時(shí),在該點(diǎn)處,驅(qū)動器檢查以確定沒有其它的應(yīng)用已打開該特定的攝像機(jī)驅(qū)動器文件(*.dll),以及如果沒有其它的應(yīng)用已打開的話,該驅(qū)動器就打開該特定的驅(qū)動器文件。這樣做之后,就會通過該打開的媒介源(如攝像機(jī))驅(qū)動器文件在媒介源(如攝像機(jī))與應(yīng)用程序之間存在一個(gè)單一的線程連接,如

圖1所示。
圖1表示與一個(gè)媒介源連接的應(yīng)用程序,其中媒介源是攝像機(jī)。如圖1中所示的,驅(qū)動器文件14被驅(qū)動器12打開,其中驅(qū)動器12被呼叫應(yīng)用程序10呼叫并且裝載在呼叫應(yīng)用程序的存儲器內(nèi)。由于攝像機(jī)驅(qū)動器文件14已經(jīng)被應(yīng)用程序10打開,試圖呼叫該攝像機(jī)的下一個(gè)應(yīng)用就被禁止這樣做。在多個(gè)應(yīng)用程序之間共享媒介源中有關(guān)沖突的問題就是眾所周知的突發(fā)事件。由于在某一時(shí)侯一般的輸入設(shè)備驅(qū)動器僅允許一個(gè)應(yīng)用使用該輸入設(shè)備數(shù)據(jù),因此總是存在著突發(fā)事件。這是因?yàn)閿z像機(jī)驅(qū)動器文件已經(jīng)被裝載進(jìn)第一應(yīng)用程序的存儲器內(nèi)并且不能被另外一個(gè)呼叫程序使用。因此,潛在地呼叫該攝像機(jī)的每個(gè)應(yīng)用程序必須考慮到已經(jīng)使用該攝像機(jī)的另外一個(gè)應(yīng)用程序的存在。相應(yīng)地,這些應(yīng)用程序被這樣一種需要所阻礙,即要首先檢查以確定是否已連接到該攝像機(jī)的另外一個(gè)第一應(yīng)用程序被執(zhí)行,并且如果是這樣,第二呼叫程序必須具有例程以允許它協(xié)商對該攝像機(jī)的共享。但是這種共享是單一-即時(shí)(single-instant)的,意思是說在攝像機(jī)與第一應(yīng)用程序之間的連接將不得不斷開(即,第一應(yīng)用程序?qū)⒉坏貌魂P(guān)斷或關(guān)掉攝像機(jī)),然后建立攝像機(jī)與第二應(yīng)用程序之間的連接。由這兩個(gè)競爭應(yīng)用程序之間的通信來解決授權(quán)、優(yōu)先權(quán)以及其它的安全方面和相應(yīng)的錯(cuò)誤處理。目前甚至沒有應(yīng)用程序試圖解決這些問題,并且如果在呼叫程序與攝像機(jī)之間的連接不能建立的話,由操作系統(tǒng)來解決不希望的應(yīng)用程序錯(cuò)誤,該操作系統(tǒng)會發(fā)出相當(dāng)不雅和無法翻譯的錯(cuò)誤消息,留給最終用戶去推斷可能沒有建立正確的連接。最好,第二呼叫應(yīng)用程序接收一個(gè)指示目前呼叫的設(shè)備正在使用以及不可用的消息。
應(yīng)用程序在尺寸、靈活性以及可用性上不斷地增加,并且這種趨勢是從大的單片應(yīng)用程序向由很多小程序構(gòu)成的程序轉(zhuǎn)變。這種提供模塊的方法具有很多的優(yōu)點(diǎn),例如便于以后的修改和配置。而且操作系統(tǒng)供應(yīng)商如微軟公司已經(jīng)采用這種模塊化方法,并且提供了很多個(gè)可處理很多實(shí)用型功能(排隊(duì)文件到打印機(jī),安裝和運(yùn)行打印機(jī)驅(qū)動器(如DLL)文件以打印文件)的標(biāo)準(zhǔn)子程序或?qū)ο蟆T擈?qū)動器(如DLL)文件本身是對象或子程序。而且為了使對象獨(dú)立于以不同的高級編程語言寫的更小的子程序,操作系統(tǒng)供應(yīng)商已經(jīng)開發(fā)了用于可執(zhí)行程序的模型,它們在二進(jìn)制的層次上是兼容的。由微軟公司開發(fā)的這種二進(jìn)碼的模型是組件對象模型(COM)。該COM可以使編程員開發(fā)出可由任何COM兼容應(yīng)用訪問的對象。盡管通過將大的單片應(yīng)用程序轉(zhuǎn)變成更小的子程序的集合和對象可以實(shí)現(xiàn)很多的優(yōu)點(diǎn),但是這些優(yōu)點(diǎn)在對這些附加的例程的需要所造成的負(fù)擔(dān)方面要進(jìn)行均衡,允許中間處理在這些子程序和對象之間進(jìn)行通信。
除了在復(fù)雜性與使用性方面的增長外,多單元應(yīng)用程序已經(jīng)從單一主機(jī)區(qū)移植到多主機(jī)不同種類的網(wǎng)絡(luò)環(huán)境。因此,現(xiàn)在不是沒有聽到使一個(gè)單一應(yīng)用程序由多個(gè)不同的例程構(gòu)成,每個(gè)例程可以由不同的高級語言編寫并且駐留在獨(dú)立的計(jì)算機(jī)內(nèi),其中所有這些計(jì)算機(jī)通過一個(gè)網(wǎng)絡(luò)彼此連接到一起。在這種實(shí)現(xiàn)中,對于有效的網(wǎng)內(nèi)與網(wǎng)間以及交互處理通信的需求表現(xiàn)出其自身的生命力,從編程員的寫應(yīng)用程序的主要功能上轉(zhuǎn)換開來。該編程員還不得不處理由在網(wǎng)上傳播應(yīng)用程序所引起的通信問題。再次,操作系統(tǒng)供應(yīng)商已經(jīng)意識到這種挑戰(zhàn)以及潛在的轉(zhuǎn)移,并且以多種方式解決了它。例如微軟通過發(fā)開分布式組件對象模型(DCOM)來擴(kuò)展COM的功能。DCOM是COM的擴(kuò)展以支持在網(wǎng)絡(luò)上分布的對象。除了作為COM的擴(kuò)展外,DCOM提供了處理網(wǎng)絡(luò)通信協(xié)議的細(xì)節(jié)的接口,允許應(yīng)用編程員將精力集中在開發(fā)特定應(yīng)用程序的主要功能上,DCOM被設(shè)計(jì)成為分布組件體系解決企業(yè)要求。例如一種商業(yè)可能想要建立并展開客戶訂單入口應(yīng)用,該應(yīng)用可能涉及幾種不同的功能區(qū)如稅務(wù)計(jì)算、客戶信用驗(yàn)證、庫存管理、擔(dān)保更新以及訂單入口。利用DCOM,該應(yīng)用可以從五個(gè)獨(dú)立的組件建立并且運(yùn)行在通過瀏覽器訪問的網(wǎng)絡(luò)服務(wù)器上。每個(gè)組件可以駐留在訪問不同的數(shù)據(jù)庫的不同計(jì)算機(jī)上。編程員可以集中在應(yīng)用的開發(fā)上,并且由DCOM處理該應(yīng)用程序的獨(dú)立組件的交互處理通信事務(wù)。例如,DCOM將處理組件通信與相應(yīng)排隊(duì)的集成以及服務(wù)器上的組件應(yīng)用與基于HTML的互連網(wǎng)應(yīng)用的集成。
因此,盡管很多的計(jì)算機(jī)系統(tǒng)操作系統(tǒng)供應(yīng)商提供了很多標(biāo)準(zhǔn)的可執(zhí)行程序的標(biāo)準(zhǔn)化模型,但是這種可執(zhí)行的應(yīng)用程序中俑與媒介源輸入設(shè)備按照一對一地進(jìn)行接口。一個(gè)標(biāo)準(zhǔn)化的設(shè)備驅(qū)動器文件,一旦鏈接到一個(gè)應(yīng)用程序,對于另外應(yīng)用程序來說將不再是可用的。因此,存在著允許多個(gè)應(yīng)用程序共享一個(gè)單一的媒介源輸入設(shè)備的需求,這種設(shè)備一般來說是攝像機(jī)或麥克風(fēng)。
發(fā)明概述本發(fā)明組合了可執(zhí)行處理與對多應(yīng)用程序的需要的特征以便共享一個(gè)單一的輸入設(shè)備,例如攝像機(jī)或麥克風(fēng)。象攝像機(jī)或麥克風(fēng)這樣的輸入設(shè)備一個(gè)開放的外部設(shè)備,并且響應(yīng)于來自應(yīng)用程序的呼叫一直保持開放。本發(fā)明提供一個(gè)作為允許多應(yīng)用與單一輸入設(shè)備進(jìn)行通信的處理進(jìn)程而實(shí)現(xiàn)的可執(zhí)行程序,這是通過創(chuàng)建到物理輸入設(shè)備的虛擬接口(一個(gè)實(shí)例)以及將輸入設(shè)備控制可執(zhí)行程序裝載進(jìn)一個(gè)處理進(jìn)程而實(shí)現(xiàn)的。一個(gè)實(shí)例(instance)是實(shí)際的使用以及裝載進(jìn)存儲器的一個(gè)實(shí)體的拷貝的虛擬生成。該可執(zhí)行程序處理進(jìn)程作用是一個(gè)服務(wù)器以允許多應(yīng)用程序與同一輸入設(shè)備接口。這里使用的該可執(zhí)行程序稱作多實(shí)例輸入設(shè)備控制(MIDC),可執(zhí)行程序響應(yīng)每個(gè)應(yīng)用程序請求,就好象該輸入設(shè)備是為該呼叫應(yīng)用程序開放的,因此每個(gè)應(yīng)用程序能與該輸入設(shè)備實(shí)例進(jìn)行通信而不會干擾其它應(yīng)用程序與同一輸入設(shè)備的通信。換句話說,該MIDC通過創(chuàng)建一個(gè)客戶—服務(wù)器體系而虛擬化了一個(gè)輸入設(shè)備,在此每個(gè)呼叫應(yīng)用程序是一個(gè)客戶并且其中該MIDC是服務(wù)器,使該驅(qū)動器文件服務(wù)于每個(gè)呼叫應(yīng)用程序。
該MIDC以及虛擬化輸入設(shè)備的方法可以在運(yùn)行各種操作系統(tǒng)的許多計(jì)算平臺上實(shí)現(xiàn)。象攝像機(jī)或麥克風(fēng)這樣的媒介源輸入設(shè)備一般地與一個(gè)主機(jī)計(jì)算機(jī)進(jìn)行接口。該主機(jī)計(jì)算機(jī)通常是一臺個(gè)人計(jì)算機(jī),如Mac計(jì)算機(jī)。但是,由于技術(shù)的進(jìn)步使得計(jì)算與通信設(shè)備之間的界限變得模糊,因此這里所用的主機(jī)計(jì)算機(jī)是與智能主機(jī)同義的,并且這里所說的智能主機(jī)是指包括所有具有處理器、存儲器、輸入輸出設(shè)備以及存儲裝置的任何主機(jī)。其它智能型主機(jī)的例子(同樣可以與本發(fā)明的實(shí)施例結(jié)合使用)包括手持計(jì)算機(jī)、交互式機(jī)頂盒、瘦(thin)客戶計(jì)算設(shè)備、個(gè)人訪問設(shè)備、個(gè)人數(shù)字助理以及因特網(wǎng)設(shè)備。
在一種實(shí)現(xiàn)中,在運(yùn)行通用的窗口操作系統(tǒng)的PC主機(jī)上,(MIDC)可執(zhí)行程序可以是一個(gè)DCOM對象,DCOM可以用作一個(gè)接口,以使多個(gè)應(yīng)用程序與一個(gè)單一輸入設(shè)備進(jìn)行通信。DCOM接口處理的接口操作包括裝載、執(zhí)行、緩沖、上載以及呼叫可執(zhí)行程序。在基于DCOM的實(shí)現(xiàn)中,MIDC對象本身是一個(gè)DCOM服務(wù)器。該MIDC通過連接到作為一個(gè)可執(zhí)行程序?qū)崿F(xiàn)的DCOM對象內(nèi)的輸入設(shè)備而工作。因此,MIDC變成一個(gè)作為可執(zhí)行程序?qū)崿F(xiàn)的DCOM對象,意思是說MIDC是一個(gè)處理進(jìn)程,類似于任何其它的操作系統(tǒng)(O/S)處理—可由其它的應(yīng)用共享。通過將輸入設(shè)備訪問程序放進(jìn)一個(gè)獨(dú)立的可執(zhí)行處理進(jìn)程,該輸入設(shè)備能夠被多個(gè)應(yīng)用程序共享。對于應(yīng)用程序來說,DCOM接口看起好象只是為呼叫該DCOM對象的應(yīng)用而開放,盡管只有一個(gè)輸入設(shè)備的實(shí)例。
實(shí)施MIDC以便對于每個(gè)實(shí)際的硬件輸入設(shè)備來說,DCOM服務(wù)器創(chuàng)建單一輸入設(shè)備實(shí)例并且連接到該硬件設(shè)備。當(dāng)一個(gè)應(yīng)用程序與該輸入設(shè)備控制(是一個(gè)可執(zhí)行的DCOM服務(wù)器)連接時(shí),該DCOM服務(wù)器創(chuàng)建一個(gè)MIDC實(shí)例(以及一個(gè)接口),通過該實(shí)例應(yīng)用程序與該單一輸入設(shè)備實(shí)例進(jìn)行通信。由單一輸入設(shè)備實(shí)例為每個(gè)輸入設(shè)備控制的實(shí)例提供用于輸出的數(shù)據(jù),由此允許多個(gè)應(yīng)用與一個(gè)單一輸入設(shè)備同時(shí)進(jìn)行通信。全局設(shè)置是(MIDC)特定實(shí)例。另外,保護(hù)該輸入設(shè)備實(shí)例以便輸入設(shè)備控制程序的多個(gè)實(shí)例不能執(zhí)行會影響另一個(gè)實(shí)例的處理的任務(wù)。利用這種方法,就可以寫應(yīng)用程序而不需要考慮可能已經(jīng)使用同一輸入設(shè)備的另一個(gè)應(yīng)用的存在。
本發(fā)明的其它方面是針對客戶端的機(jī)制,使應(yīng)用程序與可執(zhí)行的輸入設(shè)備服務(wù)器進(jìn)行通信。如上面所描述的,可執(zhí)行的MIDC是在客戶—服務(wù)器體系下實(shí)現(xiàn)的,在此每個(gè)應(yīng)用程序是一個(gè)客戶。很自然,客戶必須能與服務(wù)器進(jìn)行通信。本發(fā)明的方法提供幾種機(jī)制,以使一個(gè)應(yīng)用程序與MIDC服務(wù)器進(jìn)行通信。在PC/窗口環(huán)境中,通過ActiveX控件呼叫的輸入設(shè)備端口(portal)傳送第一客戶端機(jī)制。第二客戶端機(jī)制也是在PC/窗口環(huán)境下,是通過DirectShowTM視頻捕獲源過濾器傳送的。
在端口方案下的客戶端機(jī)制包括與MIDC服務(wù)器通信以及將用戶接口元素提供給一個(gè)應(yīng)用。利用這種端口方案,虛擬化一個(gè)輸入設(shè)備的所有功能是由MIDC服務(wù)器執(zhí)行的,并且因此與MIDC服務(wù)器通信的應(yīng)用程序可要求用戶接口編程。為了完成這些,在視頻端口方案下,提供一個(gè)模板以允許各種應(yīng)用程序提供商產(chǎn)生它們自己的客戶輸入設(shè)備端口。
在第二種方案(即DirectShowTM方案)下客戶端機(jī)制采用標(biāo)準(zhǔn)化的DirectShow模塊化組件呼叫過濾器。該第二客戶端機(jī)制利用一個(gè)虛擬源過濾器替換標(biāo)準(zhǔn)源(媒介輸入),其直接與MIDC服務(wù)器進(jìn)行通信。該虛擬源過濾器是一個(gè)到MIDC服務(wù)器的客戶。利用這種機(jī)制,DirectShow應(yīng)用不能區(qū)分“真實(shí)”的和“虛擬的”源過濾器。這種第二客戶端機(jī)制的優(yōu)點(diǎn)是寫到DirectShow環(huán)境內(nèi)的函數(shù)的任何應(yīng)用程序?qū)⒑苋菀椎毓蚕硪粋€(gè)輸入設(shè)備而不需要在與MIDC服務(wù)器進(jìn)行通信時(shí)進(jìn)行任何附加的用戶接口編程。
為了進(jìn)一步理解本發(fā)明的優(yōu)點(diǎn)和本質(zhì),下面結(jié)合附圖參照下面的描述進(jìn)行說明。
附圖的簡要說明圖1是表示現(xiàn)有技術(shù)的單一應(yīng)用程序與單一攝像機(jī)進(jìn)行通信的方法的方框圖;圖2是描述本發(fā)明的多實(shí)例輸入設(shè)備控制程序的一個(gè)實(shí)施例的方框圖;圖3是表示在與單一輸入設(shè)備連接的一個(gè)應(yīng)用中所涉及的步驟的流程圖。
具體實(shí)施例方式
圖2表示在PC/Wndows環(huán)境中描述本發(fā)明的多實(shí)例的輸入設(shè)備控制程序(MIDC)的一個(gè)實(shí)施例的方框圖。在該實(shí)施例中,輸入設(shè)備是一個(gè)攝像機(jī),可執(zhí)行程序是一個(gè)DCOM可執(zhí)行程序,該實(shí)施例描述了多應(yīng)用程序是如何共享單一攝像機(jī)的。一旦第一應(yīng)用程序100響應(yīng)以連接到該攝像機(jī)108,該呼叫被傳送到DCOM應(yīng)用程序接口(API)102。對于DCOM的更詳細(xì)的描述可以參照Microsoft網(wǎng)站的相應(yīng)的Microsoft文檔。該DCOM API 102處理該DCOM可執(zhí)行程序的裝載,并建立從應(yīng)用程序到DCOM可執(zhí)行程序200的連接。DCOM服務(wù)器200創(chuàng)建一個(gè)單一的攝像機(jī)實(shí)例106以及第一MIDC實(shí)例104。下一步該DCOM服務(wù)器200將該單一攝像機(jī)實(shí)例106連接到攝像機(jī)驅(qū)動器107,以及利用該單一攝像機(jī)實(shí)例106攝像機(jī)驅(qū)動器107連接到攝像機(jī)設(shè)備108與第一MIDC實(shí)例104。攝像機(jī)實(shí)例106是一個(gè)到物理攝像機(jī)設(shè)備108的虛擬接口。一個(gè)實(shí)例是實(shí)際使用的并且由裝載進(jìn)存儲器的實(shí)體的拷貝虛擬生成的。在該實(shí)施例中,所有的實(shí)例存儲器位于可執(zhí)行服務(wù)器內(nèi)。最后建立連接300,以允許客戶應(yīng)用程序100通過新例示(instantiate)的DCOM接口(單一攝像機(jī)實(shí)例)106與該攝像機(jī)設(shè)備108接口。
一旦第二應(yīng)用程序110呼叫以連接到攝像機(jī)108,DCOM服務(wù)器200生成第二MIDC實(shí)例114,并將其連接到單一攝像機(jī)實(shí)例106,如此通過建立的第二連接310,就可允許第二客戶應(yīng)用110通過該單一攝像機(jī)實(shí)例106與攝像機(jī)設(shè)備108交互。隨后的應(yīng)用程序120等也通過DCOM例示的單一攝像機(jī)實(shí)例接口106與攝像機(jī)設(shè)備108通過隨后建立的連接320等交互。
圖3是描述圖2的處理過程的流程圖。一旦客戶應(yīng)用程序呼叫以連接到攝像機(jī)設(shè)備(步驟103),該應(yīng)用程序呼叫被發(fā)送到DCOM API(步驟203)。下一步,DCOM API確定是否裝載DCOM實(shí)現(xiàn)的可執(zhí)行MIDC。一般地,第一客戶應(yīng)用程序?qū)е卵b載可執(zhí)行的MIDC。如果沒有裝載可執(zhí)行的DCOM服務(wù)器,由該DCOM API獲得該獲呼叫并使DCOM服務(wù)器裝載該DCOM實(shí)現(xiàn)的可執(zhí)行MIDC的服務(wù)器(步驟403)。下一步,MIDC服務(wù)器生成一個(gè)輸入設(shè)備控制實(shí)例(步驟503)。如果已經(jīng)裝載了MIDC可執(zhí)行的服務(wù)器,步驟403就不需要了,那么在步驟303之后的下一步是503。MIDC服務(wù)器隨后生成一個(gè)單一的攝像機(jī)實(shí)例并將其連接到攝像機(jī)設(shè)備,然后將該輸入設(shè)備控制實(shí)例連接到單一攝像機(jī)實(shí)例(步驟603)。最后,MIDC服務(wù)器生成一個(gè)接口,通過該接口第一客戶應(yīng)用程序與單一攝像機(jī)實(shí)例進(jìn)行通信(步驟703)。
在圖2中描述的攝像機(jī)實(shí)例106是一個(gè)與攝像機(jī)設(shè)備的接口,它維護(hù)輸入設(shè)備控制的實(shí)例的狀態(tài),該輸入設(shè)備實(shí)例106是一個(gè)存儲器塊,維護(hù)著已經(jīng)與該攝像機(jī)設(shè)備建立的連接數(shù)量的計(jì)數(shù)以及每個(gè)連接的特定狀態(tài)。該攝像機(jī)實(shí)例106還融合了優(yōu)化每個(gè)輸入設(shè)備控制實(shí)例連接的請求所必需的邏輯以及多路復(fù)用和解決沖突請求。由于MIDC服務(wù)器是作為一個(gè)獨(dú)立的進(jìn)程存在的,視頻(和音頻)數(shù)據(jù)必須為請求訪問該視頻(和音頻)數(shù)據(jù)的每個(gè)客戶復(fù)制。為了減少復(fù)制,MIDC服務(wù)器設(shè)計(jì)成記錄視頻(和音頻)、檢測運(yùn)動、保存畫面以及媒介源捕獲設(shè)備的其它典型功能。因此MIDC服務(wù)器將數(shù)據(jù)復(fù)制僅限于需要求媒介源數(shù)據(jù)(如視頻和音頻)進(jìn)行直接訪問的應(yīng)用。
例如,第一輸入設(shè)備實(shí)例可能正在請求640×480像素的分辨率的視頻流,而同時(shí)第一和第三實(shí)例可能正在請求320×480和160×120像素的分辨率的視頻流。在這種情況下,攝像機(jī)實(shí)例106將隨后確定以最大的分辨率640×480捕獲視頻以及然后調(diào)整它或剪輯它成為由第二和第三實(shí)例正請求的較低的分辨率。按照同一邏輯,如果隨后第一視頻實(shí)例與該攝像機(jī)斷開,攝像機(jī)實(shí)例106將隨后解決第二和第三實(shí)例請求320×480和160×120像素的分辨率的請求,即通過以最高分辨率320×480像素捕獲視頻以滿足第二實(shí)例的請求,以及隨后向下調(diào)整或剪輯320×480像素視頻流為160×120像素以滿足第三實(shí)例的請求。
在涉及三個(gè)輸入設(shè)備控制實(shí)例的另一個(gè)示例中,第一輸入設(shè)備控制實(shí)例 可能正在發(fā)送一個(gè)運(yùn)動檢測命令給虛擬攝像機(jī)設(shè)備,同時(shí)其它兩個(gè)實(shí)例僅請求視頻流。那么攝像機(jī)實(shí)例106將以最高需求的分辨率捕獲視頻并且通過一個(gè)用于第一輸入設(shè)備控制實(shí)例的運(yùn)動檢測計(jì)算傳送該視頻流。
而在另一個(gè)涉及三個(gè)輸入設(shè)備控制實(shí)例的示例中,第二輸入設(shè)備控制實(shí)例可能正請求一個(gè)視頻圖像的文本覆蓋,同時(shí)其它兩個(gè)實(shí)例僅請求視頻流。那么,攝像機(jī)實(shí)例106將以最高需求的分辨率捕獲視頻并且僅增加文本覆蓋到流向第二輸入設(shè)備請求的流。
盡管上面描述的這些實(shí)施例是在與個(gè)人計(jì)算機(jī)主機(jī)接口的攝像機(jī)環(huán)境下進(jìn)行的,但是本發(fā)明的范圍并不僅限于攝像機(jī)或者特定類型的計(jì)算機(jī)。如上面所描述的,本發(fā)明的這些實(shí)施例是針對由幾個(gè)應(yīng)用程序同時(shí)享一個(gè)輸入設(shè)備,并且是通過虛擬化一個(gè)設(shè)備驅(qū)動器文件且驅(qū)動器文件依次是通過將該輸入設(shè)備控制程序?qū)嵤橐粋€(gè)可執(zhí)行服務(wù)器來達(dá)到的。盡管上面描述的輸入設(shè)備是一個(gè)攝像機(jī),可配置成被同時(shí)共享的另一個(gè)輸入設(shè)備是麥克風(fēng)。因此,輸入設(shè)備實(shí)例(圖2中的106)融合了優(yōu)化每個(gè)輸入設(shè)備控制實(shí)例的請求所必需的邏輯以及多路復(fù)用和解決沖突請求。將該視頻源的共享性能擴(kuò)展為還包含一個(gè)音頻輸入源不僅僅是很自然的事,而且也是必須的,因?yàn)橐曨l和音頻通常都是捆綁在一起作為自然補(bǔ)充的媒介源。
例如,參照圖2,希望在設(shè)備108記錄視頻的同時(shí)麥克風(fēng)(未示出)還記錄聲音。那么,例如第一輸入設(shè)備實(shí)例可以以44.1kHz請求具有一個(gè)位深(depth)的16位的音頻,同時(shí)第二實(shí)例可以11.025kHz請求具有8位深的音頻流。在這種情況下,輸入設(shè)備實(shí)例將隨后確定以最高的采樣率和位深捕獲音頻,然后調(diào)整或?qū)⑵鋲嚎s到第二實(shí)例所請求的較低的位深或采樣率。
MIDC和虛擬化輸入設(shè)備的方法可以在很多運(yùn)行各種操作系統(tǒng)的計(jì)算平臺上實(shí)現(xiàn),象攝像機(jī)或麥克風(fēng)這樣的媒介源輸入設(shè)備通常與一個(gè)主機(jī)計(jì)算機(jī)接口,并且該主機(jī)計(jì)算機(jī)通常是一個(gè)人計(jì)算機(jī),如通常的Mac計(jì)算機(jī),但是由于技術(shù)上的進(jìn)步使得計(jì)算設(shè)備與通信設(shè)備之間的邊界越來越模糊,因此這里所用的主機(jī)計(jì)算機(jī)與智能主機(jī)是同義的,并且這里所用的智能主機(jī)包括所有具有處理器、存儲器、輸入輸出裝置以及存儲裝置的主機(jī)的示例。其它示例的主機(jī)(同樣可以與本發(fā)明的實(shí)施例結(jié)合使用)包括手持計(jì)算機(jī)、交互式機(jī)頂盒、瘦客戶計(jì)算設(shè)備、個(gè)人訪問設(shè)備、個(gè)人數(shù)字助理以及因特網(wǎng)設(shè)備。
本發(fā)明的其它方面是針對該客戶端機(jī)制,它能使應(yīng)用程序與可執(zhí)行的設(shè)備服務(wù)器進(jìn)行通信。如上所描述的,可執(zhí)行的MIDC是客戶—服務(wù)器體系下實(shí)現(xiàn)的,在此每個(gè)應(yīng)用程序是一個(gè)客戶,因此一個(gè)客戶能與該服務(wù)器通信。本發(fā)明的方法提供了幾種機(jī)制,使應(yīng)用程序與MIDC服務(wù)器通信。在PC/Windows環(huán)境下,第一客戶端機(jī)制是通過稱作ActiveX控件的輸入設(shè)備端口傳送的,在PC/Windows環(huán)境下的第二客戶端機(jī)制是通過一個(gè)DirectShow視頻捕獲源過濾器傳送的。
在端口方案下的客戶端機(jī)制包括與MIDC服務(wù)器通信以及將用戶接口元素提供給一個(gè)應(yīng)用。利用端口方案,虛擬化輸入設(shè)備的所有功能是通過MIDC服務(wù)器執(zhí)行的,因此與MIDC服務(wù)器通信的應(yīng)用程序?qū)⒁笥脩艚涌诰幊?。為了完成它,在視頻端口方案下,提供一個(gè)模板以允許各種應(yīng)用程序提供商產(chǎn)生它們自己的客戶輸入設(shè)備端口。
在第二種方案(即DirectShow方案)下客戶端機(jī)制采用稱作標(biāo)準(zhǔn)化DirectShow模塊化組件的過濾器。由MicrosoftTM提供的DirectShowTM服務(wù)為多媒介流提供回放服務(wù),包括設(shè)備的多媒介流的捕獲。DirectShowTM服務(wù)的中心是稱為可插入組件的過濾器的模塊化系統(tǒng)。這些模塊化組件可以按照源、變換或呈送(renderer)進(jìn)行分類,過濾器對數(shù)據(jù)流的操作是通過讀、拷貝、修改或?qū)憯?shù)據(jù)到一個(gè)文件或?qū)⑽募仕偷捷敵鲈O(shè)備實(shí)現(xiàn)的。這些過濾器具有輸入輸出裝置并且按照稱稱作過濾器圖的配置彼此連接。應(yīng)用程序使用一個(gè)稱作過濾器圖管理器的對象來組裝該過濾器圖并通過它移動數(shù)據(jù)。過濾器圖管理器處理從輸入設(shè)備到回放設(shè)備的數(shù)據(jù)流。DirectShowTM服務(wù)與MicrosoftTMDirectXTM媒介軟件開發(fā)工具的進(jìn)一步描述可以通過參照本技術(shù)領(lǐng)域人員所知的相應(yīng)文件而獲得。
第二種客戶端機(jī)制用虛擬源過濾器替換了標(biāo)準(zhǔn)源(媒介輸入)過濾器,它與MIDC服務(wù)器直接進(jìn)行通信,虛擬源過濾器是到MIDC服務(wù)器的客戶。利用這種機(jī)制,DirectShow應(yīng)用不能區(qū)分“真實(shí)”與“虛擬”源過濾器。該第二種客戶端機(jī)制的優(yōu)點(diǎn)是寫到DirectShow環(huán)境中的函數(shù)的所有應(yīng)用程序都能很輕易地共享輸入設(shè)備而不必在與MIDC服務(wù)器通信前進(jìn)行任何的附加的用戶接口編程。
本技術(shù)領(lǐng)域內(nèi)人均知,本發(fā)明可以其它特定形式實(shí)現(xiàn)而不會脫離本發(fā)明的本質(zhì)特征。例如,MIDC可以作為任何其它的可執(zhí)行處理進(jìn)程實(shí)現(xiàn)而不只是基于DCOM的處理,以及所有其它接口協(xié)議而不是DCOM接口能用于允許多應(yīng)用程序與該處理通信。這些實(shí)施例希望都能涵蓋在本發(fā)明的范圍內(nèi),并由下面的權(quán)利要求給出。
權(quán)利要求
1.一種允許多客戶應(yīng)用程序同時(shí)與單一輸入設(shè)備通信的輸入設(shè)備控制程序,其中所述輸入設(shè)備控制程序是作為一個(gè)處理進(jìn)程裝載的,以及其中所有隨后的應(yīng)用程序呼叫所述處理進(jìn)程以建立與所述單一輸入設(shè)備的通信。
2.如權(quán)利要求1所述的輸入設(shè)備控制程序,其中所述的輸入設(shè)備包括數(shù)字因特網(wǎng)攝像機(jī)。
3.如權(quán)利要求1所述的輸入設(shè)備控制程序,其中所述的輸入設(shè)備包括一個(gè)麥克風(fēng)。
4.如權(quán)利要求1所述的輸入設(shè)備控制程序,其中所述的輸入設(shè)備控制程序包括下列進(jìn)程a)視頻控制方法包括i)初始化一個(gè)視頻控制;ii)攝取數(shù)字靜態(tài)圖像;iii)記錄數(shù)字視頻圖像;iv)獲取視頻驅(qū)動器信息;v)設(shè)置攝像機(jī)屬性;以及vi)獲取攝像機(jī)屬性;b)攝像機(jī)事件通知包括i)運(yùn)動檢測通知;ii)音頻視頻(AVI)錯(cuò)誤通知;iii)攝像機(jī)分開通知;以及iv)攝像機(jī)重新接上通知。
5.如權(quán)利要求1所述的輸入設(shè)備控制程序,其中所述的處理進(jìn)程處理所有的網(wǎng)絡(luò)協(xié)議的細(xì)節(jié),包括裝載所述的輸入設(shè)備控制程序;利用相關(guān)的輸入/輸出數(shù)據(jù)呼叫所述的輸入設(shè)備控制程序;從所述的輸入設(shè)備控制程序或向該設(shè)備控制程序緩沖輸入與輸出;執(zhí)行所述的輸入設(shè)備控制程序;以及上載所述的輸入設(shè)備控制程序。
6.一種允許多客戶應(yīng)用程序同時(shí)與一個(gè)輸入設(shè)備通信的輸入設(shè)備控制程序,其中所述的輸入設(shè)備控制程序響應(yīng)一個(gè)第一應(yīng)用程序請求建立到所述輸入設(shè)備的第一連接i)傳送所述的第一應(yīng)用程序呼叫到一個(gè)處理進(jìn)程的應(yīng)用程序接口(API);ii)使所述的處理進(jìn)程的網(wǎng)絡(luò)協(xié)議裝載所述的可執(zhí)行的輸入設(shè)備控制程序到一個(gè)處理服務(wù)器;iii)使所述的處理服務(wù)器生成一個(gè)單一輸入設(shè)備實(shí)例,并將所述的單一輸入設(shè)備實(shí)例連接到所述輸入設(shè)備;iv)使所述的處理服務(wù)器生成一第一輸入設(shè)備控制實(shí)例并將所述的第一輸入設(shè)備控制實(shí)例連接到所述的單一輸入設(shè)備實(shí)例;v)使所述的處理服務(wù)器生成一個(gè)接口,通過該接口所述的客戶應(yīng)用程序與所述的單一輸入設(shè)備實(shí)例進(jìn)行通信;以及vi)響應(yīng)來自請求到所述的單一輸入設(shè)備的第二連接的第二應(yīng)用程序的呼叫生成一個(gè)第二輸入設(shè)備控制實(shí)例,并將所述的第二輸入設(shè)備控制實(shí)例連接到所述的單一輸入設(shè)備實(shí)例,以允許所述的第二應(yīng)用程序與所述的同一輸入設(shè)備實(shí)例進(jìn)行通信。
7.如權(quán)利要求6所述的輸入設(shè)備程序,其中所述的輸入設(shè)備控制程序是一個(gè)分布式組件對象模型(DCOM)的可執(zhí)行程序,它包括下列例程a)視頻控制方法包括i)初始化一個(gè)視頻控制;ii)攝取數(shù)字靜態(tài)圖像;iii)記錄數(shù)字視頻圖像;iv)獲取視頻驅(qū)動器信息;v)設(shè)置攝像機(jī)屬性;以及vi)獲取攝像機(jī)屬性;b)攝像機(jī)事件通知包括i)運(yùn)動檢測通知;ii)音頻視頻(AVI)錯(cuò)誤通知;iii)攝像機(jī)分開通知;以及iv)攝像機(jī)重新接上通知。
8.如權(quán)利要求6所述的輸入設(shè)備控制程序,其中所述的處理進(jìn)程是一個(gè)分布式組件對象模型(DCOM)可執(zhí)行程序。
9.一種允許多客戶應(yīng)用程序同時(shí)與一個(gè)輸入設(shè)備通信的分布式組件對象模型(DCOM)可執(zhí)行輸入設(shè)備控制程序,其中所述的程序響應(yīng)一個(gè)第一應(yīng)用程序請求建立到所述輸入設(shè)備的第一連接i)傳送所述的第一應(yīng)用程序呼叫到一個(gè)DCOM應(yīng)用程序接口(API);ii)使所述的DCOM的網(wǎng)絡(luò)協(xié)議裝載所述的可執(zhí)行的輸入設(shè)備控制程序到一個(gè)DCOM服務(wù)器;iii)使所述的DCOM服務(wù)器生成一個(gè)單一輸入設(shè)備實(shí)例,并將所述的單一輸入設(shè)備實(shí)例連接到所述輸入設(shè)備;iv)使所述的DCOM服務(wù)器生成一第一輸入設(shè)備控制實(shí)例并將所述的第一輸入設(shè)備控制實(shí)例連接到所述的單一輸入設(shè)備實(shí)例;v)使所述的DCOM服務(wù)器生成一個(gè)接口,通過該接口所述的客戶應(yīng)用程序與所述的單一輸入設(shè)備實(shí)例進(jìn)行通信;以及vi)響應(yīng)來自請求到所述的單一輸入設(shè)備的第二連接的第二應(yīng)用程序的呼叫生成一個(gè)第二輸入設(shè)備控制實(shí)例,并將所述的輸入設(shè)備實(shí)例連接到所述的單一輸入設(shè)備實(shí)例,以允許所述的第二應(yīng)用程序與所述的同一輸入設(shè)備實(shí)例進(jìn)行通信。
10.一種具有嵌入其中的計(jì)算機(jī)可讀代碼的計(jì)算可用媒介,該代碼可使一個(gè)輸入設(shè)備可由運(yùn)行在一個(gè)主機(jī)上且呼叫所述輸入設(shè)備的多個(gè)應(yīng)用程序共享,所述的計(jì)算機(jī)可讀代碼虛擬化一個(gè)輸入設(shè)備驅(qū)動器文件;其中所述的計(jì)算機(jī)可讀代碼可在一個(gè)可執(zhí)行的客戶—服務(wù)器體系下實(shí)現(xiàn),其中每個(gè)所述的應(yīng)用程序是一個(gè)客戶,以及其中所述的計(jì)算機(jī)可讀代碼是一個(gè)服務(wù)器。
11.如權(quán)利要求10所述的計(jì)算機(jī)可用媒介,其中所述的輸入設(shè)備包括與所述主機(jī)接口的數(shù)字?jǐn)z像機(jī)。
12.如權(quán)利要求10所述的計(jì)算機(jī)可用媒介,其中所述的輸入設(shè)備包括與所述的主機(jī)接口的麥克風(fēng)。
13.如權(quán)利要求10所述的計(jì)算機(jī)可用媒介,其中所述的主機(jī)是從下列中選擇個(gè)人計(jì)算機(jī)、手持計(jì)算機(jī)、交互式機(jī)頂盒、瘦客戶計(jì)算設(shè)備、個(gè)人訪問設(shè)備、個(gè)人數(shù)字助理、因特網(wǎng)設(shè)備、因特網(wǎng)連接的數(shù)字圖像幀及其組合等。
14.如權(quán)利要求10所述的計(jì)算機(jī)可用媒介,其中通過作為輸入設(shè)備端口實(shí)現(xiàn)的客戶端機(jī)制所述的應(yīng)用程序與所述的客戶—服務(wù)器體系通信。
15.如權(quán)利要求14所述的計(jì)算機(jī)用戶媒介,其中所述的輸入設(shè)備端口是一個(gè)ActiveX控件。
16.如權(quán)利要求10所述的計(jì)算機(jī)用戶媒介,其中通過作為虛擬源過濾器實(shí)現(xiàn)的客戶端機(jī)制所述的應(yīng)用程序與所述的客戶—服務(wù)器體系通信。
17.一種允許多客戶應(yīng)用程序與單一輸入設(shè)備進(jìn)行通信的方法,包括i)傳送所述的第一應(yīng)用程序呼叫到一個(gè)處理進(jìn)程的應(yīng)用程序接口(API);ii)使所述的處理進(jìn)程的網(wǎng)絡(luò)協(xié)議裝載所述的可執(zhí)行的輸入設(shè)備控制程序到一個(gè)處理服務(wù)器;iii)使所述的處理服務(wù)器生成一個(gè)單一輸入設(shè)備實(shí)例,并將所述的單一輸入設(shè)備實(shí)例連接到所述單一輸入設(shè)備;iv)使所述的處理服務(wù)器生成一第一輸入設(shè)備控制實(shí)例并將所述的第一輸入設(shè)備控制實(shí)例連接到所述的單一輸入設(shè)備實(shí)例;v)使所述的處理服務(wù)器生成一個(gè)接口,通過該接口所述的客戶應(yīng)用程序與所述的單一輸入設(shè)備實(shí)例進(jìn)行通信;以及vi)響應(yīng)來自請求到所述的單一輸入設(shè)備的第二連接的第二應(yīng)用程序的呼叫生成一個(gè)第二輸入設(shè)備控制實(shí)例,并將所述的第二輸入設(shè)備控制實(shí)例連接到所述的單一輸入設(shè)備實(shí)例以生成一個(gè)接口,通過該接口所述的第二客戶應(yīng)用與所述的同一輸入設(shè)備實(shí)例進(jìn)行通信。
18.如權(quán)利要求17所述方法,其中所述的可執(zhí)行輸入設(shè)備控制程序是一個(gè)分布式組件對象模型(DCOM)可執(zhí)行程序。
19.如權(quán)利要求17所述的方法,其中所述的處理進(jìn)程是一個(gè)DCOM處理。
全文摘要
本發(fā)明組合了可執(zhí)行進(jìn)程與多應(yīng)用程序共享一個(gè)單一的輸入設(shè)備的需要,提供一個(gè)作為處理進(jìn)程實(shí)現(xiàn)的可執(zhí)行程序,允許多個(gè)應(yīng)用與一個(gè)單一輸入設(shè)備通信,這是通過裝載該輸入設(shè)備控制可執(zhí)行程序作為一個(gè)處理進(jìn)程實(shí)現(xiàn)的。該可執(zhí)行程序是一個(gè)服務(wù)器允許多個(gè)應(yīng)用程序與同一輸入設(shè)備接口。該多實(shí)例輸入設(shè)備控制(MIDC)可執(zhí)行程序響應(yīng)每個(gè)應(yīng)用程序請求,如同該輸入設(shè)備是對該呼叫應(yīng)用程序開放一樣。每個(gè)應(yīng)用程序因此通過能與輸入設(shè)備實(shí)例通信而不會干擾與該輸入設(shè)備正在通信的其它應(yīng)用程序的操作,該輸入設(shè)備實(shí)例跟蹤與其所有連接并多路復(fù)用和解決沖突請求。
文檔編號G06F9/44GK1405680SQ0212332
公開日2003年3月26日 申請日期2002年6月17日 優(yōu)先權(quán)日2001年6月15日
發(fā)明者阿龍·斯坦德韋特, 蒂姆·迪克曼 申請人:羅技?xì)W洲公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
鹤庆县| 全椒县| 永登县| 太保市| 海伦市| 横峰县| 忻城县| 太和县| 阿合奇县| 汤原县| 临洮县| 修武县| 鄂温| 杭锦旗| 博罗县| 涿州市| 永城市| 田阳县| 大关县| 垫江县| 新田县| 渑池县| 二连浩特市| 绥宁县| 博客| 咸宁市| 田东县| 潼南县| 昌都县| 温州市| 河池市| 大姚县| 天祝| 库尔勒市| 徐水县| 武城县| 永仁县| 新源县| 章丘市| 望江县| 沽源县|