本國際申請要求于2014年4月23日提交的申請?zhí)枮?4/260,091的美國專利申請的優(yōu)先權(quán)的權(quán)益,據(jù)此將其全部內(nèi)容通過整體引用并入本文。
版權(quán)聲明
本專利文件的公開內(nèi)容的一部分包含受版權(quán)保護(hù)的材料。版權(quán)所有者不反對任何人對專利文件或?qū)@_內(nèi)容的復(fù)制,因為它出現(xiàn)在專利商標(biāo)局的專利文件或記錄中,但是無論什么保留所有的版權(quán)權(quán)利。以下聲明適用于如在下文以及在形成本文件的一部分的附圖中描述的軟件和數(shù)據(jù):版權(quán)2013,eBay公司,保留所有權(quán)利。
技術(shù)領(lǐng)域
本文公開的主題總體上涉及增強(qiáng)數(shù)字圖像。在一些示例實施例中,本公開內(nèi)容涉及用于對象照片上的鏡面高光的系統(tǒng)和方法。
附圖說明
一些實施例通過示例的方式示出并且不限于附圖中的圖。
圖1是根據(jù)一些示例實施例的適合于記錄對象的圖像并且用于基于所記錄的圖像來生成和/或查看合成圖像的移動設(shè)備。
圖2是根據(jù)一些示例實施例的適合于存儲對象的圖像并且用于基于所記錄的圖像來生成和/或發(fā)送合成圖像的網(wǎng)絡(luò)架構(gòu)。
圖3是在一些示例實施例中使用的具有鏡面高光的對象的示例圖像。
圖4是根據(jù)一些示例實施例的用于記錄具有鏡面高光的對象的過程中的第一步驟的示例圖像。
圖5示出了根據(jù)一些示例實施例的在用于記錄具有鏡面高光的對象的過程中的其他步驟的示例圖像。
圖6A和6B示出了根據(jù)一些示例實施例的用于記錄具有鏡面高光的對象的過程中的其它步驟的示例圖像。
圖7示出了根據(jù)一些示例實施例的在用于記錄具有鏡面高光的對象的過程中的其它步驟的示例圖像。
圖8A和8B示出了根據(jù)一些示例實施例的查看具有鏡面高光的對象的示例圖像。
圖9是根據(jù)一些示例實施例的示出了用于生成對象的合成圖像的示例操作的流程圖。
圖10是根據(jù)一些示例實施例的示出了用于查看對象的合成圖像的示例操作的流程圖。
圖11是示出了根據(jù)一些示例實施例的機(jī)器的組件的框圖,該機(jī)器能夠從機(jī)器可讀介質(zhì)讀取指令并且執(zhí)行本文論述的方法中的任何一個或多個方法。
具體實施方式
呈現(xiàn)了用于生成和查看對象的具有鏡面高光的圖像的示例方法、裝置和系統(tǒng)。在一些示例實施例中,圖像可以基于對顯示圖像的顯示設(shè)備的運(yùn)動控制來顯示改變中的鏡面性質(zhì)。
隨著數(shù)字圖像變得更加普遍,期望通過數(shù)字手段來改善對現(xiàn)實生活對象的呈現(xiàn)。一般而言,存在一種期望,即:以盡可能真實的通過數(shù)字手段的描繪來表現(xiàn)現(xiàn)實生活對象和環(huán)境。然而,一些類型的對象比其它對象更難以有效地捕獲和顯示。具體地,作為示例,具有至少一些反射或鏡面性質(zhì)的對象(諸如,拋光的寶石、水晶瓶、珠寶、有光澤的塑料對象等等)傾向于在圖片中未被良好地捕獲,因為僅僅通過單獨的靜態(tài)圖片不能充分體現(xiàn)這些對象的反射亮度。例如,查看者僅僅利用單個靜態(tài)圖像可能不能夠充分理解具有很多反射角的寶石。一般而言,當(dāng)試圖顯示在單個數(shù)字圖像中時,具有鏡面或反射性質(zhì)的對象(其中光在很多不同方向上從對象反射出去)傾向于失去它們的光澤或亮度。
對于某些商家或行業(yè)而言,轉(zhuǎn)換到在線顯示和陳列室可能因此是困難的。例如,當(dāng)嘗試在線廣告時,珠寶零售商和設(shè)計師在表達(dá)其產(chǎn)品的最佳切面時很困難。隨著更多的產(chǎn)品和商家依賴于在線購物和銷售,用于顯示在線商品的當(dāng)前手段可能對于某些商品來說是不充分的,并且因此這些商家或行業(yè)可能失去客戶和/或銷售。因此期望改善用于數(shù)字地記錄和查看對象(并且特別地記錄和查看具有反射或鏡面性質(zhì)的對象)的手段。這些問題以及更多問題可以通過以下公開來解決。
本公開的方案討論用于記錄和查看對象的具有鏡面高光的圖像的方法和系統(tǒng)。在一些示例實施例中,可以從各個角度“傾斜”對象的數(shù)字圖像,并且從對象反射出的光可以根據(jù)圖像的傾斜而變化。在一些示例實施例中,雖然對于查看者而言可能看起來僅僅存在呈現(xiàn)在顯示屏上的單個對象圖像,但是對象的圖像可能實際上是同一對象的多個圖像的合成混合,只不過有在多個圖像中的每個圖像中從不同的角度照射在對象上的至少一個光源。取決于查看者對合成圖像的查看角度,基于由顯示設(shè)備中的一個或多個陀螺儀和/或加速度計測量出的傾斜向量,例如,這些多個圖像中的一些可能變得完全透明,使得它們基于所述查看角度是不可查看的,而該多個圖像中的一個或多個可以變得更不透明,因此生成對象的某種混合圖像,其顯示從對象反射出的某個角度的光。將根據(jù)本公開的附圖在本文呈現(xiàn)更詳細(xì)的描述。
參考圖1,根據(jù)一些示例實施例,呈現(xiàn)了示出移動設(shè)備100的框圖。根據(jù)至少一些示例實施例,移動設(shè)備100可以配置為記錄對象的具有鏡面高光的圖像以及查看圖像。移動設(shè)備100可以配置為記錄對象的圖像,其中每個圖像具有從不同角度指向?qū)ο蟮墓庠础@?,攝像機(jī)鏡頭185可以配置為接收圖像數(shù)據(jù),圖像數(shù)據(jù)可以由圖像記錄器180使用來記錄對象的圖像,攝像機(jī)鏡頭185由圖像記錄器180控制。移動設(shè)備100可以備選地或附加地配置為查看對象的合成圖像,合成圖像示出根據(jù)傾斜向量指到對象上的各種角度的光。例如,根據(jù)一些示例實施例,顯示器150可以配置為顯示多個圖像和/或合成圖像。移動設(shè)備100可以包括處理器110。處理器110可以是適合于移動設(shè)備的各種不同類型的可商購處理器中的任何處理器(例如,Xscale架構(gòu)微處理器、沒有互鎖流水線級(MIPS)架構(gòu)處理器的微處理器或另一種類型的處理器)。根據(jù)一些示例實施例,處理器110可以配置為將對象的多個圖像組合為合成圖像。諸如隨機(jī)存取存儲器(RAM)、閃存或其它類型的存儲器的存儲器120通??山尤氲教幚砥鳌4鎯ζ?20可以適于存儲操作系統(tǒng)(OS)130以及應(yīng)用程序140,例如用于使用多個圖像生成對象的合成圖像的移動應(yīng)用,和/或用于查看合成圖像的移動應(yīng)用。處理器110可以直接或經(jīng)由適當(dāng)?shù)闹虚g硬件耦合到顯示器150和一個或多個輸入/輸出(I/O)設(shè)備160,例如小鍵盤、觸摸面板傳感器、麥克風(fēng)等等。類似地,在一些實施例中,處理器110可以耦合到與天線190接口連接的收發(fā)器170。取決于移動設(shè)備100的性質(zhì),收發(fā)器170可以配置為經(jīng)由天線190發(fā)送和接收蜂窩網(wǎng)絡(luò)信號、無線數(shù)據(jù)信號或其它類型的信號。以這種方式,可以建立與網(wǎng)絡(luò)(諸如,下文更詳細(xì)論述的圖2的網(wǎng)絡(luò)204)的連接。移動設(shè)備100還可以包括用于獲得移動設(shè)備100的3維取向的一個或多個裝置。例如,一個或多個陀螺儀和/或加速度計(未示出)可以內(nèi)置在移動設(shè)備中,陀螺儀和/或加速度計配置為確定移動設(shè)備100與垂直平面和/或水平面的傾斜程度。
參考圖2,根據(jù)一些示例實施例,示出了基于客戶端-服務(wù)器的高層網(wǎng)絡(luò)架構(gòu)200。對于本領(lǐng)域技術(shù)人員可能顯而易見的是,網(wǎng)絡(luò)架構(gòu)200可以包括用于利用本公開的方案的系統(tǒng)、應(yīng)用、模塊和/或其它手段。例如,網(wǎng)絡(luò)架構(gòu)200可以包括用于訪問對象的多個圖像和用于基于多個圖像并且根據(jù)本公開的方案生成合成圖像的手段。網(wǎng)絡(luò)架構(gòu)200還可以配置為向一個或多個查看者傳送合成圖像。在一些示例實施例中,聯(lián)網(wǎng)的系統(tǒng)202可以促進(jìn)基于網(wǎng)絡(luò)的市場或支付系統(tǒng)220(經(jīng)由網(wǎng)絡(luò)204(例如,因特網(wǎng)或廣域網(wǎng)(WAN))向一個或多個客戶端設(shè)備210和212提供服務(wù)器側(cè)功能)。圖2示出了例如在各自的客戶端設(shè)備210和212上執(zhí)行的web客戶端206(例如,瀏覽器,諸如由開發(fā)的Internet瀏覽器)和編程客戶端208?;诰W(wǎng)絡(luò)的市場系統(tǒng)220可以包括用于存儲和顯示合成圖像的網(wǎng)站或其它中央儲存庫。圖像可以例如用作在市場系統(tǒng)220中待售的產(chǎn)品的廣告或描繪。
客戶端設(shè)備210和212的示例可以包括但不限于移動電話、臺式計算機(jī)、膝上型計算機(jī)、便攜式數(shù)字助理(PDA)、智能電話、平板電腦、超級本、上網(wǎng)本、筆記本電腦、多處理器系統(tǒng)、基于微處理器的或可編程消費類電子產(chǎn)品、游戲控制臺、機(jī)頂盒或用戶可以利用以訪問聯(lián)網(wǎng)系統(tǒng)202的任何其它通信設(shè)備。示例客戶端設(shè)備210和212可以與圖1中描述的移動設(shè)備100相一致。在一些實施例中,客戶端設(shè)備210和/或212可以包括顯示信息(例如,以用戶界面的形式)和圖像的顯示模塊(未示出)。在另外的實施例中,客戶端設(shè)備210和/或212可以包括觸摸屏、加速度計、陀螺儀、攝像機(jī)、麥克風(fēng)、全球定位系統(tǒng)(GPS)設(shè)備等等中的一個或多個。在一些示例實施例中,聯(lián)網(wǎng)的系統(tǒng)202是基于網(wǎng)絡(luò)的市場,其響應(yīng)于對產(chǎn)品列表的請求,發(fā)布包括在基于網(wǎng)絡(luò)的市場上可購得的產(chǎn)品的項目列表的發(fā)行物(publication),并且管理針對這些市場交易的支付。產(chǎn)品列表可以包括一個或多個不同產(chǎn)品的一個或多個圖像。圖像可以包括如本文描述的產(chǎn)品的一個或多個合成圖像。一個或多個用戶205可以是與客戶端設(shè)備210和212交互的人、機(jī)器或其它裝置。在實施例中,用戶205不是網(wǎng)絡(luò)架構(gòu)200的一部分,但是可以經(jīng)由客戶端設(shè)備210和212或另一手段與網(wǎng)絡(luò)架構(gòu)200進(jìn)行交互。
應(yīng)用程序界面(API)服務(wù)器214和web服務(wù)器216耦合到一個或多個應(yīng)用服務(wù)器218并且分別向其提供編程界面和web界面。應(yīng)用服務(wù)器218可以托管一個或多個市場系統(tǒng)220,其可以包括一個或多個模塊或應(yīng)用并且其可以體現(xiàn)為硬件、軟件、固件或其任何組合。應(yīng)用服務(wù)器218繼而示出為耦合到一個或多個數(shù)據(jù)庫服務(wù)器224,其促進(jìn)對一個或多個信息存儲庫或數(shù)據(jù)庫226的訪問。在一些示例實施例中,數(shù)據(jù)庫226是存儲將要發(fā)布給市場系統(tǒng)220的信息(例如,產(chǎn)品的發(fā)行物或列表、圖像等等)的存儲設(shè)備。根據(jù)示例實施例,數(shù)據(jù)庫226還可以存儲數(shù)字商品信息。
市場系統(tǒng)220可以向訪問聯(lián)網(wǎng)的系統(tǒng)202的用戶205提供多個市場功能和服務(wù)。雖然市場系統(tǒng)220在圖2中示出為形成聯(lián)網(wǎng)的系統(tǒng)202的一部分,但是應(yīng)當(dāng)理解的是,在備選實施例中,系統(tǒng)220可以形成與聯(lián)網(wǎng)的系統(tǒng)202分離且不同的支付服務(wù)的一部分。
此外,雖然在圖2中示出的基于客戶端-服務(wù)器的網(wǎng)絡(luò)架構(gòu)200采用客戶端-服務(wù)器架構(gòu),但是本發(fā)明主題當(dāng)然不限于這樣的架構(gòu),并且可以同樣在例如分布式或?qū)Φ燃軜?gòu)系統(tǒng)中找到應(yīng)用。各種市場系統(tǒng)220還可以實現(xiàn)為不是必須具有聯(lián)網(wǎng)能力的獨立的軟件程序。
web客戶端206經(jīng)由web服務(wù)器216支持的web界面訪問各種市場系統(tǒng)220。類似地,編程客戶端208經(jīng)由API服務(wù)器214提供的編程界面訪問市場系統(tǒng)220提供的各種服務(wù)和功能。編程客戶端208可以例如是賣方應(yīng)用(例如,由公司開發(fā)的Turbo Lister應(yīng)用),其使得賣方能夠以離線方式在聯(lián)網(wǎng)的系統(tǒng)202上創(chuàng)作和管理列表,并且在編程客戶端208和聯(lián)網(wǎng)的系統(tǒng)202之間執(zhí)行批量模式(batch-mode)通信。
此外,在第三方服務(wù)器230上執(zhí)行的第三方應(yīng)用228被示出為經(jīng)由API服務(wù)器214提供的編程界面對聯(lián)網(wǎng)的系統(tǒng)202進(jìn)行編程訪問。例如,第三方應(yīng)用228利用從聯(lián)網(wǎng)的系統(tǒng)202檢索的信息可以支持在第三方托管的網(wǎng)站上的一個或多個特征或功能。第三方網(wǎng)站可以例如提供由聯(lián)網(wǎng)的系統(tǒng)202的相關(guān)應(yīng)用支持的一個或多個促銷、市場或支付功能。第三方服務(wù)器230可以通過例如對在合成圖像中示出的產(chǎn)品進(jìn)行廣告來幫助激增(proliferate)根據(jù)本公開的合成圖像的顯示。
參考圖3,示出了對象310的示例圖像300,其可以受益于根據(jù)本公開的方案而增強(qiáng)。對象310僅被用作一個示例,并且示例實施例當(dāng)然可以利用其它對象。本文中,對象310可以是類似菠蘿的玻璃或水晶花瓶。與正常的菠蘿一樣,對象310在其外部上包含很多邊緣和凹槽,當(dāng)光照射在其上時,像其這樣的事物在很多方向上反射光。不幸的是,如果對象310僅僅顯示為單個圖像,則可能難以充分理解光從花瓶的該很多有角度的切面照射出得有多么明亮。相應(yīng)地,期望出售這樣的產(chǎn)品的商人可能不覺得在線發(fā)布對象310的單個圖片將會有效地捕捉到其全部價值。即使示出對象310的來自不同的側(cè)面的多個圖片也可能是不足的,因為對象310(在本示例中是菠蘿花瓶)是相對徑向?qū)ΨQ的,并且因此圍繞對象310的每個側(cè)面將不會提供差異很大的視角。此外,示出單個靜態(tài)圖像仍將不能捕捉到對象310的很多邊緣和凹槽意圖示出的全部閃光(sparkle)。一般而言,應(yīng)當(dāng)理解的是,對象的鏡面高光(例如對象310的很多邊緣和凹槽的反射性質(zhì))未被單個靜態(tài)圖像充分捕捉到的,不管該圖像有多詳細(xì)。
參考圖4,對象310的示例圖像400示出了用于根據(jù)本公開的方案增強(qiáng)鏡面高光的過程的開始。如前所述,可以基于處于同一位置的對象310的多個圖像來生成對象310的合成圖像,但在每個圖像中,光源在從不同的角度指向?qū)ο?10。合成圖像最終可勉強(qiáng)稱得上是交互式圖像,該交互式圖像被配置為在顯示設(shè)備中進(jìn)行操縱以基于多個圖像中的一個或多個并且根據(jù)顯示設(shè)備的傾斜方向來顯示對象310的變化中的光角度。示例過程可以開始于記錄對象310的第一圖像,第一圖像包括以第一角度從光源指向?qū)ο?10(例如,菠蘿花瓶)的光。在這種情況下,在來自對象310的右上側(cè)處的閃光燈(未示出)可以將光照射到對象310處?;趫D像400中由對象310形成的陰影(例如,陰影410)并且在一些情況下還基于對象310被照得最明亮的部分(例如,亮點420),光的角度可以是顯而易見的。
作為用于實踐本公開的至少一些方案的過程的示例,拍攝者可以將攝像機(jī)或容納攝像機(jī)或其它圖像記錄器的移動設(shè)備定位(position)在三腳架或其它穩(wěn)定裝置上。攝像機(jī)或移動設(shè)備的示例可以包括移動設(shè)備100。對象310可被固定地定位在某個穩(wěn)定表面(例如牢固的(steady)凳子或桌子)上。攝像機(jī)可以被定位以記錄對象310的多個圖像。根據(jù)一些示例實施例,應(yīng)用或其它軟件程序可以引導(dǎo)拍攝者利用從特定的角度指向?qū)ο?10的光源(例如,從對象310的右上側(cè)指出的光源)記錄對象310的圖像。例如,示例應(yīng)用的用戶界面(UI)可以出現(xiàn)在移動設(shè)備100的顯示器上并且命令用戶利用從特定的方向指向?qū)ο?10的光源記錄對象310的圖像。拍攝者可因而將光源(例如,閃光燈、攝像機(jī)閃光燈、閃光燈泡、聚光燈或某個其它遠(yuǎn)程光源)從指定的方向定位到對象310上,并且使用攝像機(jī)或移動設(shè)備100來記錄圖像。在一些示例實施例中,用于記錄圖像的移動設(shè)備與操作具有UI的應(yīng)用或軟件的設(shè)備可以是同一設(shè)備。
參考圖5,根據(jù)一些示例實施例,示例圖像510、520和530示出示例過程的繼續(xù)。例如,可以從與圖4中的圖像400相同的位置記錄對象310(例如,菠蘿花瓶)的附加圖像510、520和530。每個附加圖像510、520和530的彼此不同之處可在于:在每個圖像中,光源(未示出)從不同的角度指向?qū)ο?10。例如,圖像510、520和530在不同的方向上示出對象310的陰影,指示在每個圖像510、520和530中,光源從不同的角度指向?qū)ο?10。在這種情況下,量規(guī)(rubric)515、525和535各自示出閃光燈540的圖片,分別指示每個圖像510、520和530中光源照射到對象310上的方向。在此處,利用從對象310的左上方指向?qū)ο?10的光源記錄圖像510。類似地,利用從對象310的正上方指向?qū)ο?10的光源記錄圖像520。最后,利用從對象310的右上側(cè)指向?qū)ο?10的光源記錄圖像530??娠@而易見的是,這些方向分別根據(jù)量規(guī)515、525和535中示出的閃光燈方向。根據(jù)一些示例實施例,移動設(shè)備或其它數(shù)字設(shè)備可以存儲每個包含對象310和定向光的變化的角度的圖像,該圖像要被混合或“縫合”在一起以形成對象310的合成圖像。
跟隨從圖4到5的進(jìn)程的延伸,參考圖6A和6B,根據(jù)一些示例實施例,示例綜合圖像600示出對象310的更綜合的圖像集合。參考圖6A,示出了對象310的九個圖像的示例綜合集合,每個圖像記錄位于同一位置的對象310,但是在每個圖像中光源從不同的角度指向?qū)ο?10。參考圖6B,在量規(guī)610中的每個方形示出了閃光燈圖標(biāo),其在量規(guī)610中的同一位置處的方形內(nèi)演示了綜合圖像600的每個對應(yīng)圖像中指向?qū)ο?10的光源的取向。如本文使用的,“綜合的圖像集合”可以指代捕捉到從以相當(dāng)平均和/或均勻的方式圍繞對象310的各個角度(例如,在二維中是360度,全部圍繞以該對象為中心的半個半球的角度等等)指向?qū)ο?10的光源的圖像的集合。在這種情況下,使用八個圖像來捕捉都圍繞著對象310指向的光,并且在第九個圖像中,光從中性角(neutral angle)直接指向?qū)ο?10。在其它情況下,可以使用更多或更少的圖像,并且實施例不限于此。例如,可以使用四個或十六個圖像。
將更多內(nèi)容添加到用于實踐從圖4中開始論述的本公開方案的示例過程,在一些示例實施例中,綜合圖像600和量規(guī)610中的每個方形的角中的數(shù)字可以表示采用本公開方案的應(yīng)用存儲對象310的圖像的順序。例如,以具有UI的應(yīng)用的示例繼續(xù),UI可以引導(dǎo)拍攝者拍攝對象310的特定數(shù)量的照片,其中針對每個照片,光源以特定的順序指向?qū)ο?10。例如,如圖6A中的編號“1”所指示的,UI可以命令拍攝者將綜合圖像600中的第一圖片記錄為對象310的圖像,其中光源直接徑直朝向前方(例如,以相對于對象310的中心的中性角)。該圖像是綜合圖像600的中心圖像。拍攝者可以使用例如移動設(shè)備100記錄圖片,并且應(yīng)用可以將該圖片存儲為中心圖片。接著,如通過在頂部中心圖像中的編號“2”指示的,UI可以命令拍攝者將在綜合圖像600中的第二圖片記錄為對象310的光來自于對象310的頂部的圖像。拍攝者可以記錄圖片,并且應(yīng)用可以將第二圖片存儲為光源指向上的圖片。第三,如通過右上側(cè)圖像中的編號“3”指示的,應(yīng)用存儲對象310的光來自于對象310的右上側(cè)的圖像,且隨著編號以此類推。在一些情況下,應(yīng)用可以引導(dǎo)拍攝者以指定的順序記錄這些圖像中的每個圖像,并且由此以捕捉到的順序存儲圖像。當(dāng)然,示出的順序僅僅是一個示例,并且根據(jù)各種實施例,其它順序顯然是可能的。在其它情況下,拍攝者可能已經(jīng)先前記錄了對象310的具有不同的光角度的一系列圖像,并且可以在應(yīng)用中對圖像進(jìn)行手動排序,由此應(yīng)用還接收對光來自哪個方向的指示。該過程的確切機(jī)制可以變化,并且很多其它的可能對于本領(lǐng)域普通技術(shù)人員是顯而易見的。所有變型都在本公開的范圍內(nèi),并且實施例不限于此。
參考圖7,訪問對指向?qū)ο?10的不同角度的光進(jìn)行示出的圖像的綜合集合,則可以根據(jù)本公開的方案生成對象310的合成圖像。如本文使用的,“合成圖像”可以是指在圖像的綜合集合中的多個圖像的重疊或疊加,由此可以基于與顯示合成圖像的設(shè)備的傾斜程度或取向的對應(yīng)關(guān)系,以改變的不透明度來顯示圖像的綜合集合的子集。通過圖像的綜合集合中的九個圖像的級聯(lián)來表示生成合成圖像的過程,如在圖像700中示出的。以這種方式,“合成圖像”可以被理解為不僅僅是單個圖像,而是彼此重疊的一系列多個圖像,重疊的圖像中的每個圖像被配置為以不同程度的不透明度(或透明度)進(jìn)行修改。在本示例中,所示出的級聯(lián)圖像的編號可以信號通知圖像彼此覆蓋的順序。在其它示例實施例中,沒有指定這樣的排序,并且實施例不限于此。
作為示例用例,在現(xiàn)在生成的合成圖像的情況下,查看者可以利用移動設(shè)備上的應(yīng)用以查看對象310的合成圖像。在一些示例實施例中,如果合成圖像的中性角被定義為查看設(shè)備在首次顯示合成圖像時以其開始的任何取向,則當(dāng)查看者旋轉(zhuǎn)、轉(zhuǎn)動和/或傾斜查看設(shè)備時,圖像的綜合集合內(nèi)的某些圖像將成為完全透明的(即,不可見的),而某些其它的圖像可以以一定程度的不透明度來示出,使得一個或多個圖像可以“混合”在一起。對對象310的九個圖像的不透明(或相反地,透明)程度的確定可以取決于(例如,當(dāng)以二維來表達(dá)時,與查看設(shè)備的中性角(例如,查看設(shè)備的初始起始取向)的)傾斜的程度。
作為“混合”合成圖像的多個圖像的示例,比方說查看者在查看設(shè)備(例如,移動設(shè)備100)中顯示對象310,開始于查看設(shè)備平放在桌子上,其中顯示屏幕面朝上。對象310的初始呈現(xiàn)然后可以是對象310的中心圖像,如在圖像600的中心圖像(例如,框#1)中示出的,而所有其它八個圖像成為完全透明的并且是不可見的。查看者然后可以傾斜查看設(shè)備,例如,僅僅抬高查看設(shè)備的右側(cè),使得顯示屏幕現(xiàn)在略微朝向左側(cè)。在一些示例實施例中,合成圖像可以被布置為使得照射在所顯示的對象上的光源的取向被假定為來自查看者的初始位置。因此,在此處,通過將設(shè)備略微向左側(cè)傾斜,應(yīng)用可以現(xiàn)在示出對象310的光源來自對象310右側(cè)的情況下的圖像(例如,圖像600的框#4中的圖像),而所有其它八個圖像成為完全透明的并且是不可見的。換言之,現(xiàn)在對于查看者來說好像指向?qū)ο?10的光來自右側(cè),使得查看者能夠看到光如何不同地從對象310反射出來。在一些示例實施例中,從查看設(shè)備定向在初始中性位置到傾斜到左側(cè)(即,僅僅抬高查看設(shè)備的右側(cè))的漸進(jìn)進(jìn)程可以對應(yīng)地涉及從查看中心圖像(例如,圖像600中的框#1)到查看光源來自右側(cè)的情況下的圖像(例如,圖像600中的框#4)的漸進(jìn)改變。一般而言,從查看設(shè)備被從第一傾斜取向定位到斜切到第二傾斜取向的漸進(jìn)進(jìn)程可以對應(yīng)地涉及從基于第一混合圖像集合查看對象310到基于第二混合圖像集合查看對象310的漸進(jìn)改變,第一混合圖像集合與第一傾斜取向相對應(yīng),并且第二混合圖像集合與第二傾斜取向相對應(yīng)。
例如,在完全抬高查看設(shè)備的右側(cè)之間的中途,對象310的中心圖像可以設(shè)置為50%透明度,而光源來自右側(cè)的情況下的圖像也可以設(shè)置為50%透明度。這可以生成兩個圖像的一種混合視圖,其可以表示在光源指向中心和完全來自右側(cè)之間的中途的情況下對象310可以看起來像什么。該混合視圖還與查看設(shè)備的傾斜的程度相對應(yīng)。作為另一個示例,如果設(shè)備僅僅向左側(cè)傾斜完全傾斜角度的四分之一(例如,查看設(shè)備的右側(cè)僅僅傾斜全部量的四分之一),則對象310的中心圖像可以以75%不透明度(例如,25%透明度)示出,而右圖像可以與中心圖像重疊并且以25%不透明度(例如,75%透明度)示出,由此根據(jù)查看設(shè)備的傾斜程度來表示光源的角度的比例量。類似地,每個圖像的透明度(或不透明度)可以平滑地改變并且根據(jù)查看設(shè)備的傾斜的程度來進(jìn)行。
參考圖8A和8B,分別在圖像800和810中示出了兩個其它示例,其示出了圖像的綜合集合的混合。這兩個示例可以示出更復(fù)雜一些的情況。參考圖8A和圖像800,在圖像800的右下角的“X”值和“Y”值可以指示長度測量結(jié)果,或在其它情況下,指示查看設(shè)備遠(yuǎn)離其水平軸和垂直軸的傾斜程度的百分比)。例如,值“X=+0.75”和“Y=+0.50”可以指示查看設(shè)備從右側(cè)向上傾斜了其全部傾斜視圖的75%且從頂部向上傾斜了其全部傾斜視圖的50%。相應(yīng)地,最右側(cè)圖像和右上側(cè)圖像(例如,在圖像600中的框#3和框#4中的圖像)的混合圖像可被用來表達(dá)光可如何以指定的傾斜角度從對象310射出。在其它情況下,還可以使用中心圖像,因為傾斜可能不完全朝向頂部或右側(cè)。
參考圖8B和圖像810,類似地,值“X=-0.793402”和“Y=0.13847”可以指示查看設(shè)備從右側(cè)向下(即,從左側(cè)向上)傾斜其全部傾斜視圖的~79%且從頂部向下(即,從底部向上)傾斜其全部傾斜視圖的~13%。相應(yīng)地,最左側(cè)圖像和左下側(cè)圖像(例如,在圖像600中的框#7和框#8中的圖像)的混合圖像可被用來表達(dá)光可如何以指定的傾斜角度從對象310射出。在其它情況下,還可以使用中心圖像,因為傾斜可能不完全朝向頂部或右側(cè)。在其它情況下,還可以使用底部圖像,因為傾斜角度還可以被認(rèn)為包括底部圖像的一部分。
一般而言,“縫合”或“混合”算法可以實現(xiàn)為基于傾斜輸入來計算多個圖像中的每個圖像的透明度。例如,用于基于圖像的綜合集合中的多個圖像之間的混合水平來計算合成圖像的視圖的算法可以基于對歐幾里得(Euclidean)距離的計算。歐幾里得距離函數(shù)可以采用光源角度的初始取向與當(dāng)前傾斜角度之間的差來作為參數(shù)。在一些示例實施例中,角度可以分解為二維分量(例如“X”方向和“Y”方向)。如可以對本領(lǐng)域技術(shù)人員顯而易見的是,當(dāng)然可以使用其它二維坐標(biāo)系統(tǒng)以及用于基于傾斜程度來計算合成圖像的視圖的其它距離函數(shù)或甚至其它方法,并且實施例不限于此。在一些示例實施例中,可以采用單獨的平滑函數(shù)以示出初始傾斜取向和當(dāng)前傾斜取向之間的漸進(jìn)改變。平滑函數(shù)可以內(nèi)插兩個取向之間的運(yùn)動,并且相應(yīng)地示出對象310的光角度中的改變。
一般而言,本公開的方案可以基于顯示對象310的合成圖像的查看設(shè)備的相應(yīng)傾斜程度來顯示合成圖像中變化的多個圖像綜合集合,每個集合以變化的不透明度(或透明度)來顯示。隨著取向和傾斜的程度改變(例如,基于查看者旋轉(zhuǎn)和傾斜設(shè)備的方式而改變)時,每個圖像的不透明度可以如以本文論述的方式相應(yīng)地改變。因此,當(dāng)查看者傾斜和旋轉(zhuǎn)顯示合成圖像的設(shè)備時,查看者可以獲得光如何按多個不同的角度從對象310反射出的交互視角,因為合成圖像將根據(jù)改變中的傾斜和/或旋轉(zhuǎn)而不斷地改變。
本公開的方案因此可以幫助促進(jìn)具有突出的鏡面性質(zhì)的對象的呈現(xiàn),像其這樣的事物否則可能不能通過常規(guī)手段來有效表達(dá)。除此之外,不同于當(dāng)嘗試通過視頻或其它動畫來演示鏡面性質(zhì)時,用戶具有在至少兩個平面維度上檢查對象的多個鏡面性質(zhì)的自由度和控制,而不限于最多向前或向后查看對象的視頻。
雖然可能沒有以每個單個細(xì)微的角度來記錄對象的實際圖片(例如,在示例中,僅僅九個圖像用于生成所有可用的查看角度),但是混合圖片創(chuàng)建了對象在不同的照明場景下可能看起來像什么的模擬感覺。人類的大腦通常認(rèn)為這是足夠的,因為它通常不能夠?qū)嶋H圖像與兩個或更多個看起來相似的圖像之間的近似圖像進(jìn)行區(qū)分。換言之,人類的大腦對反射光的處理傾向于是相當(dāng)寬容的。此外,光在對象上的變化的視點的移動傾向于被人類的大腦更多地關(guān)注到,并且出于現(xiàn)實性,靜態(tài)圖像從一個圖像到下一個圖像的精確性不如從一個圖像到另一個圖像的過渡的平滑性那么重要。
在一些示例實施例中,可以基于類似于傾斜角度的輸入來顯示合成圖像中的圖像的正確“混合”(例如,對合成圖像的鼠標(biāo)控制滾動移動或鼠標(biāo)控制拖動移動)。例如,合成圖像的傾斜和旋轉(zhuǎn)還可以顯示在不擁有用于檢測傾斜移動的任何手段(諸如陀螺儀、激光跟蹤器或其它定位手段)的PC上。相反,例如,可以“點擊和拖動”合成圖像,其中鼠標(biāo)光標(biāo)在圖像上相對于其中心的位置可以充當(dāng)用于測量傾斜程度的模擬量。相應(yīng)地,圖像的適當(dāng)混合可以基于鼠標(biāo)光標(biāo)在圖像上相對于其中心的對應(yīng)位置。作為另一個示例,兩個滾動條(一個沿著合成圖像的右側(cè)定位,并且另一個沿著合成圖像的底部定位)可以來回滾動以作為用于測量傾斜程度的模擬量。作為另一個示例,可以通過手指沿著顯示屏幕滾動或滑動來模擬傾斜,由此,例如,沿著顯示器的頂端滑動手指可以顯示對象上從頂角看的光反射中的改變,諸如此類。類似地,可以采用對本領(lǐng)域技術(shù)人員顯而易見的其它手段來確定合成圖像中圖像的適當(dāng)混合,并且實施例不限于此。因此,如本文使用的,根據(jù)本公開的各種技術(shù)的對傾斜或旋轉(zhuǎn)程度的參考還包括針對不具有確定傾斜或旋轉(zhuǎn)程度的能力的設(shè)備的類似方法。
在一些示例實施例中,對象的多個側(cè)面或面還可以連接在一起,其中,對象的每個側(cè)面或面本身是該側(cè)面或面的被以不同的光角度記錄的重疊的圖像的合成圖像。例如,對象310的先前圖像僅僅示出花瓶的一個側(cè)面。對象310的俯視圖或頂視圖未示出,但是也可以使用本文描述的方法來示出。換言之,例如,還可以記錄對象310的頂視圖的九個圖像,以與在所呈現(xiàn)的公開中描述的方式(參見,例如圖4、5、6A、6B和7)相類似的方式來記錄該九個圖像。然后可以生成對象310的頂視圖的合成圖像。
在一些實施例中,對象的不同的面或側(cè)面可以連接在一起以向?qū)ο蟮牟榭刺砑痈郊拥木S度。例如,查看者設(shè)備的用戶還可以能夠跨對象310的側(cè)面圖像的面沿著顯示器向下滑動他的手指。這可以使得圖像滾動或翻動到對象310的頂視圖合成圖像,在該點處,用戶可以傾斜和旋轉(zhuǎn)查看者設(shè)備以體驗光如何從對象310的頂部反射出。在一些示例實施例中,使用與用于縫合圖片以形成全景視圖的那些技術(shù)相類似的已知圖像連接技術(shù),也可將從側(cè)視圖到頂視圖的滾動平滑地混合或縫合在一起。在其它示例實施例中,可以不這樣對示出不同側(cè)面的多個合成圖像進(jìn)行連接,而是用戶可以僅僅點擊或輕擊示出對象310的不同視圖的下一個合成圖像。
在一些示例實施例中,多個圖像之間的混合方向可以與上述方向相反,并且實施例不限于此。例如,根據(jù)所描述的示例技術(shù)混合的圖像的比例可以基于從查看者設(shè)備的左側(cè)和底部而不是從右側(cè)和頂部進(jìn)行的傾斜的程度。一般而言,圖像混合的確切方向和/或程度可以基于傾斜或旋轉(zhuǎn)的不同取向或程度,并且實施例不限于此。
參考圖9,示例流程圖900示出用于生成對象的合成圖像的示例方法。示例方法可以與本文描述(包括例如,在圖3、4、5、6A、6B、7、8A和8B中的描述)的方法相一致。在框910,設(shè)備(例如,在圖1中描述的移動設(shè)備100)可以訪問第一多個圖像,第一多個圖像中的每個圖像包括:從第一位置記錄的對象(例如,圖3的對象310),以及來自位于與第一多個圖像中的其它圖像中的每個圖像不同位置處的光源的光在該對象上的反射。第一多個圖像可以根據(jù)本文描述的方法(包括,例如在圖4、5、6A和6B中的描述)來進(jìn)行記錄。例如,設(shè)備可以穩(wěn)定在某個位置并且記錄第一多個對象,其中,在第一多個圖像中的每個圖像中,光源從不同位置照射在對象上。圖像可以存儲在設(shè)備中,或在其它情況下可以經(jīng)由網(wǎng)絡(luò)存儲在諸如云服務(wù)器的遠(yuǎn)程服務(wù)器中。在一些情況下,設(shè)備可以是遠(yuǎn)程服務(wù)器,并且可以從記錄圖像的移動設(shè)備來訪問圖像。
在框920,設(shè)備可以生成對象的第一合成圖像,第一合成圖像包括第一多個圖像的疊加,且其中,第一多個圖像中的每個圖像被配置為:在第一合成圖像內(nèi)并根據(jù)基于傾斜程度的第一輸入,改變透明度。該合成圖像可以與本文論述的對合成圖像的描述(例如,在圖4、5、6A、6B、7、8A和8B中)相一致。合成圖像可以存儲在設(shè)備中。在其它情況下,合成圖像可以存儲在諸如云服務(wù)器的遠(yuǎn)程服務(wù)器中。在生成合成圖像之后,在一些示例實施例中,可以向與生成合成圖像的設(shè)備分離的查看者設(shè)備傳送合成圖像。在其它情況下,生成合成圖像的設(shè)備可以與查看者設(shè)備相同。
在一些示例實施例中,所述第一多個圖像中的每個圖像的透明度的改變還根據(jù)于:在第一多個圖像中的每個圖像中,光源的位置相對于對象的方向。在一些示例實施例中,第一多個圖像中的每個圖像的透明度發(fā)生的改變基于以下二者之間的對應(yīng)關(guān)系:傾斜程度,以及在所述第一多個圖像中的每個圖像中,光源的位置相對于對象的方向。在一些示例實施例中,所述第一多個圖像中的每個圖像的透明度的改變基于根據(jù)縫合算法進(jìn)行的傾斜計算。這些描述可以與在整個公開中論述的描述(例如,在圖4、5、6A、6B、7、8A和8B中)相一致。
在一些示例實施例中,基于傾斜程度的第一輸入包括來自被配置為顯示第一合成圖像的顯示設(shè)備中的加速度計或陀螺儀的測量。例如,顯示設(shè)備可以基于來自顯示設(shè)備中的一個或多個加速度計或陀螺儀的讀數(shù),測量用戶對設(shè)備的傾斜的程度。在一些示例實施例中,基于傾斜程度的第一輸入包括來自被配置為顯示第一合成圖像的設(shè)備的顯示屏幕的觸摸數(shù)據(jù)。例如,傾斜程度可以基于在顯示合成圖像的電容性觸摸屏上的手指滑動的讀數(shù)。在一些示例實施例中,基于傾斜程度的第一輸入包括來自鼠標(biāo)滾動的數(shù)據(jù)。例如,與鼠標(biāo)光標(biāo)的移動耦合的點擊且拖動輸入可以模擬傾斜角,并且在圖像中的每個圖像中的透明度可以根據(jù)鼠標(biāo)移動的位置進(jìn)行改變。這些描述可以與在整個公開中論述的描述(例如,在圖4、5、6A、6B、7、8A和8B中)相一致。
在一些示例實施例中,對象的第二合成圖像可以經(jīng)由某種平滑圖形連接與第一合成圖像連接在一起,該對象的第二合成圖像被從不同的位置記錄以記錄對象的不同的側(cè)面??梢酝ㄟ^與第一合成圖像相似的手段但是從示出對象的不同側(cè)面的不同位置來生成第二合成圖像。可以生成第一合成圖像和第二合成圖像之間的圖形連接,其中第一合成圖像的顯示被配置為過渡到第二合成圖像的顯示,過渡基于第一合成圖像和第二合成圖像之間的圖形連接。這些描述可以與在整個公開中論述的描述(例如,在圖4、5、6A、6B、7、8A和8B中)相一致。
參考圖10,流程圖1000示出了在圖9中描述的方法的對應(yīng)方法(但是在該情況下涉及訪問和查看合成圖像)。此處描述的方法可以通過訪問或存儲合成圖像的顯示設(shè)備來實現(xiàn)。顯示設(shè)備可以是與用于記錄多個圖像的設(shè)備不同的設(shè)備。在其它情況下,顯示設(shè)備可以與用于記錄多個圖像的設(shè)備相同。在一些情況下,顯示設(shè)備還可以生成合成圖像但是可能沒有記錄該多個圖像。
在框1010,顯示設(shè)備可以訪問對象(例如,對象310)的第一合成圖像,第一合成圖像包括第一多個圖像的疊加,其中,第一多個圖像中的每個圖像包括:從第一位置記錄的對象,和來自位于與所述第一多個圖像中的其它圖像中的每個圖像不同位置處的光源的光在對象上的反射。在框1020,顯示設(shè)備可以訪問基于傾斜程度的第一輸入。如前所述,傾斜程度可以基于多個不同的輸入手段,包括例如來自陀螺儀、加速度計的數(shù)據(jù)、觸摸數(shù)據(jù)或鼠標(biāo)輸入,其可以包括如上所述的傾斜數(shù)據(jù)的模擬。在框1030,顯示設(shè)備可以顯示合成圖像,其中,以根據(jù)于第一傾斜程度輸入的透明度來顯示合成圖像內(nèi)的圖像中的每個圖像。例如,圖像中的一些圖像可以是完全透明的,而少數(shù)圖像可以基于訪問到的傾斜輸入具有非零不透明度,該非零不透明度與查看者期望以其查看對象的計算出的角度相對應(yīng)。一般而言,此處描述的方法可以與在整個公開中描述(包括例如在圖4、5、6A、6B、7、8A和8B中的描述)的方法相一致。
在一些示例實施例中,與用于生成合成圖像的方法相類似,第二合成圖像可以與第一合成圖像圖形連接,并且查看者可以輸入第二輸入以在第一合成圖像和第二合成圖像之間平滑滾動。
參考圖11,根據(jù)一些示例實施例,框圖示出了機(jī)器1100的組件,機(jī)器1100能夠從機(jī)器可讀介質(zhì)1122(例如,非瞬時機(jī)器可讀介質(zhì)、機(jī)器可讀存儲介質(zhì)、計算機(jī)可讀存儲介質(zhì)或其任何合適的組合)讀取指令1124并且整體地或部分地執(zhí)行本文論述的方法中的任何一個或多個方法。具體地,圖11示出了計算機(jī)系統(tǒng)(例如計算機(jī))的示例形式的機(jī)器1100,在其內(nèi)可以整體地或部分地執(zhí)行用于引起機(jī)器1100實施本文論述的方法中的任何一個或多個方法的指令1124(例如,軟件、程序、應(yīng)用程序(application)、小程序、應(yīng)用(app)或其它可執(zhí)行代碼)。
在備選實施例中,機(jī)器1100作為獨立的設(shè)備工作或可以連接(例如,聯(lián)網(wǎng))到其它機(jī)器。在聯(lián)網(wǎng)的部署中,機(jī)器1100可以在服務(wù)器-客戶端網(wǎng)絡(luò)環(huán)境中以服務(wù)器機(jī)器或客戶端機(jī)器的身份工作,或在分布式(例如,對等)網(wǎng)絡(luò)環(huán)境中作為對等機(jī)器工作。機(jī)器1100可以包括硬件、軟件或其組合,并且可以作為示例是服務(wù)器計算機(jī)、客戶端計算機(jī)、個人計算機(jī)(PC)、平板計算機(jī)、膝上型計算機(jī)、上網(wǎng)本、蜂窩電話、智能電話、機(jī)頂盒(STB)、個人數(shù)字助理(PDA)、web應(yīng)用、網(wǎng)絡(luò)路由器、網(wǎng)絡(luò)交換機(jī)、網(wǎng)橋或能夠順序或以其它方式執(zhí)行指定將由該機(jī)器采取的動作的指令1124的任何機(jī)器。此外,雖然示出了僅僅單個機(jī)器,但是術(shù)語“機(jī)器”還將被認(rèn)為包括單獨地或聯(lián)合地執(zhí)行指令1124以實施本文論述的方法中的任何一個或多個方法的全部或部分的機(jī)器的任何集合。
機(jī)器1100包括處理器1102(例如,中央處理單元(CPU)、圖形處理單元(GPU)、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、射頻集成電路(RFIC)、或其任何合適的組合)、主存儲器1104和靜態(tài)存儲器1106,它們被配置為經(jīng)由總線1108彼此進(jìn)行通信。處理器1102可以包含可由指令1124中的一些或全部暫時或永久配置的微電路,使得處理器1102可被配置為整體地或部分地執(zhí)行本文描述的方法中的任何一個或多個方法。例如,處理器1102的一個或多個微電路的集合可以可配置為執(zhí)行本文描述的一個或多個模塊(例如,軟件模塊)。
機(jī)器1100還可以包括視頻顯示器1110(例如,等離子體顯示面板(PDP)、發(fā)光二極管(LED)顯示器、液晶顯示器(LCD)、投影儀、陰極射線管(CRT)或能夠顯示圖形或視頻的任何其它顯示器)。機(jī)器1100還可以包括字母數(shù)字輸入設(shè)備1112(例如,鍵盤或小鍵盤)、光標(biāo)控制設(shè)備1114(例如,鼠標(biāo)、觸摸板、跟蹤球、操縱桿、移動傳感器、眼鏡跟蹤設(shè)備或其它指向儀器)、存儲單元1116、音頻生成設(shè)備1118(例如,聲卡、擴(kuò)音器、揚(yáng)聲器、耳機(jī)插孔或其任何合適的組合)和網(wǎng)絡(luò)接口設(shè)備1120。
存儲單元1116包括機(jī)器可讀介質(zhì)1122(例如,有形和非瞬時機(jī)器可讀存儲介質(zhì)),在其上存儲有體現(xiàn)本文描述(包括例如圖1、2、3、4、5、6A、6B、7、8A、8B、9和/或10的描述中的任何描述)的方法或功能中的任何一個或多個的指令1124。指令1124還可以在其由機(jī)器1100執(zhí)行前或期間完全或至少部分駐留在主存儲器1104內(nèi)、在處理器1102內(nèi)(例如,在處理器的高速緩存存儲器內(nèi))或在此兩者內(nèi)。指令還可以駐留在靜態(tài)存儲器1106內(nèi)。
相應(yīng)地,主存儲器1104和處理器1102可以被認(rèn)為是機(jī)器可讀介質(zhì)(例如,有形和非瞬時機(jī)器可讀介質(zhì))??梢越?jīng)由網(wǎng)絡(luò)接口設(shè)備1120通過網(wǎng)絡(luò)1126來傳送或接收指令1124。例如,網(wǎng)絡(luò)接口設(shè)備1120可以使用任何一個或多個傳輸協(xié)議(例如,超文本傳輸協(xié)議(HTTP))來傳輸指令1124。機(jī)器1100還可以表示用于執(zhí)行本文描述的功能(包括在圖1、2、3、4、5、6A、6B、7、8A、8B、9和/或10中描述的過程)中的任何一個的示例手段。
在一些示例實施例中,機(jī)器1100可以是便攜式計算設(shè)備(諸如智能電話或平板計算機(jī))并且具有未示出的一個或多個附加的輸入組件(例如,傳感器或儀表)。這樣的輸入組件的示例包括圖像輸入組件(例如,一個或多個攝像機(jī))、音頻輸入組件(例如,麥克風(fēng))、方向輸入組件(例如,羅盤)、位置輸入組件(例如,全球定位系統(tǒng)(GPS)接收器)、定向組件(例如,陀螺儀)、移動檢測組件(例如,一個或多個加速度計)、高度檢測組件(例如,高度計)和氣體檢測組件(例如,氣體傳感器)。由這些輸入組件中的任何一個或多個獲取的輸入可以是可訪問的,且可供本文描述的模塊中的任何一個模塊使用。
如本文使用的,術(shù)語“存儲器”是指能夠暫時或永久存儲數(shù)據(jù)的機(jī)器可讀介質(zhì),并且可以認(rèn)為包括但不限于隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、緩沖存儲器、閃存和高速緩存存儲器。雖然機(jī)器可讀介質(zhì)1122在示例實施例中示出為單個介質(zhì),但是術(shù)語“機(jī)器可讀介質(zhì)”應(yīng)當(dāng)被認(rèn)為包括能夠存儲指令的單個介質(zhì)或多個介質(zhì)(例如,集中式或分布式數(shù)據(jù)庫或相關(guān)聯(lián)的高速緩存和服務(wù)器)。術(shù)語“機(jī)器可讀介質(zhì)”還將被認(rèn)為包括任何介質(zhì)或多個介質(zhì)的組合,其能夠存儲用于由機(jī)器1100執(zhí)行的指令1124,使得指令1124當(dāng)由機(jī)器1100的一個或多個處理器(例如,處理器1102)執(zhí)行時,引起機(jī)器1100整體地或部分地實施本文描述的方法中的任何一個或多個方法。相應(yīng)地,“機(jī)器可讀介質(zhì)”是指單個存儲裝置或設(shè)備以及包括多個存儲裝置或設(shè)備的基于云的存儲系統(tǒng)或存儲網(wǎng)絡(luò)。術(shù)語“機(jī)器可讀介質(zhì)”將相應(yīng)地被認(rèn)為包括但不限于以固態(tài)存儲器、光學(xué)介質(zhì)、磁介質(zhì)或其任何合適的組合的形式的一個或多個有形(例如,非瞬時)數(shù)據(jù)存儲庫。
貫穿本說明書,多個實例可以實現(xiàn)被描述為單個實例的組件、操作或結(jié)構(gòu)。盡管一個或多個方法的個別的(individual)操作被示出和描述為單獨的操作,但是個別的操作中的一個或多個可以同時執(zhí)行,并且絕不要求操作以示出的順序來執(zhí)行。在示例配置中呈現(xiàn)為單獨的組件的結(jié)構(gòu)和功能可以實現(xiàn)為組合的結(jié)構(gòu)或組件。類似地,呈現(xiàn)為單個組件的結(jié)構(gòu)和功能可以實現(xiàn)為單獨的組件。這些和其它變型、修改、添加和改進(jìn)都落入本文主題的范圍內(nèi)。
某些實施例在本文描述為包括邏輯或多個組件、模塊或機(jī)構(gòu)。模塊可以構(gòu)成軟件模塊(例如,存儲或以其它方式包含在機(jī)器可讀介質(zhì)上或傳輸介質(zhì)中的代碼)、硬件模塊或其任何合適的組合?!坝布K”是能夠執(zhí)行某些操作的有形的(例如,非瞬時)單元并且可以以某個物理方式來進(jìn)行配置或布置。在各種示例實施例中,一個或多個計算機(jī)系統(tǒng)(例如,獨立的計算機(jī)系統(tǒng)、客戶端計算機(jī)系統(tǒng)或服務(wù)器計算機(jī)系統(tǒng))或計算機(jī)系統(tǒng)的一個或多個硬件模塊(例如,處理器或處理器的群組)可以由軟件(例如,應(yīng)用程序或應(yīng)用程序部分)配置為操作以執(zhí)行如本文描述的某些操作的硬件模塊。
在一些實施例中,可以以機(jī)械方式、電子方式或其任何合適的組合來實現(xiàn)硬件模塊。例如,硬件模塊可以包括永久配置為執(zhí)行某些操作的專用電路或邏輯。例如,硬件模塊可以是專用處理器(諸如現(xiàn)場可編程門陣列(FPGA)或ASIC)。硬件模塊還可以包括由軟件暫時配置為執(zhí)行某些操作的可編程邏輯或電路。例如,硬件模塊可以包括包含在通用處理器或其它可編程處理器內(nèi)的軟件。應(yīng)當(dāng)理解的是,可以通過成本考慮和時間考慮來推動在專用和永久配置的電路中或在暫時配置的(例如,由軟件配置的)電路中以機(jī)械方式實現(xiàn)硬件模塊的決定。
相應(yīng)地,短語“硬件模塊”應(yīng)當(dāng)被理解為包含有形實體,并且這樣的有形實體可以被物理構(gòu)造、永久配置(例如,硬連線)或暫時配置(例如編程)以按某個方式進(jìn)行操作或執(zhí)行本文描述的某些操作。本文使用的“硬件實現(xiàn)的模塊”是指硬件模塊??紤]硬件模塊被暫時配置(例如,編程)的實施例,不需要在任何一個時刻對硬件模塊中的每個進(jìn)行配置或?qū)嵗?。例如,在硬件模塊包括由軟件配置為成為專用處理器的通用處理器的情況下,通用處理器可以配置為在不同的時間分別作為不同的專用處理器(例如,包括不同的硬件模塊)。軟件(例如,軟件模塊)可以相應(yīng)地配置例如一個或多個處理器以在一個時刻構(gòu)成特定的硬件模塊并且在不同的時刻構(gòu)成不同的硬件模塊。
硬件模塊可以向其它硬件模塊提供信息并且從其接收信息。相應(yīng)地,所描述的硬件模塊可以被視為是通信耦合的。在多個硬件模塊同時存在的情況下,可以通過硬件模塊中的兩個或多于兩個硬件模塊之間或之中的信號傳輸(例如,通過適當(dāng)?shù)碾娐泛涂偩€)來實現(xiàn)通信。在多個硬件模塊被在不同的時間配置或?qū)嵗膶嵤├校梢岳缤ㄟ^對在存儲器結(jié)構(gòu)中的信息(多個硬件模塊對其有訪問權(quán)限)的存儲和檢索來實現(xiàn)在這樣的硬件模塊之間的通信。例如,一個硬件模塊可以執(zhí)行操作并且將該操作的輸出存儲在其通信地耦合到的存儲器設(shè)備中。另外的硬件模塊然后可以在稍后的時間訪問存儲器設(shè)備以檢索和處理所存儲的輸出。硬件模塊還可以發(fā)起與輸入或輸出設(shè)備的通信,并且可以對資源(例如,信息的集合)進(jìn)行操作。
本文描述的示例方法的各種操作可以至少部分地由暫時配置(例如,通過軟件)或永久配置以執(zhí)行相關(guān)操作的一個或多個處理器來執(zhí)行。無論是暫時配置還是永久配置,這樣的處理器可以構(gòu)成操作以執(zhí)行本文描述的一個或多個操作或功能的處理器實現(xiàn)模塊。本文使用,“處理器實現(xiàn)模塊”是指使用一個或多個處理器實現(xiàn)的硬件模塊。
類似地,本文描述的方法可以是至少部分處理器實現(xiàn)的,處理器是硬件的示例。例如,方法的操作中的至少一些可以由一個或多個處理器或處理器實現(xiàn)的模塊來執(zhí)行。本文使用的“處理器實現(xiàn)模塊”是指其中硬件包括一個或多個處理器的硬件模塊。此外,一個或多個處理器還可以操作以支持在“云計算”環(huán)境中的相關(guān)操作的執(zhí)行或作為“軟件即服務(wù)”(SaaS)。例如,操作中的至少一些可以由計算機(jī)的群組(作為包括處理器的機(jī)器的示例)來執(zhí)行,其中這些操作可經(jīng)由網(wǎng)絡(luò)(例如,因特網(wǎng))和經(jīng)由一個或多個適當(dāng)?shù)慕涌?例如,應(yīng)用程序接口(API))來訪問。
某些操作的執(zhí)行可以分布于一個或多個處理器(不僅駐留在單個機(jī)器內(nèi),而且部署在多個機(jī)器中)中。在一些示例實施例中,一個或多個處理器或處理器實現(xiàn)的模塊可以位于單個地理位置(例如,在家庭環(huán)境、辦公室環(huán)境或服務(wù)器群內(nèi))。在其它示例實施例中,一個或多個處理器或處理器實現(xiàn)的模塊可以分布于多個地理位置中。
可以從對存儲為機(jī)器存儲器(例如,計算機(jī)存儲器)內(nèi)的比特或二進(jìn)制數(shù)字信號的數(shù)據(jù)的操作的算法或符號表示方案來呈現(xiàn)本文論述的主題的一些部分。這樣的算法或符號表示是由在數(shù)據(jù)處理領(lǐng)域的普通技術(shù)人員使用以向本領(lǐng)域的其它技術(shù)人員傳達(dá)他們的工作的實質(zhì)的技術(shù)的示例。如本文使用的,“算法”是導(dǎo)致期望結(jié)果的操作或類似處理的自相一致序列。在這種情況下,算法和操作涉及物理量的物理操縱。通常但不一定,這樣的量可以采取能夠由機(jī)器存儲、訪問、傳送、組合、比較或以其它方式操縱的電、磁或光學(xué)信號的形式。有時主要出于普遍使用的原因以使用諸如“數(shù)據(jù)”、“內(nèi)容”、“位”、“值”、“元件”、“符號”、“字符”、“術(shù)語”、“編號(number)、“數(shù)字(numeral)”等等的詞語來指代這樣的信號是方便的。然而這些詞語僅僅是方便的標(biāo)簽并且將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)。
除非另有明確說明,本文使用諸如“處理”、“運(yùn)算(computing)”、“計算(calculating)”、“確定”、“呈現(xiàn)”、“顯示”等等的詞語的論述可以是指機(jī)器(例如,計算機(jī))的動作或過程,其對呈現(xiàn)為在一個或多個存儲器(例如,易失性存儲器、非易失性存儲器或其任何合適的組合)、寄存器或接收、存儲、傳送或顯示信息的其它機(jī)器組件內(nèi)的物理(例如,電子、磁或光學(xué))量的數(shù)據(jù)進(jìn)行操縱或變換。此外,除非另有明確說明,本文使用如在專利文件中常見的術(shù)語“a(一)”或“an(一個)”以包括一個或多于一個實例。最后,如本文使用的,除非另有明確說明,連詞“or(或)”是指非排他性的“or(或)”。