測(cè)量的某一簡(jiǎn)單數(shù)學(xué)函數(shù)是線性的。由此,對(duì)于特定值,每當(dāng)測(cè)量值時(shí),理想傳感器產(chǎn) 生相同的輸出。影響由拍攝裝置產(chǎn)生的任何圖像的設(shè)定值(其包括時(shí)序、增益和其他捕捉相 關(guān)參數(shù))是傳感器子系統(tǒng)208的部分。此外,RAW和SoC傳感器也可在傳感器子系統(tǒng)208中 使用。另外,在實(shí)施例中,傳感器子系統(tǒng)208還可包括傳感器行為,例如HDR(高動(dòng)態(tài)范圍) 和其他形式的計(jì)算成像(多焦平面成像,等)。
[0030] 圖像源206采取傳感器子系統(tǒng)208的輸出并且將它封裝以用于在CSI-3虛擬信道 204上傳輸。如在其中數(shù)據(jù)可被格式化或傳遞的RAW傳感器的情況下,該封裝可是簡(jiǎn)單的, 或它可是復(fù)雜的,這包括例如產(chǎn)生YUV或JPEG輸出等處理功能。每個(gè)圖像源206的輸出可 以由CSI-3虛擬信道204選為輸入來(lái)提供圖像數(shù)據(jù)到主機(jī)的傳輸。CSI-3虛擬信道204代 表由相同數(shù)據(jù)源產(chǎn)生的屬性和圖像包序列。在實(shí)施例中,CCS圖像源206可產(chǎn)生一個(gè)類型 的像素?cái)?shù)據(jù)以及嵌入式屬性。CSI-3虛擬信道204用于代表并且管理圖像數(shù)據(jù)的傳輸,而圖 像源206代表并且管理圖像數(shù)據(jù)的產(chǎn)生和處理。在CSI-3虛擬信道204與圖像源206之間 存在一對(duì)一關(guān)系。
[0031] 照明子系統(tǒng)214提供對(duì)拍攝裝置的照明控件(例如閃光燈、視頻燈、減輕紅眼燈和 記錄指示燈)的控制。拍攝裝置200可可選地支持照明子系統(tǒng)214能力的任何組合。另外, 元數(shù)據(jù)存儲(chǔ)子系統(tǒng)對(duì)軟件提供檢索以及可選地寫入由拍攝裝置子系統(tǒng)200存儲(chǔ)的非易失 性數(shù)據(jù)的共同機(jī)構(gòu)。元數(shù)據(jù)存儲(chǔ)可存儲(chǔ)模塊識(shí)別和圖像調(diào)諧參數(shù),以及存儲(chǔ)任何解釋代碼 來(lái)實(shí)現(xiàn)超越模塊本機(jī)支持的CCS功能性。此外,元數(shù)據(jù)存儲(chǔ)系統(tǒng)還可以是對(duì)于CSI-3的數(shù) 據(jù)塊存儲(chǔ)。
[0032] 命令傳輸機(jī)構(gòu)218使本機(jī)支持的CCS命令能夠傳輸?shù)脚臄z裝置子系統(tǒng)200,其包 含CSI-3接口。其他接口(例如CSI-2)可定義并且實(shí)現(xiàn)對(duì)于命令集的備選傳輸。命令傳輸 機(jī)構(gòu)218可訪問(wèn)對(duì)于拍攝裝置(CPC)220的配置協(xié)議,其可以將用于配置和控制拍攝裝置應(yīng) 用的所有命令和CSI-3屬性222傳輸?shù)矫顐鬏敊C(jī)構(gòu)218。此外,拍攝裝置控制接口(CCI) 224可用于對(duì)CSI-2數(shù)據(jù)提供支持CSI-2互連的橋梁功能。
[0033] 許多CCS命令可以引起影響CSI-3屬性222的改變,其具有在CSI-3虛 擬信道204與CCS圖像源206之間的特定重疊。例如,設(shè)置傳感器標(biāo)準(zhǔn)配置(Set_ SensorStandardConfigO)命令支持設(shè)置包括圖像大小的傳感器模式。例如CSI3_XSIZE、 CSI3_XLEN、CSI3_YSIZE、CSI3_YLEN和其他這樣的CSI-3屬性等虛擬信道屬性(如果實(shí)現(xiàn)的 話)應(yīng)返回這樣的值,其準(zhǔn)確反映如由CCS命令設(shè)置的當(dāng)前拍攝裝置配置。
[0034] 因此,CSI-3虛擬信道屬性用于控制用于將圖像和相關(guān)數(shù)據(jù)從CSI-3兼容設(shè)備傳 輸?shù)街鳈C(jī)的參數(shù)。這些屬性包括對(duì)于圖像大小、數(shù)據(jù)格式、時(shí)序和誤差處理的控制,以及與 每個(gè)幀一起發(fā)送的嵌入式元數(shù)據(jù)。CCS命令還控制具有相同圖像質(zhì)量中的許多,例如大小、 格式和時(shí)序。向傳感器發(fā)出的CCS命令的效應(yīng)除其他外可包括CCS虛擬信道屬性。例如, CCS命令可以是Set_StandardConfig(l),其可假設(shè)對(duì)于1920x1080、每秒30幀操作來(lái)配置 傳感器。CSI-3GettoCSI3_YSIZE屬性然后可返回1080。如果然后發(fā)出屬性Set來(lái)使 CSI3_YSIZE變成2000,Get_StandardConfig()CCS命令可仍返回" 1",盡管當(dāng)前配置(具有 2000的YSIZE)與之前設(shè)置的CCS狀態(tài)不一致也如此。
[0035] 傳感器系統(tǒng)208和圖像源子系統(tǒng)206子系統(tǒng)可使用許多配置來(lái)實(shí)現(xiàn)。因此,正確 配置傳感器子系統(tǒng)208對(duì)于主機(jī)軟件可富有挑戰(zhàn)。CCS可以使用傳感器模式來(lái)幫助正確配 置傳感器子系統(tǒng)208。傳感器模式是由傳感器供應(yīng)商定義的可以從其選擇軟件的操作配置 集。一般,將存在有限的配置集,其將對(duì)代表拍攝裝置將支持的預(yù)期使用的指定拍攝裝置呈 現(xiàn)。例如,拍攝裝置可支持對(duì)于8兆像素RAW10靜態(tài)優(yōu)化模式、1080p/30視頻優(yōu)化MJPEG 模式和QVGAYUV預(yù)覽模式。
[0036] (1^可包括傳感器標(biāo)準(zhǔn)配置(56118(^5七311(^1(1&311;1^8())命令,其可以用于通過(guò)選 擇期望的配置指數(shù)來(lái)設(shè)置期望的操作模式。拍攝裝置然后將自我配置成合適的時(shí)序和關(guān)聯(lián) 的設(shè)定值。主機(jī)軟件可以使用信息傳感器標(biāo)準(zhǔn)配置命令(11^0_36118(^5七311(^1(1&311;1^8()) 命令來(lái)檢索詳述傳感器子系統(tǒng)208所支持的模式的表。傳感器子系統(tǒng)208不限于采用表中 列出的模式操作。具有拍攝裝置子系統(tǒng)200的額外知識(shí)的主機(jī)軟件可使用額外命令,例如 設(shè)置傳感器時(shí)序(SeLSensorTimings)命令來(lái)顯式設(shè)置時(shí)序以便揭露額外的傳感器能力。
[0037]圖3是根據(jù)實(shí)施例用于轉(zhuǎn)換拍攝裝置命令的系統(tǒng)300的框圖。CCS用于使標(biāo)準(zhǔn)機(jī) 構(gòu)能夠控制傳感器。對(duì)CCS定義共同命令集。CCS可分成本機(jī)、需要和可選命令。命令對(duì)定 義的拍攝裝置模型(例如拍攝裝置子系統(tǒng)200)起作用。
[0038] 本機(jī)命令是可以由傳感器子系統(tǒng)直接執(zhí)行而不需要主機(jī)轉(zhuǎn)換支持的命令。因?yàn)榕?攝裝置子系統(tǒng)可指示它可以接受并且本機(jī)處理命令,CCS中的任何命令可以是本機(jī)命令。因 此,聲稱CCS支持的拍攝裝置子系統(tǒng)應(yīng)對(duì)所有本機(jī)需要命令提供本機(jī)支持。
[0039] 聲稱CCS支持的拍攝裝置子系統(tǒng)還應(yīng)支持需要命令,但支持可使用本文描述的基 于主機(jī)的轉(zhuǎn)換設(shè)施來(lái)提供。拍攝裝置子系統(tǒng)可支持所有可選命令。一般,本機(jī)需要的命令 是識(shí)別CCS能力并且(如必需的話)檢索支持命令轉(zhuǎn)換所必需的信息所必需的簡(jiǎn)單命令。一 旦轉(zhuǎn)換設(shè)施正常運(yùn)行,則可以通過(guò)該機(jī)構(gòu)來(lái)支持后續(xù)命令。因此,主機(jī)轉(zhuǎn)換命令對(duì)拍攝裝置 提供不本機(jī)支持全CCS命令集以仍與寫入CCS命令的主機(jī)軟件一起工作的能力。大部分命 令可以通過(guò)轉(zhuǎn)換來(lái)支持,但傳感器必須支持少數(shù)本機(jī)強(qiáng)制性命令,因?yàn)樾枰鼈兪罐D(zhuǎn)換正 常運(yùn)行。轉(zhuǎn)換設(shè)施包括但不限于,具有執(zhí)行沙箱、代碼存儲(chǔ)的轉(zhuǎn)換引擎,和編譯代碼的方法。 在實(shí)施例中,在沙箱中運(yùn)行的代碼的輸出是CSI-3屬性獲取/設(shè)置事務(wù),其然后可以在傳感 器上執(zhí)行。
[0040] 在實(shí)施例中,定義傳輸機(jī)構(gòu)來(lái)控制命令在傳感器(例如傳感器子系統(tǒng)208 (圖2)) 上的執(zhí)行。傳輸機(jī)構(gòu)可以是如在圖2中描述的命令傳輸機(jī)構(gòu)218。傳輸機(jī)構(gòu)還可提供這樣 的機(jī)構(gòu),一些復(fù)雜命令可以通過(guò)該機(jī)構(gòu)在主機(jī)設(shè)備上執(zhí)行,并且轉(zhuǎn)換成更簡(jiǎn)單的命令集來(lái) 減少傳感器復(fù)雜性和成本。另外,在實(shí)施例中,元數(shù)據(jù)可以從拍攝裝置子系統(tǒng)檢索來(lái)幫助軟 件和制造需要。
[0041] 使用偽代碼表示(其使調(diào)用命令所利用的方法抽象化)來(lái)引用CCS的拍攝裝置命 令。盡管命令可使用CSI-3拍攝裝置可以提供支持所憑借的技術(shù)來(lái)描述,相同的命令可以 應(yīng)用于其他拍攝裝置子系統(tǒng),例如CSI-2,但使用其他命令傳輸機(jī)構(gòu)或軟件轉(zhuǎn)換支持。
[0042] 每個(gè)命令具有可受到或不受支持的若干變體。'Get_'變體未采取參數(shù)但返回?cái)?shù)據(jù) 集,而'Set_'變體采取參數(shù)集并且返回狀態(tài)代碼。'Info_'變體返回靜態(tài)數(shù)據(jù)塊,其可有助 于軟件理解特定能力、范圍和可用選項(xiàng)。
[0043] 例如,上文描述的信息傳感器標(biāo)準(zhǔn)配置命令(1]1;1^〇_36118(^3丨311(^1(1&311;1^8())命 令返回?cái)?shù)據(jù)表,其定義傳感器支持、軟件可以從其選擇的模式和配置。軟件然后可以使用設(shè) 置傳感器標(biāo)準(zhǔn)配置命令(561:_36118(^3丨311(^1(1&311;1^〖(111(161))命令(其采取單個(gè)參數(shù)指數(shù) 作為輸入并且作為響應(yīng)返回狀態(tài)代碼),來(lái)將傳感器配置成期望模式。當(dāng)前操作模式可以使 用獲取傳感器標(biāo)準(zhǔn)配置命令(〇61:_56118(^5丨311(^1(1&311;1^〖())命令來(lái)讀取,該命令未采取輸 入?yún)?shù)但返回當(dāng)前活動(dòng)指數(shù)作為響應(yīng)。
[0044] 66丨_/36丨_/11^〇_結(jié)構(gòu)適合CSI-3屬性獲取/設(shè)置架構(gòu)的頂部。另外,它實(shí)現(xiàn) 所支持的命令的細(xì)粒度指示,以及對(duì)具有例如受拍攝裝置本機(jī)支持的Get_/Set_變體的支 持,同時(shí)僅通過(guò)命令轉(zhuǎn)換來(lái)支持Info_變體。
[0045] 盡管CCS意在對(duì)拍攝裝置提供完整控制集,其他機(jī)構(gòu)可用于實(shí)現(xiàn)超越CCS所揭示 的(例如供應(yīng)商特定命令和屬性獲取/設(shè)置機(jī)構(gòu))控制。供應(yīng)商特定命令可用于提供在CCS 架構(gòu)內(nèi)擴(kuò)展所定義的CCS命令的功能性。這些供應(yīng)商特定命令使用命令傳輸架構(gòu)。
[0046] 除供應(yīng)商特定命令外,軟件可持續(xù)使用由CSI-3規(guī)范定義的屬性獲取/設(shè)置機(jī)構(gòu) 來(lái)提供無(wú)法容易使用在該文獻(xiàn)中定義的命令傳輸架構(gòu)來(lái)表達(dá)或?qū)崿F(xiàn)的功能性。如果使用供 應(yīng)商特定或直接屬性獲取/設(shè)置命令,由CCS返回的值可損壞。因此,在實(shí)現(xiàn)供應(yīng)商特定 命令或?qū)傩垣@取/設(shè)置機(jī)構(gòu)時(shí),應(yīng)確認(rèn)與CCS的潛在交互。例如,如果供應(yīng)商特定命令用 于規(guī)定標(biāo)準(zhǔn)命令集不支持的透鏡陰影校正機(jī)構(gòu),獲取透鏡陰影(GetLensShadingO)命令可 返回?fù)p壞數(shù)據(jù),或CCS預(yù)期外的數(shù)據(jù)。
[0047] 系統(tǒng)300可包括主機(jī)設(shè)備302。該主機(jī)設(shè)備302可以是臺(tái)式機(jī)、膝上型電腦、觸摸 板、個(gè)人計(jì)算機(jī)、移動(dòng)電話設(shè)備或類似物。此外,如上文描述的主機(jī)設(shè)備100(圖1)可以是 主機(jī)設(shè)備302。該主機(jī)設(shè)備302可耦合于拍攝裝置子系統(tǒng)304。拍攝裝置子系統(tǒng)304可以是 圖像設(shè)備120(圖1)或拍攝裝置子系統(tǒng)200(圖2)。如上文描述的,拍攝裝置子系統(tǒng)304可 經(jīng)由CSI-3鏈路耦合于主機(jī)設(shè)備302。拍攝裝置子系統(tǒng)304可進(jìn)一步包括元數(shù)據(jù)存儲(chǔ)306。 該元數(shù)據(jù)存儲(chǔ)306可提供用于存儲(chǔ)到拍攝裝置子系統(tǒng)304和從拍攝裝置子系統(tǒng)304所存儲(chǔ) 的數(shù)據(jù)檢索的共同機(jī)構(gòu)。元數(shù)據(jù)存儲(chǔ)306可存儲(chǔ)用于轉(zhuǎn)換拍攝裝置命令的轉(zhuǎn)換代碼308。 另外,元數(shù)據(jù)存儲(chǔ)306還可存儲(chǔ)識(shí)別和圖像調(diào)諧參數(shù)。拍攝裝置子系統(tǒng)304可進(jìn)一步包括 CSI-3屬性。在實(shí)施例中,屬性可用于訪問(wèn)拍攝裝置子系統(tǒng)的資源。另外,在實(shí)施例中,屬性 可用于檢測(cè)事件。CSI-3屬性310從轉(zhuǎn)換設(shè)施接收轉(zhuǎn)換命令。該轉(zhuǎn)換設(shè)施可以是轉(zhuǎn)換引擎 312〇
[0048] 轉(zhuǎn)換引擎312可自拍攝裝置子系統(tǒng)304外部定位。例如,轉(zhuǎn)換引擎312可定位在 主機(jī)設(shè)備302上。在另一個(gè)示例中,轉(zhuǎn)換引擎312可在主機(jī)設(shè)備302和拍攝裝置子系統(tǒng)304 兩者外部。另外,轉(zhuǎn)換引擎312可耦合于拍攝裝置子系統(tǒng)304。
[0049] 轉(zhuǎn)換引擎312可將進(jìn)入的命令轉(zhuǎn)換成對(duì)拍攝裝置子系統(tǒng)304的配置特定的圖像命 令。特別地,轉(zhuǎn)換引擎312可將進(jìn)入的命令轉(zhuǎn)換成拍攝裝置子系統(tǒng)304能夠處理的訪問(wèn)。 例如,轉(zhuǎn)換引擎312可將復(fù)雜的輸入命令轉(zhuǎn)換成更簡(jiǎn)單的命令。在另一個(gè)示例中,轉(zhuǎn)換引擎 312可將輸入命令轉(zhuǎn)換成CSI-3屬性Get-Set請(qǐng)求。
[0050] 為了轉(zhuǎn)換命令,轉(zhuǎn)換引擎312可使用轉(zhuǎn)換代碼308。轉(zhuǎn)換引擎使用從拍攝裝置子系 統(tǒng)304的元數(shù)據(jù)存儲(chǔ)306檢索的高級(jí)轉(zhuǎn)換代碼308。轉(zhuǎn)換代碼308還可在拍攝裝置子系統(tǒng) 304外部存儲(chǔ)。特別地,轉(zhuǎn)換代碼308可存儲(chǔ)在平臺(tái)存儲(chǔ)314內(nèi)。在示例中,平臺(tái)存儲(chǔ)314 可包括在主機(jī)設(shè)備302上。在另一個(gè)示例中,平臺(tái)存儲(chǔ)314可在主機(jī)設(shè)備302和拍攝裝置 子系統(tǒng)304兩者外部。平臺(tái)存儲(chǔ)314可耦合于主機(jī)設(shè)備302。平臺(tái)存儲(chǔ)314可以是任何類 型的存儲(chǔ)介質(zhì)。例如,平臺(tái)存儲(chǔ)314可以是RAM存儲(chǔ)器、BIOS或盤驅(qū)動(dòng)器。轉(zhuǎn)換代碼308可 采用主機(jī)熟悉的方式存儲(chǔ),使得轉(zhuǎn)換引擎可定位并且訪問(wèn)轉(zhuǎn)換代碼308。轉(zhuǎn)換代碼308還可 存儲(chǔ)在其他平臺(tái)存儲(chǔ)位點(diǎn)中或來(lái)自其他平臺(tái)存儲(chǔ)位點(diǎn)。存儲(chǔ)轉(zhuǎn)換代碼所在的位點(diǎn)稱為轉(zhuǎn)換 代碼存儲(chǔ)。根據(jù)平臺(tái)需要,主機(jī)軟件將設(shè)計(jì)成從合適的代碼存儲(chǔ)檢索代碼。轉(zhuǎn)換引擎308 執(zhí)行代碼來(lái)將提供的CCS命令轉(zhuǎn)換成拍攝裝置子系統(tǒng)可以執(zhí)行的訪問(wèn),其可以是CSI-3屬 性獲取/設(shè)置PDU包。CSI-3屬性獲取/設(shè)置PDU包可發(fā)送到拍攝裝置子系統(tǒng)來(lái)引起 CCS命令所請(qǐng)求的行為。
[0051] 轉(zhuǎn)換引擎312可適于將轉(zhuǎn)換的命令發(fā)送到拍攝裝置子系統(tǒng)304。例如,轉(zhuǎn)換引擎 312可將轉(zhuǎn)換的命令發(fā)送到CSI-3屬性310。轉(zhuǎn)換引擎312可適于僅轉(zhuǎn)換拍攝裝置子系 統(tǒng)304本機(jī)不支持的命令。因此,不是對(duì)于拍攝裝置的所有命令都需要轉(zhuǎn)換。為了確定 應(yīng)轉(zhuǎn)換哪些命令,轉(zhuǎn)換引擎308應(yīng)首先在拍攝裝置子系統(tǒng)304上執(zhí)行獲取CCS支持(Get_ CCSSupport())命令。在實(shí)施例中,如果返回有效的CCS支持表,則轉(zhuǎn)換引擎308可以使用 提供的信息來(lái)直接將可以本機(jī)處理的命令傳遞到拍攝裝置子系統(tǒng)304。另外,在實(shí)施例中, 如果可以本機(jī)支持主機(jī)所需要的所有命令,則不需要轉(zhuǎn)換引擎或轉(zhuǎn)換代碼存儲(chǔ)。采用該方 式,主機(jī)設(shè)備302可評(píng)估拍攝裝置子系統(tǒng)304來(lái)確定拍攝裝置子系統(tǒng)304是否可以在發(fā)起 命令轉(zhuǎn)換之前處理命令。如果拍攝裝置子系統(tǒng)304能夠處理命令,主機(jī)設(shè)備302可將輸入 命令直接發(fā)送到拍攝裝置子系統(tǒng)304。在示例中,命令可直接輸入轉(zhuǎn)換引擎312。在另一個(gè) 示例中,命令可輸入主機(jī)設(shè)備302并且然后傳輸?shù)睫D(zhuǎn)換引擎312。
[0052] 轉(zhuǎn)換引擎312可在設(shè)備驅(qū)動(dòng)器(例如設(shè)備驅(qū)動(dòng)器126 (圖1))上實(shí)現(xiàn)的運(yùn)行時(shí)解釋 語(yǔ)言沙箱內(nèi)實(shí)現(xiàn)。采用該方式,保護(hù)主機(jī)設(shè)備的內(nèi)核以免受可從轉(zhuǎn)換引擎312發(fā)出的任意 代碼的影響。
[0053] 在實(shí)施例中,CCS內(nèi)的一些命令是可選的或不適用于特定拍攝裝置子系