專利名稱:計算機(jī)系統(tǒng)、多個應(yīng)用程序同時使用一個攝像頭的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機(jī)系統(tǒng),尤其涉及一種支持多個應(yīng)用程序同時使用一個攝像 頭的計算機(jī)系統(tǒng)及方法。
背景技術(shù):
攝像頭被廣泛應(yīng)用于多個客戶端應(yīng)用程序,例如網(wǎng)絡(luò)攝像頭錄制程序,視頻會議 工具和即時通訊(Instant Messenger, IM)工具等。如圖1所示的現(xiàn)有技術(shù),系統(tǒng)100包括攝像頭應(yīng)用程序模塊102,Windows驅(qū)動模 塊(Windows driver model, WDM)采集過濾器104和物理攝像頭110。攝像頭應(yīng)用程序模 土夬 102 包括多個攝像頭應(yīng)用程序,例如, MSN MESSENGER 108A, YAHOOMESSENGER 108B, SKYPE 108C和“360度TOB FACE”應(yīng)用程序(以下簡稱FACE程序)114。其中,攝像頭應(yīng)用程序模 塊102中的FACE程序114是由凹凸科技有限公司開發(fā)的智能登錄和加鎖/解鎖應(yīng)用程序。WDM采集過濾器104是一種標(biāo)準(zhǔn)的MICROSOFT DIRECTX組件,可作用于攝像頭110 的設(shè)備驅(qū)動程序(未示出)。攝像頭110的設(shè)備驅(qū)動程序可由驅(qū)動文件組成,例如后綴為 “.dll”的文件。如果WDM采集過濾器104將攝像頭110的設(shè)備驅(qū)動程序鏈接到一個應(yīng)用 程序,該設(shè)備驅(qū)動程序便無法再和另外的應(yīng)用程序通信。也就是說,在任意給定的時間,WDM 采集過濾器104只支持一個應(yīng)用程序使用攝像頭110采集到的數(shù)據(jù)。例如,當(dāng)FACE程序114請求訪問攝像頭110時,WDM采集過濾器104會被訪問,且 攝像頭110的設(shè)備驅(qū)動程序被裝載。配置完畢,攝像頭Iio便開始正常工作,F(xiàn)ACE程序114 開始進(jìn)行面部識別的正常操作。此時,若另一個程序(例如,MSNMESSENGER 108A)嘗試使 用攝像頭110,而FACE程序114也正在使用該攝像頭110時,MSN MESSENGER 108A便無法 訪問攝像頭110的設(shè)備驅(qū)動程序。因此,當(dāng)多個應(yīng)用程序同時使用攝像頭110時會發(fā)生沖 突,后訪問的應(yīng)用程序,如MSNMESSENGER 108A,無法使用攝像頭110。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提供一種計算機(jī)系統(tǒng)及方法,以解決多個應(yīng)用程序 之間的沖突,使多個應(yīng)用程序同時共享單個攝像頭。為解決上述技術(shù)問題,本發(fā)明提供了一種計算機(jī)系統(tǒng),其包括攝像頭,用于采集 多媒體數(shù)據(jù);以及與該攝像頭耦合的存儲器,用于存儲計算機(jī)可執(zhí)行組件。該計算機(jī)可執(zhí) 行組件包括第一應(yīng)用程序,用于請求對攝像頭的第一訪問以獲取第一數(shù)據(jù)集;第二應(yīng)用 程序,用于請求對攝像頭的第二訪問以獲取第二數(shù)據(jù)集,其中第一訪問和第二訪問在時間 上重疊;以及耦合于第一應(yīng)用程序和第二應(yīng)用程序與攝像頭之間的虛擬攝像頭組件,用于 緩存該多媒體數(shù)據(jù),并分別根據(jù)第一應(yīng)用程序和第二應(yīng)用程序各自的需求處理該多媒體數(shù) 據(jù)。本發(fā)明所述的計算機(jī)系統(tǒng),所述虛擬攝像頭組件包括耦合于采集過濾器的視頻 采集源過濾器,其中,所述采集過濾器耦合于所述攝像頭,所述視頻采集源過濾器用于執(zhí)行所述處理的操作,并傳送處理后的多媒體數(shù)據(jù)給所述第一應(yīng)用程序和所述第二應(yīng)用程序。本發(fā)明所述的計算機(jī)系統(tǒng),所述虛擬攝像頭組件還包括耦合于所述視頻采集源 過濾器的虛擬攝像頭服務(wù)中心,用于控制所述視頻采集源過濾器,并用于經(jīng)由所述采集過 濾器將所述多媒體數(shù)據(jù)從所述攝像頭傳送到所述視頻采集源過濾器。本發(fā)明所述的計算機(jī)系統(tǒng),所述虛擬攝像頭組件還包括虛擬攝像頭設(shè)置工具,用 于給所述虛擬攝像頭服務(wù)中心配置工作參數(shù)。本發(fā)明所述的計算機(jī)系統(tǒng),所述虛擬攝像頭組件還包括耦合于所述視頻采集源 過濾器的虛擬攝像頭服務(wù)中心,用于識別與所述第一程序和所述第二程序相關(guān)的需求,并 發(fā)送表示最有限制性的需求的命令給所述攝像頭,所述攝像頭根據(jù)所述命令采集多媒體數(shù) 據(jù)。本發(fā)明所述的計算機(jī)系統(tǒng),所述采集過濾器包括WINDOWS驅(qū)動模塊采集過濾器。
本發(fā)明所述的計算機(jī)系統(tǒng),所述第一應(yīng)用程序是即時通訊應(yīng)用程序,所述第二應(yīng) 用程序是面部識別應(yīng)用程序。本發(fā)明所述的計算機(jī)系統(tǒng),所述第一應(yīng)用程序和所述第二應(yīng)用程序請求不同格式 和不同分辨率的所述多媒體數(shù)據(jù)。本發(fā)明所述的計算機(jī)系統(tǒng),所述虛擬攝像頭組件處理所述攝像頭采集的所述多媒 體數(shù)據(jù)以產(chǎn)生所述不同格式和所述不同分辨率的多媒體數(shù)據(jù)。本發(fā)明還提供了一種計算機(jī)系統(tǒng),其包括計算機(jī)可執(zhí)行的虛擬攝像頭組件,該虛 擬攝像頭組件用于支持多個應(yīng)用程序同時使用一個物理攝像頭。該虛擬攝像頭組件包括 耦合于采集過濾器的視頻采集源過濾器,該采集過濾器耦合于物理攝像頭,視頻采集源過 濾器用于處理物理攝像頭采集到的視頻數(shù)據(jù),并傳送處理后的視頻數(shù)據(jù)給所述多個應(yīng)用程 序,其中,在處理和傳送之前,所述物理攝像頭采集的所述視頻數(shù)據(jù)存儲在緩存中;及耦合 于視頻采集源過濾器的虛擬攝像頭服務(wù)中心,用于控制該視頻采集源過濾器,并用于通過 所述采集過濾器從所述物理攝像頭接收所述視頻數(shù)據(jù),并將所述視頻數(shù)據(jù)傳送到所述視頻 采集源過濾器。本發(fā)明所述的計算機(jī)系統(tǒng),所述虛擬攝像頭組件還包括耦合于所述虛擬攝像頭 服務(wù)中心的虛擬攝像頭設(shè)置工具,用于給所述虛擬攝像頭服務(wù)中心配置工作參數(shù)。本發(fā)明所述的計算機(jī)系統(tǒng),所述虛擬攝像頭服務(wù)中心識別與所述多個應(yīng)用程序相 關(guān)的需求,并發(fā)送表示最有限制性的需求的命令給所述物理攝像頭,所述物理攝像頭根據(jù) 所述命令采集所述視頻數(shù)據(jù)。本發(fā)明所述的計算機(jī)系統(tǒng),所述視頻采集源過濾器包括所述多個應(yīng)用程序中的每 個應(yīng)用程序?qū)?yīng)的過濾器實例。本發(fā)明所述的計算機(jī)系統(tǒng),所述采集過濾器包括WINDOWS驅(qū)動模塊采集過濾器, 用于驅(qū)動所述物理攝像頭。本發(fā)明所述的計算機(jī)系統(tǒng),所述視頻采集源過濾器包括過濾器標(biāo)準(zhǔn)接口,用于將 所述多個應(yīng)用程序耦合于所述虛擬攝像頭組件,并將所述處理后的視頻數(shù)據(jù)傳送到所述多 個應(yīng)用程序。本發(fā)明所述的計算機(jī)系統(tǒng),所述多個應(yīng)用程序請求不同格式和不同分辨率的所述 視頻數(shù)據(jù)。
本發(fā)明所述的計算機(jī)系統(tǒng),所述視頻采集源過濾器處理所述物理攝像頭采集的所 述視頻數(shù)據(jù)以產(chǎn)生所述不同格式和所述不同分辨率的視頻數(shù)據(jù)。本發(fā)明所述的計算機(jī)系統(tǒng),所述多個應(yīng)用程序包括即時通訊應(yīng)用程序和面部識別 應(yīng)用程序。本發(fā)明還提供了一種多個應(yīng)用程序同時使用一個物理攝像頭的方法,該多個應(yīng)用程序包括第一應(yīng)用程序和第二應(yīng)用程序,該方法包括創(chuàng)建第一視頻采集源過濾器實例,以 響應(yīng)當(dāng)?shù)谝粦?yīng)用程序請求第一數(shù)據(jù)集時該第一應(yīng)用程序發(fā)出的第一訪問命令;創(chuàng)建第二視 頻采集源過濾器實例,以響應(yīng)當(dāng)?shù)诙?yīng)用程序請求第二數(shù)據(jù)集時該第二應(yīng)用程序發(fā)出的第 二訪問命令,該第一數(shù)據(jù)集的請求和該第二數(shù)據(jù)集的請求同時發(fā)生;根據(jù)第一視頻采集源 過濾器實例提供第一數(shù)據(jù)集給第一應(yīng)用程序,第一數(shù)據(jù)集由物理攝像頭采集的視頻數(shù)據(jù)生 成,該第一數(shù)據(jù)集滿足與第一應(yīng)用程序相關(guān)的第一需求;及根據(jù)第二視頻采集源過濾器實 例提供第二數(shù)據(jù)集給第二應(yīng)用程序,所述第二數(shù)據(jù)集由物理攝像頭采集的視頻數(shù)據(jù)生成, 且該第二數(shù)據(jù)集滿足與第二應(yīng)用程序相關(guān)的第二需求,所述第一需求不同于所述第二需 求。本發(fā)明所述的多個應(yīng)用程序同時使用一個物理攝像頭的方法,還包括緩存所述 物理攝像頭采集的所述視頻數(shù)據(jù);根據(jù)所述第一需求處理所述視頻數(shù)據(jù)以得到所述第一數(shù) 據(jù)集;及根據(jù)所述第二需求處理所述視頻數(shù)據(jù)以得到所述第二數(shù)據(jù)集。本發(fā)明所述的多個應(yīng)用程序同時使用一個物理攝像頭的方法,還包括識別與所 述第一應(yīng)用程序相關(guān)的所述第一需求以及與所述第二應(yīng)用程序相關(guān)的所述第二需求;及根 據(jù)所述第一需求和所述第二需求中最有限制性的需求運(yùn)行所述物理攝像頭,以采集所述視 頻數(shù)據(jù)。本發(fā)明所述的多個應(yīng)用程序同時使用一個物理攝像頭的方法,所述視頻數(shù)據(jù)對應(yīng) 于所述第一需求和所述第二需求中分辨率最高的數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明的計算機(jī)系統(tǒng)利用虛擬攝像頭組件避免了多個應(yīng)用程序 之間的沖突,從而支持多個應(yīng)用程序同時共享單個攝像頭。
圖1所示為現(xiàn)有技術(shù)中具有多個攝像頭應(yīng)用程序的系統(tǒng)的結(jié)構(gòu)框圖。圖2所示為根據(jù)本發(fā)明一個實施例的支持多個攝像頭應(yīng)用程序,同時共享單個攝 像頭的系統(tǒng)的結(jié)構(gòu)框圖。圖3所示為根據(jù)本發(fā)明一個實施例的虛擬攝像頭組件的結(jié)構(gòu)框圖。圖4所示為根據(jù)本發(fā)明一個實施例的可支持多個攝像頭應(yīng)用程序共享單個攝像 頭的系統(tǒng)組件的框圖。圖5所示為根據(jù)本發(fā)明一個實施例的多個攝像頭應(yīng)用程序共享單個攝像頭的方 法流程圖。圖6所示為根據(jù)本發(fā)明一個實施例的多個攝像頭應(yīng)用程序共享單個攝像頭的工 作流程圖。
具體實施例方式以下結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)的說明,以使本發(fā)明的 特性和優(yōu)點更為明顯。以下將對本發(fā)明的具體實施方式
進(jìn)行闡述。本發(fā)明將結(jié)合一些具體實施例進(jìn)行闡 述,但本發(fā)明不局限于這些具體實施例。對本發(fā)明進(jìn)行的修改或者等同替換,均應(yīng)涵蓋在本 發(fā)明的權(quán)利要求書所限定的范圍當(dāng)中。以下具體描述中的某些部分是以流程、邏輯塊、處理過程和其他對計算機(jī)存儲器 中數(shù)據(jù)位的操作的象征性表示來呈現(xiàn)的。這些描述和表示法是數(shù)據(jù)處理領(lǐng)域內(nèi)的技術(shù)人員 最有效地向該領(lǐng)域內(nèi)的其他技術(shù)人員傳達(dá)他們工作實質(zhì)的方法。在本中請中,流程、邏輯 塊、處理過程或相似的事物,被構(gòu)思成有條理的步驟或指令的序列以實現(xiàn)想要的結(jié)果。所述 的步驟是需要對物理量進(jìn)行物理操作的步驟。通常,但不是必然的,這些物理量的形式可為 電或磁信號,可在計算機(jī)系統(tǒng)中被存儲、傳輸、合并和比較等等。然而,應(yīng)該明白的是,這些術(shù)語及其相似表述都與適當(dāng)?shù)奈锢砹肯嚓P(guān),并僅僅是運(yùn) 用于這些物理量的便利標(biāo)記。除非在之后的討論中特別說明,在本申請的全部內(nèi)容中,運(yùn)用 “請求”、“創(chuàng)建”、“計算”、“采集”、“處理”、“傳送”或類似術(shù)語之處,指的都是計算機(jī)系統(tǒng)或類 似的電子計算設(shè)備中的操作和處理過程,所述的計算機(jī)系統(tǒng)對以物理(電子)量形式存在于 所述計 算機(jī)系統(tǒng)的寄存器和存儲器中的數(shù)據(jù)進(jìn)行操作,并轉(zhuǎn)換為類似地以物理量形式存在于 所述計算機(jī)系統(tǒng)的寄存器、存儲器或其他此類信息存儲、傳輸或顯示設(shè)備中的其他數(shù)據(jù)。在此所述的實施例是以計算機(jī)可執(zhí)行指令為討論的大背景的,所述的計算機(jī)指令 可位于某種形式的計算機(jī)可用的介質(zhì)(如,程序模塊)中,被一個或多個計算機(jī)或其他設(shè)備 執(zhí)行。通常,程序模塊包括可執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例行程序、編制程 序、對象、元件、數(shù)據(jù)結(jié)構(gòu)等。所述程序模塊將在不同的實施例中結(jié)合或分開描述。作為舉例,且并不局限于其中,計算機(jī)可讀介質(zhì)可包括計算機(jī)存儲介質(zhì)和通訊介 質(zhì)。計算機(jī)存儲介質(zhì)包括以任何方法或技術(shù)實現(xiàn)的用以存儲信息的易失性和非易失性的、 移動和不可移動的介質(zhì),所述信息可為計算機(jī)可讀的指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù) 據(jù)。計算機(jī)存儲介質(zhì)包括(但不局限于)隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可 擦除可編程只讀存儲器(EEPROM)、閃存或其他存儲器技術(shù),光盤ROM(CD-ROM),多功能數(shù)碼 光盤(DVD)或其他光學(xué)存儲器、盒式磁帶、磁帶、磁盤存儲器或其他磁的存儲器設(shè)備,或任 何其他可被用來存儲所需信息的介質(zhì)。通訊介質(zhì)可具體化為計算機(jī)可讀的指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他已調(diào)制的數(shù) 據(jù)信號(如,載波或其他傳輸機(jī)制)中的數(shù)據(jù),并包括任何信息傳輸介質(zhì)。所述的“已調(diào)制 的數(shù)據(jù)信號”指具有一個或多個特征集或遵循某種信號信息編碼方式變化的信號。作為舉 例,且并不局限于其中,通訊介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直線連接;以及無線介質(zhì),如 聲學(xué)的、無線電的(RF)、紅外線的和其他無線的介質(zhì)。上述任何介質(zhì)的組合都應(yīng)包括在計算 機(jī)可讀介質(zhì)的范圍內(nèi)。圖2所示為根據(jù)本發(fā)明一個實施例的系統(tǒng)200的示例性結(jié)構(gòu)框圖。系統(tǒng)200包括 可支持多個攝像頭應(yīng)用程序,同時共享單個攝像頭的虛擬攝像頭組件206。系統(tǒng)200可應(yīng)用 于多種計算機(jī)平臺,這些計算機(jī)平臺可運(yùn)行多種操作系統(tǒng)(例如但不局限于WINDOWS操作 系統(tǒng))。例如,系統(tǒng)200的計算機(jī)平臺可為個人計算機(jī),便攜式計算機(jī)(pocket PC,PPC),個人數(shù)字助理(personal digital assistant,PDA)或智能電話。在一個實施例中,系統(tǒng)200的組件和特性可應(yīng)用于軟件中。在圖2所示的實施例中,系統(tǒng)200包括攝像頭應(yīng)用程序模塊202,虛擬攝像頭組件 206,WDM采集過濾器204以及物理攝像頭210 (比如視頻攝像頭)。攝像頭應(yīng)用程序模塊 202包括多個客戶端應(yīng)用程序。在一個實施例中,客戶端應(yīng)用程序包括可支持實時視頻聊天 的即時通訊(instant messenger, IM)程序,例如:MSN MESSENGER 208A, YAHOO MESSENGER 208B, SKYPE208C, AMERICA ONLINE INSTANT MESSENGER (AIM)(未示出),ICQ(未示出), GOOGLE TALK(未示出),PALTALK(未示出)等。在一個實施例中,攝像頭應(yīng)用程序模塊 202中的客戶端應(yīng)用程序可包括播放/錄制應(yīng)用程序(例如WIND0WSMEDIA PLAYER(未示 出)),視頻會議軟件(例如NETMEETING(未示出)),視頻編輯應(yīng)用程序以及其他多媒體應(yīng) 用程序。在一個實施例中,攝像頭應(yīng)用程序模塊202包括“360度TOB FACE”程序(以下簡 稱FACE程序)214,該程序是凹凸科技股份公司開發(fā)的智能登錄和加鎖/解鎖應(yīng)用程序。通 過面部識別技術(shù),F(xiàn)ACE程序214可安全、快捷地登錄、加鎖或解鎖WINDOWS操作系統(tǒng)。用戶 無需輸入用戶名和密碼,只需通過攝像頭210驗證面部信息就能完成上述操作。攝像頭應(yīng)用程序模塊202中所有的應(yīng)用程序可使用攝像頭210提供的多媒體數(shù) 據(jù)。在這個實施例中,只有一個攝像頭210示出。然而在其他的實施例中,多個帶有對應(yīng)設(shè) 備驅(qū)動程序的攝像頭可與計算機(jī)主機(jī)平臺相連。在這樣的實施例中,用戶可從多個攝像頭 中選擇一個攝像頭使用。當(dāng)應(yīng)用程序訪問攝像頭210時,攝像頭210開啟并保持開啟狀態(tài)。攝像頭210可支 持各種圖片(例如*· jpg,*· gif, *· bmp 等)和視頻(例如*· wmv, *· avi,*· asf, *· mpeg, *· rm, *· rmvb 等)介質(zhì)。在圖2所示的實施例中,攝像頭應(yīng)用程序模塊202耦合于虛擬攝像頭組件206。 在一個實施例中,虛擬攝像頭組件206通過使用MICROSOFT軟件開發(fā)工具箱(software development kit, SDK)的組件DIRECTSH0W進(jìn)行實例化。SDK是一個程序包,包括應(yīng)用程 序接口(application program interfaces,APIs),編程工具,標(biāo)題,庫,示例代碼,文件等。 在DIRECTSHOW SDK的幫助下,程序員可使用不同的高級程序設(shè)計語言來建立虛擬攝像頭組 件206的子系統(tǒng)。虛擬攝像頭組件206可由兼容組件對象模型(componentobject model, COM)的可 執(zhí)行程序或進(jìn)程組成。COM是一種由MICROSOFT推出的軟件組件接口標(biāo)準(zhǔn)。多種支持COM 技術(shù)的編程語言(例如C++和JAVA)可被用來創(chuàng)建虛擬攝像頭組件206的動態(tài)對象。因 此,在不清楚對象內(nèi)部實施的情況下重復(fù)使用該對象成為可能,且只需為虛擬攝像頭組件 206提供定義明確的接口即可。WINDOWS操作系統(tǒng)提供COM API。COM API負(fù)責(zé)裝載COM可執(zhí)行程序(例如虛擬 攝像頭組件206),并建立從攝像頭應(yīng)用程序模塊202中的攝像頭應(yīng)用程序到虛擬攝像頭組 件206的連接。于是,虛擬攝像頭組件206便可接通攝像頭應(yīng)用程序模塊202中任意的攝 像頭應(yīng)用程序。虛擬攝像頭組件206的操作與攝像頭210執(zhí)行的操作相同。正如即將描述 的實施例,可建立多個視頻采集源過濾器實例來支持?jǐn)z像頭應(yīng)用程序模塊202中的多個攝 像頭應(yīng)用程序。WINDOWS操作系統(tǒng)包括內(nèi)核模式的WINDOWS驅(qū)動模塊(WINDOWS Driver Module,WDM)采集過濾器204,用于虛擬視頻。WDM采集過濾器204耦合于虛擬攝像頭組件206,并 可鏈接攝像頭設(shè)備驅(qū)動文件或動態(tài)鏈接庫(dynamic link library,DLL或.dll)文件。通 過建立和DLL文件的鏈接,WDM采集過濾器204可訪問攝像頭210以獲取采集到的視頻數(shù) 據(jù)流。在這個實施例中,WDM采集過濾器204由MICROSOFT DIRECTSHOWSDK提供,并被命名 為KsProxy Filter (Ksproxy. ax)。WDM采集過濾器204還可設(shè)置所需的視頻流幀速率和分 辨率模式。
圖3所示為根據(jù)本發(fā)明一個實施例的虛擬攝像頭組件206的示例性結(jié)構(gòu)框圖。該 虛擬攝像頭組件206包括視頻采集源過濾器306,虛擬攝像頭服務(wù)中心302和虛擬攝像頭設(shè) 置工具304。視頻采集源過濾器306是標(biāo)準(zhǔn)的DIRECTSH0W模塊化組件,并可包括源過濾器、變 換過濾器和輸出程序過濾器(未示出)。視頻采集源過濾器306可讀取,寫入和處理攝像頭 210采集的視頻流數(shù)據(jù),并把該數(shù)據(jù)傳送給攝像頭應(yīng)用程序模塊202的多個應(yīng)用程序。在一 個實施例中,視頻采集源過濾器306訪問緩存350 (圖4中示出),該緩存350用于存儲由攝 像頭210采集的視頻或圖像數(shù)據(jù)。與排他地直接使用攝像頭210不同,多個攝像頭應(yīng)用程 序(比如MSN MESSENGER 208A, YAHOO MESSENGER208B, FACE 程序 214 等)可同時讀取緩 存350中的圖片和視頻流數(shù)據(jù)。視頻采集源過濾器306和其他過濾器排放在過濾器圖結(jié)構(gòu) 中。每一個過濾器可由一個功能模塊組成。在圖3所示的實施例中,視頻采集源過濾器306包括過濾器標(biāo)準(zhǔn)接口 310和服務(wù) 訪問模塊312。過濾器標(biāo)準(zhǔn)接口 310是視頻采集源過濾器306的標(biāo)準(zhǔn)接口。視頻采集源過 濾器306通過過濾器標(biāo)準(zhǔn)接口 310與攝像頭應(yīng)用程序模塊202中的攝像頭應(yīng)用程序進(jìn)行通 信。服務(wù)訪問模塊312與虛擬攝像頭服務(wù)中心302相連,用于通過虛擬攝像頭服務(wù)中心302 讀取來自攝像頭210的視頻數(shù)據(jù)。虛擬攝像頭服務(wù)中心302提供過濾器圖管理器的服務(wù)。虛擬攝像頭服務(wù)中心302 不僅控制視頻采集源過濾器306的過濾器圖,還可處理控制流和數(shù)據(jù)流。虛擬攝像頭服務(wù) 中心302傳送訪問命令給攝像頭210,并提供攝像頭210采集的數(shù)據(jù)給緩存350。運(yùn)行之前, 虛擬攝像頭設(shè)置工具304配置虛擬攝像頭服務(wù)中心302。虛擬攝像頭設(shè)置工具304可設(shè)置 虛擬攝像頭服務(wù)中心302的參數(shù),以下將結(jié)合圖5詳細(xì)描述。圖4所示為根據(jù)本發(fā)明一個實施例的系統(tǒng)400的示例性結(jié)構(gòu)框圖。在系統(tǒng)400中, 攝像頭應(yīng)用程序模塊202中的多個攝像頭應(yīng)用程序通過使用虛擬攝像頭組件206共享單個 攝像頭210。圖4中的雙向箭頭表示元素間的邏輯關(guān)系。這些元素通過控制流和數(shù)據(jù)流彼 此相連。在圖4所示的實施例中,兩個應(yīng)用程序共享攝像頭210。也就是說,當(dāng)FACE程序 214和模塊212中的一個程序(例如MSNMESSENGER 208A)同時運(yùn)行和訪問攝像頭210時, 它們都連接到虛擬攝像頭組件206。在這個實施例中,F(xiàn)ACE程序214和MSN MESSENGER208A都與視頻采集源過濾器306 的過濾器標(biāo)準(zhǔn)接口 310相連。過濾器標(biāo)準(zhǔn)接口 310耦合于服務(wù)訪問模塊312。視頻采集源 過濾器306耦合于虛擬攝像頭服務(wù)中心302,并由虛擬攝像頭服務(wù)中心302控制。由于虛擬 攝像頭服務(wù)中心302耦合于WDM采集過濾器204,虛擬攝像頭組件206經(jīng)由WDM采集過濾器 204與攝像頭210耦合。
當(dāng)FACE程序214和MSN MESSENGER 208A訪問攝像頭210時,可產(chǎn)生兩個對應(yīng)的視 頻采集源過濾器實例。這兩個視頻采集源過濾器實例可請求相同的視頻數(shù)據(jù)格式(例如 分辨率,幀速率等)或兩種不同的視頻數(shù)據(jù)格式。FACE程序214使用的第一視頻采集源過 濾器實例可啟動面部識別命令,而MSNMESSENGER 208A使用的第二視頻采集源過濾器實例 僅僅請求視頻流。當(dāng)這兩個視頻采集源過濾器實例生成時,虛擬攝像頭組件206便實現(xiàn)配 置并開始工作。因此,虛擬攝像頭設(shè)置工具304首先設(shè)置虛擬攝像頭服務(wù)中心302的適當(dāng)參數(shù) (例如分辨率)。虛擬攝像頭服務(wù)中心302可搜索攝像頭210,并將虛擬攝像頭組件206 和攝像頭210綁定。在分析和處理來自兩個視頻采集源過濾器實例的兩個訪問命令之后, 虛擬攝像頭服務(wù)中心302通過WDM采集過濾器204傳送該兩個命令給攝像頭210。作為回 應(yīng),WDM采集過濾器204驅(qū)動攝像頭210,攝像頭210開始采集視頻流或圖像數(shù)據(jù)。例如, 如果兩個應(yīng)用程序依賴不同的圖像分辨率,攝像頭210可采集分辨率較高的視頻或圖像數(shù) 據(jù)。在這個實施例中,第一視頻采集源過濾器實例(響應(yīng)FACE程序214)還可對采集到的 數(shù)據(jù)進(jìn)行面部識別計算。通過WDM采集過濾器204,采集到的視頻流或圖像數(shù)據(jù)被傳送到虛擬攝像頭組件 206,并在緩存350中緩存。收到數(shù)據(jù)以后,虛擬攝像頭組件206將數(shù)據(jù)處理成兩個視頻采 集源過濾器實例所需的格式。如果是兩種不同的格式需求,該數(shù)據(jù)仍可被處理成所需的不 同格式。更具體的說,由虛擬攝像頭服務(wù)中心302接收視頻流或圖像數(shù)據(jù),并由視頻采集源 過濾器306處理該數(shù)據(jù)。然后, 跟隨兩個對應(yīng)的視頻采集源過濾器實例,處理過的數(shù)據(jù)通過 過濾器標(biāo)準(zhǔn)接口 310被分別傳送到FACE程序214和MSN MESSENGER 208A。圖5所示為根據(jù)本發(fā)明一個實施例的多個攝像頭應(yīng)用程序同時共享單個攝像頭 的方法500的示例性流程圖。在一個實施例中,方法500的操作是通過執(zhí)行存儲在計算機(jī) 可讀介質(zhì)中的計算機(jī)可執(zhí)行指令來實現(xiàn)的。在一個實施例中,虛擬攝像頭組件在MICROSOFT SDK平臺下開發(fā),并由兼容COM的可執(zhí)行進(jìn)程組成。虛擬攝像頭組件與物理攝像頭綁定。 如果有多個物理攝像頭,用戶可從列表中選擇一個物理攝像頭,虛擬攝像頭組件則與所選 物理攝像頭綁定。在一個實施例中,虛擬攝像頭組件包括虛擬攝像頭服務(wù)中心,耦合于虛 擬攝像頭服務(wù)中心的視頻采集源過濾器,耦合于虛擬攝像頭服務(wù)中心的虛擬攝像頭設(shè)置工 具。視頻采集源過濾器處理物理攝像頭采集的視頻數(shù)據(jù),并傳送該數(shù)據(jù)給多個攝像頭應(yīng)用 程序。虛擬攝像頭服務(wù)中心控制視頻采集源過濾器,并將視頻數(shù)據(jù)傳送給視頻采集源過濾 器。虛擬攝像頭設(shè)置工具使用適當(dāng)?shù)墓ぷ鲄?shù)配置虛擬攝像頭服務(wù)中心。虛擬攝像頭組件可供多個同時請求訪問物理攝像頭的應(yīng)用程序使用。為了描述方 便,圖5根據(jù)一個實施例描述了為兩個攝像頭應(yīng)用程序與虛擬攝像頭組件建立連接的工作 流程。例如,一個基于面部識別的智能登錄和加鎖/解鎖應(yīng)用程序(例如圖2中FACE程 序214)和一個基于因特網(wǎng)即時通訊應(yīng)用程序(例如圖2中MSN MESSENGER 208A)可同時 訪問物理攝像頭。圖5的方法可推廣到多于兩個攝像頭應(yīng)用程序的情況。在步驟502A中,F(xiàn)ACE程序請求與攝像頭建立第一連接。FACE程序可訪問攝像頭 進(jìn)行面部識別。同時,在步驟502B中,MSN程序請求與攝像頭建立第二連接。MSN程序可訪 問攝像頭進(jìn)行視頻流數(shù)據(jù)傳遞。在訪問物理攝像頭時,F(xiàn)ACE程序和MSN程序都無需知道虛 擬攝像頭組件的存在。從攝像頭應(yīng)用程序的角度出發(fā),與虛擬攝像頭組件建立的連接是透明的,因此應(yīng)用程序表現(xiàn)為直接和物理攝像頭通信。FACE程序和MSN程序可依次或同時發(fā) 出兩個連接請求。當(dāng)計算機(jī)主機(jī)收到兩個連接命令時,則訪問和裝載虛擬攝像頭組件。在步驟504A和步驟504B中,分別創(chuàng)建FACE程序的第一視頻采集源過濾器實例和 MSN程序的第二視頻采集源過濾器實例。虛擬攝像頭組件得到觸發(fā)以回應(yīng)兩個應(yīng)用程序的 請求。當(dāng)使用虛擬攝像頭組件時,創(chuàng)建視頻采集源過濾器實例以支持兩個訪問程序FACE和 MSN0 一個實例可為一個實際的應(yīng)用,也可為虛擬創(chuàng)建一個裝載于存儲器中的實體的副本。 視頻采集源過濾器實例為虛擬攝像頭組件的COM API的副本。該COM API的適當(dāng)參數(shù)可得 到設(shè)置。通過創(chuàng)建第一視頻采集源過濾器實例,可建立FACE程序與虛擬攝像頭組件的第一 連接。同時,通過創(chuàng)建第二視頻采集源過濾器實例,可建立MSN程序與虛擬攝像頭組件的第 二連接。在一個實施例中,虛擬攝像頭組件的過濾器名可在步驟504A和步驟504B獲得。過 濾器名是由虛擬攝像頭組件COM API程序員指定的。在步驟506中,當(dāng)FACE和MSN程序請求不同格式或不同分辨率的視頻數(shù)據(jù)時,最 高需求將被傳送到物理攝像頭。也就是說,物理攝像頭是按照最關(guān)鍵或最有限制性的需求 運(yùn)行。例如,最高需求可能是更復(fù)雜的視頻數(shù)據(jù)格式的請求或更高的視頻數(shù)據(jù)分辨率的請 求。例如,F(xiàn)ACE程序的第一視頻采集源過濾器實例發(fā)送面部識別命令,并請求一系列分辨 率為640 X 480像素的圖像;MSN程序的第二視頻采集源過濾器實例請求分辨率為320 X 240 像素的視頻流。通過分析和處理兩個請求,虛擬攝像頭組件的虛擬攝像頭服務(wù)中心可發(fā)送 指示采集最高分辨率(640X480像素)的視頻數(shù)據(jù)的命令。該命令可通過WDM采集過濾器 發(fā)送到物理攝像頭。在步驟508中,根據(jù)最高需求驅(qū)動攝像頭采集視頻數(shù)據(jù)。在步驟506的例子中,作 為收到的最高需求命令的回應(yīng),WDM采集過濾器被訪問和裝載,該WDM采集過濾器驅(qū)動攝像 頭采集分辨率為640X480像素的視頻數(shù)據(jù)。在步驟510中,采集到的視頻數(shù)據(jù)被傳送到虛擬攝像頭組件并進(jìn)行緩存。WDM采集 過濾器讀取采集數(shù)據(jù)并傳送該數(shù)據(jù)到虛擬攝像頭組件。虛擬攝像頭組件的虛擬攝像頭服務(wù) 中心首先接收采集數(shù)據(jù)。在步驟512A中,處理視頻數(shù)據(jù)(即響應(yīng)最高需求的采集數(shù)據(jù))以得到根據(jù)FACE程 序的第一視頻采集源過濾器實例要求的格式和分辨率的數(shù)據(jù)。同樣在步驟512B中,處理該 視頻數(shù)據(jù)以得到根據(jù)MSN程序的第二視頻采集源過濾器實例要求的格式和分辨率的數(shù)據(jù)。 如前所述,虛擬攝像頭組件的視頻采集源過濾器處理視頻數(shù)據(jù)。在上述例子中,收到的分 辨率為640X480像素的視頻數(shù)據(jù)從虛擬攝像頭服務(wù)中心傳送到視頻采集源過濾器。根據(jù) FACE程序的第一視頻采集源過濾器實例,視頻數(shù)據(jù)被采樣成一系列分辨率都為640X480 像素的圖像,然后傳送給面部識別算法程序。同樣的,根據(jù)MSN程序的第二視頻采集源過濾 器實例,分辨率為640X480像素的視頻數(shù)據(jù)被轉(zhuǎn)換成320X240像素的視頻數(shù)據(jù)。在步驟514A中,符合第一視頻采集源過濾器實例所要求的格式和分辨率的數(shù)據(jù)被傳送到FACE程序。在上述的例子中,分辨率為640 X 480像素的圖像被傳送到FACE程序, 用于面部識別處理。在步驟514B中,符合第二視頻采集源過濾器實例所要求的格式和分辨 率的數(shù)據(jù)被傳送到MSN程序。在上述的例子中,分辨率為320X240像素的視頻流被傳送到 MSN程序,用于通過因特網(wǎng)進(jìn)行即時通訊。因此,F(xiàn)ACE程序和MSN程序可同時使用攝像頭采 集到的視頻數(shù)據(jù),并正常工作。
圖6所示為根據(jù)本發(fā)明一個實施例的多個攝像頭應(yīng)用程序共享單個攝像頭的示 例性工作流程圖600。工作流程圖600以一系列控制流和視頻數(shù)據(jù)流作為參考。實線表示 控制流,而虛線表示視頻數(shù)據(jù)流。在一個實施例中,虛擬攝 像頭組件由可兼容COM的可執(zhí)行 進(jìn)程或程序組成。在支持多用戶和多任務(wù)的操作系統(tǒng)(例如WINDOWS)中,用戶602可同時啟動多個 應(yīng)用程序,其中部分啟動的應(yīng)用程序可能需要使用物理攝像頭。例如,在一個實施例中,第 一即時通訊程序MSN MESSENGER 208A,第二即時通訊程序YAHOOMESSENGER 208B及基于面 部識別的智能登錄和加鎖/解鎖應(yīng)用程序FACE程序214都在運(yùn)行并請求訪問攝像頭。為 更好說明這個實例,假設(shè)只有一個攝像頭與計算機(jī)系統(tǒng)相連。圖6將結(jié)合圖4進(jìn)行描述。如果MSN MESSENGER 208A開始訪問攝像頭,則創(chuàng)建第一視頻采集源過濾器實例 610A。如果YAHOO MESSENGER208B訪問攝像頭,則創(chuàng)建第二視頻采集源過濾器實例610B。 同理,作為對N個登錄攝像頭的訪問的響應(yīng),將創(chuàng)建N個視頻采集源過濾器實例。當(dāng)FACE 程序214訪問登錄攝像頭時,則創(chuàng)建第N視頻采集源過濾器實例610N。視頻采集源過濾器 實例610A,610B和610N是與物理攝像頭連接的虛擬接口,并為視頻采集源過濾器306的實 例。然后,虛擬攝像頭服務(wù)中心302分析并管理N個視頻采集源過濾器實例610A,
610B......610N,并產(chǎn)生一個命令經(jīng)由WDM采集過濾器204傳送給物理攝像頭。虛擬攝像
頭服務(wù)中心302可發(fā)送視頻采集源過濾器實例中的最高需求(例如,需求最高的分辨率) 的命令給攝像頭。虛擬攝像頭服務(wù)中心302也可確定N個實例的優(yōu)先級,并多路傳送相沖 突的請求。作為對該命令的響應(yīng),攝像頭采集滿足最高需求的視頻數(shù)據(jù)。WDM采集過濾器204 控制的攝像頭設(shè)備驅(qū)動程序614驅(qū)動攝像頭。WDM采集過濾器204讀取采集到的數(shù)據(jù)并傳 送給虛擬攝像頭組件。虛擬攝像頭組件的虛擬攝像頭服務(wù)中心302首先接收該數(shù)據(jù)。然后,虛擬攝像頭服務(wù)中心302將視頻數(shù)據(jù)緩存到視頻采集源過濾器306可訪問
的緩存器350中。為了滿足N個視頻采集源過濾器實例610A,610B......610N,虛擬攝像
頭服務(wù)中心302命令視頻采集源過濾器306處理最高需求的視頻數(shù)據(jù),從而分別產(chǎn)生滿足
N個視頻采集源過濾器實例610A,610B......610N所需格式和分辨率的數(shù)據(jù)。N個視頻采
集源過濾器實例610A,610B......610N可請求相同格式和/或分辨率的數(shù)據(jù),也可請求不
同格式/分辨率的數(shù)據(jù)。最后,如工作流程圖600所示,處理后的數(shù)據(jù)被發(fā)送到跟隨N個視頻采集源過濾器 實例610A,610B......610N的N個攝像頭應(yīng)用程序。因此,本發(fā)明的實施例公開了多個攝像頭應(yīng)用程序共享一個攝像頭的方法,避免 了這些程序之間的沖突。攝像頭應(yīng)用程序無法辨認(rèn)它們是和物理攝像頭通信還是和虛擬攝 像頭組件通信。虛擬攝像頭組件的使用對于攝像頭應(yīng)用程序來說是透明的,它們的行為就 像是直接和物理攝像頭連接。同理,用戶602與虛擬攝像頭組件的交互作用也表現(xiàn)為用戶 直接與物理攝像頭的交互作用。從攝像頭應(yīng)用程序和用戶的角度,都等同于所有程序都在 使用物理攝像頭。上文具體實施方式
和附圖僅為本發(fā)明的常用實施例。顯然,在不脫離權(quán)利要求書 所界定的本發(fā)明精神和發(fā)明范圍的前提下可以有各種增補(bǔ)、修改和替換。本領(lǐng)域技術(shù)人員應(yīng)該理解,本發(fā)明在實際應(yīng)用中可根據(jù)具體的環(huán)境和工作要求在不背離發(fā)明準(zhǔn)則的前提下 在形式、結(jié)構(gòu)、布局、比例、材料、元素、組件及其它方面有所變化。因此,在此披露的實施例 僅用于說明而非局限,本發(fā)明的范圍由權(quán)利 要求書及其合法等同物界定,而不限于此前的 描述。
權(quán)利要求
一種計算機(jī)系統(tǒng),其特征在于,包括攝像頭,用于采集多媒體數(shù)據(jù);及耦合于所述攝像頭的存儲器,用于存儲計算機(jī)可執(zhí)行組件,該計算機(jī)可執(zhí)行組件包括第一應(yīng)用程序,用于請求對所述攝像頭的第一訪問,以獲取第一數(shù)據(jù)集;第二應(yīng)用程序,用于請求對所述攝像頭的第二訪問,以獲取第二數(shù)據(jù)集,所述第一訪問和所述第二訪問在時間上重疊;及耦合于所述第一應(yīng)用程序和所述第二應(yīng)用程序與所述攝像頭之間的虛擬攝像頭組件,用于緩存所述多媒體數(shù)據(jù),并分別根據(jù)所述第一應(yīng)用程序和所述第二應(yīng)用程序的需求處理所述多媒體數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的計算機(jī)系統(tǒng),其特征在于,所述虛擬攝像頭組件包括耦合于采集過濾器的視頻采集源過濾器,其中,所述采集過濾器耦合于所述攝像頭,所 述視頻采集源過濾器用于執(zhí)行所述處理的操作,并傳送處理后的多媒體數(shù)據(jù)給所述第一應(yīng) 用程序和所述第二應(yīng)用程序。
3.根據(jù)權(quán)利要求2所述的計算機(jī)系統(tǒng),其特征在于,所述虛擬攝像頭組件還包括耦合于所述視頻采集源過濾器的虛擬攝像頭服務(wù)中心,用于控制所述視頻采集源過濾 器,并用于經(jīng)由所述采集過濾器將所述多媒體數(shù)據(jù)從所述攝像頭傳送到所述視頻采集源過lIE^'^S' o
4.根據(jù)權(quán)利要求3所述的計算機(jī)系統(tǒng),其特征在于,所述虛擬攝像頭組件還包括 虛擬攝像頭設(shè)置工具,用于給所述虛擬攝像頭服務(wù)中心配置工作參數(shù)。
5.根據(jù)權(quán)利要求2所述的計算機(jī)系統(tǒng),其特征在于,所述虛擬攝像頭組件還包括耦合于所述視頻采集源過濾器的虛擬攝像頭服務(wù)中心,用于識別與所述第一程序和所 述第二程序相關(guān)的需求,并發(fā)送表示最有限制性的需求的命令給所述攝像頭,所述攝像頭 根據(jù)所述命令采集多媒體數(shù)據(jù)。
6.根據(jù)權(quán)利要求2所述的計算機(jī)系統(tǒng),其特征在于,所述采集過濾器包括WINDOWS驅(qū)動 模決采集過濾器。
7.根據(jù)權(quán)利要求1所述的計算機(jī)系統(tǒng),其特征在于,所述第一應(yīng)用程序是即時通訊應(yīng) 用程序,所述第二應(yīng)用程序是面部識別應(yīng)用程序。
8.根據(jù)權(quán)利要求1所述的計算機(jī)系統(tǒng),其特征在于,所述第一應(yīng)用程序和所述第二應(yīng) 用程序請求不同格式和不同分辨率的所述多媒體數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的計算機(jī)系統(tǒng),其特征在于,所述虛擬攝像頭組件處理所述攝 像頭采集的所述多媒體數(shù)據(jù)以產(chǎn)生所述不同格式和所述不同分辨率的多媒體數(shù)據(jù)。
10.一種計算機(jī)系統(tǒng),其特征在于,包括計算機(jī)可執(zhí)行的虛擬攝像頭組件,用于支持多 個應(yīng)用程序同時使用一個物理攝像頭,所述虛擬攝像頭組件包括耦合于采集過濾器的視頻采集源過濾器,其中,所述采集過濾器耦合于所述物理攝像 頭,所述視頻采集源過濾器用于處理所述物理攝像頭采集到的視頻數(shù)據(jù),并傳送處理后的 視頻數(shù)據(jù)給所述多個應(yīng)用程序,其中,在處理和傳送之前,所述物理攝像頭采集的所述視頻 數(shù)據(jù)存儲在緩存中;及耦合于所述視頻采集源過濾器的虛擬攝像頭服務(wù)中心,用于控制所述視頻采集源過濾器,并用于經(jīng)由所述采集過濾器將所述視頻數(shù)據(jù)從所述物理攝像頭傳送到所述視頻采集源 過濾器o
11.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述虛擬攝像頭組件還包括耦合于所述虛擬攝像頭服務(wù)中心的虛擬攝像頭設(shè)置工具,用于給所述虛擬攝像頭服務(wù)中心配置工作參數(shù)。
12.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述虛擬攝像頭服務(wù)中心識別 與所述多個應(yīng)用程序相關(guān)的需求,并發(fā)送表示最有限制性的需求的命令給所述物理攝像 頭,所述物理攝像頭根據(jù)所述命令采集所述視頻數(shù)據(jù)。
13.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述視頻采集源過濾器包括所 述多個應(yīng)用程序中的每個應(yīng)用程序?qū)?yīng)的過濾器實例。
14.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述采集過濾器包括WINDOWS驅(qū) 動模塊采集過濾器,用于驅(qū)動所述物理攝像頭。
15.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述視頻采集源過濾器包括過 濾器標(biāo)準(zhǔn)接口,用于將所述多個應(yīng)用程序耦合于所述虛擬攝像頭組件,并將所述處理后的 視頻數(shù)據(jù)傳送到所述多個應(yīng)用程序。
16.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述多個應(yīng)用程序請求不同格 式和不同分辨率的所述視頻數(shù)據(jù)。
17.根據(jù)權(quán)利要求16所述的計算機(jī)系統(tǒng),其特征在于,所述視頻采集源過濾器處理所 述物理攝像頭采集的所述視頻數(shù)據(jù)以產(chǎn)生所述不同格式和所述不同分辨率的視頻數(shù)據(jù)。
18.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述多個應(yīng)用程序包括即時通 訊應(yīng)用程序和面部識別應(yīng)用程序。
19.一種多個應(yīng)用程序同時使用一個物理攝像頭的方法,所述多個應(yīng)用程序包括第一 應(yīng)用程序和第二應(yīng)用程序,其特征在于,所述方法包括創(chuàng)建第一視頻采集源過濾器實例,以響應(yīng)當(dāng)?shù)谝粦?yīng)用程序請求第一數(shù)據(jù)集時該第一應(yīng) 用程序發(fā)出的第一訪問命令;創(chuàng)建第二視頻采集源過濾器實例,以響應(yīng)當(dāng)?shù)诙?yīng)用程序請求第二數(shù)據(jù)集時該第二應(yīng) 用程序發(fā)出的第二訪問命令,所述第一數(shù)據(jù)集的請求和所述第二數(shù)據(jù)集的請求同時發(fā)生;根據(jù)所述第一視頻采集源過濾器實例提供所述第一數(shù)據(jù)集給所述第一應(yīng)用程序,所述 第一數(shù)據(jù)集由所述物理攝像頭采集的視頻數(shù)據(jù)生成,且滿足與所述第一應(yīng)用程序相關(guān)的第 一需求;及根據(jù)所述第二視頻采集源過濾器實例提供所述第二數(shù)據(jù)集給所述第二應(yīng)用程序,所述 第二數(shù)據(jù)集由所述物理攝像頭采集的所述視頻數(shù)據(jù)生成,且滿足與所述第二應(yīng)用程序相關(guān) 的第二需求,所述第一需求不同于所述第二需求。
20.根據(jù)權(quán)利要求19所述的多個應(yīng)用程序同時使用一個物理攝像頭的方法,其特征在 于,還包括緩存所述物理攝像頭采集的所述視頻數(shù)據(jù);根據(jù)所述第一需求處理所述視頻數(shù)據(jù)以得到所述第一數(shù)據(jù)集;及根據(jù)所述第二需求處理所述視頻數(shù)據(jù)以得到所述第二數(shù)據(jù)集。
21.根據(jù)權(quán)利要求19所述的多個應(yīng)用程序同時使用一個物理攝像頭的方法,其特征在于,還包括識別與所述第一應(yīng)用程序相關(guān)的所述第一需求以及與所述第二應(yīng)用程序相關(guān)的所述 第二需求;及根據(jù)所述第一需求和所述第二需求中最有限制性的需求運(yùn)行所述物理攝像頭,以采集 所述視頻數(shù)據(jù)。
22.根據(jù)權(quán)利要求19所述的多個應(yīng)用程序同時使用一個物理攝像頭的方法,其特征在 于,所述視頻數(shù)據(jù)對應(yīng)于所述第一需求和所述第二需求中分辨率最高的數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種計算機(jī)系統(tǒng)、多個應(yīng)用程序同時使用一個攝像頭的方法。計算機(jī)系統(tǒng)包括耦合于攝像頭的虛擬攝像頭組件。虛擬攝像頭組件包括視頻采集源過濾器,虛擬攝像頭服務(wù)中心和虛擬攝像頭設(shè)置工具。視頻采集源過濾器和虛擬攝像頭設(shè)置工具都耦合于虛擬攝像頭服務(wù)中心。視頻采集源過濾器處理來自攝像頭的視頻數(shù)據(jù),并傳送處理后的數(shù)據(jù)給多個攝像頭應(yīng)用程序。虛擬攝像頭服務(wù)中心控制視頻采集源過濾器,并將視頻數(shù)據(jù)從攝像頭傳送到視頻采集源過濾器。虛擬攝像頭設(shè)置工具使用合適的工作參數(shù)來配置虛擬攝像頭服務(wù)中心。本發(fā)明通過使用虛擬攝像頭組件,解決了多個應(yīng)用程序之間的沖突,使得多個應(yīng)用程序可同時共享單個攝像頭。
文檔編號G06F9/46GK101833520SQ200910118770
公開日2010年9月15日 申請日期2009年3月11日 優(yōu)先權(quán)日2009年3月11日
發(fā)明者曾洪寧, 王紹蘭 申請人:凹凸電子(武漢)有限公司