用于將圖像基元部署至計(jì)算構(gòu)造的圖像流管線控制器的制造方法
【專(zhuān)利摘要】根據(jù)一些實(shí)施例,圖像管線控制器可以確定具有要被執(zhí)行的多個(gè)圖像基元的圖像流。每個(gè)圖像基元可以例如與圖像算法和基元屬性集相關(guān)聯(lián)。然后,圖像管線控制器可以至少部分地基于基元屬性將圖像基元集自動(dòng)地部署至圖像計(jì)算構(gòu)造。
【專(zhuān)利說(shuō)明】用于將圖像基元部署至計(jì)算構(gòu)造的圖像流管線控制器
【背景技術(shù)】
[0001]許多設(shè)備包括一個(gè)或多個(gè)圖像傳感器和/或圖像顯示器,并且圖像處理單元可以促進(jìn)來(lái)自傳感器的、被提供至顯示器的、和/或以其它方式由運(yùn)行在設(shè)備上的應(yīng)用所利用的數(shù)據(jù)的處理。例如,智能電話可以包括多個(gè)不同的攝像機(jī)和觸摸屏。圖像處理單元可以包括具有多個(gè)不同的組件以處理圖像信息的圖像計(jì)算構(gòu)造(fabric)。
[0002]在一些情況下,圖像處理單元可以基于輸入圖像數(shù)據(jù)(例如,從智能電話的攝像機(jī)接收到的)來(lái)執(zhí)行一系列圖像基元(primitive)以創(chuàng)建輸出圖像數(shù)據(jù)(例如,要被發(fā)送至觸摸屏的)。圖像基元例如可以與圖像基元庫(kù)相關(guān)聯(lián),并且可以包括例如傳感器基元、校準(zhǔn)基元、光學(xué)基元等。
[0003]通常,結(jié)合圖像處理單元而執(zhí)行的應(yīng)用確定將由圖像計(jì)算構(gòu)造的各種組件執(zhí)行哪些圖像基元。例如,應(yīng)用可以確定將由固定功能硬件執(zhí)行過(guò)濾器基元。然而,此類(lèi)方法會(huì)具有若干缺點(diǎn)。例如,應(yīng)用可能未覺(jué)察到另一應(yīng)用也在嘗試使用相同的固定功能硬件。因而,應(yīng)用可能“停止(stall)”或者需要等待直到固定功能硬件變?yōu)榭臻e,并且系統(tǒng)的性能可能降級(jí)。
[0004]此外,圖像基元的大量數(shù)目和相對(duì)復(fù)雜性(以及它們可以結(jié)合不同的圖像執(zhí)行構(gòu)造的不同組件來(lái)不同地操作的事實(shí))可能導(dǎo)致大量的軟件開(kāi)發(fā)成本并抑制應(yīng)用軟件開(kāi)發(fā)者(他們可能被促使創(chuàng)建針對(duì)每個(gè)新平臺(tái)的定制軟件)的創(chuàng)新。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0005]圖1是設(shè)備的框圖。
[0006]圖2是成像處理單元的框圖。
[0007]圖3是根據(jù)一些實(shí)施例的成像處理單元的框圖。
[0008]圖4是圖示根據(jù)一些實(shí)施例的方法的流程圖。
[0009]圖5圖示根據(jù)一些實(shí)施例的卷積(convolution)圖像基元的基元屬性。
[0010]圖6是根據(jù)一些實(shí)施例的具有基元屬性數(shù)據(jù)庫(kù)或其它數(shù)據(jù)結(jié)構(gòu)的成像處理單元的框圖。
[0011]圖7是根據(jù)一些實(shí)施例的具有初始化組件和定序器組件的成像處理單元的框圖。
[0012]圖8是根據(jù)一些實(shí)施例的處理多個(gè)圖像流的成像處理單元的框圖。
[0013]圖9是根據(jù)一些實(shí)施例的提供固定功能硬件的軟件代理仿真的成像處理單元的框圖。
[0014]圖1OA至IOC圖示根據(jù)一些實(shí)施例的圖像流中的區(qū)段。
[0015]圖11是根據(jù)一些實(shí)施例的用于區(qū)段屬性定義的圖形用戶界面的示例。
[0016]圖12是圖示根據(jù)一些實(shí)施例的與圖像流區(qū)段相關(guān)聯(lián)的方法的流程圖。
[0017]圖13是根據(jù)一些實(shí)施例的包括圖像計(jì)算構(gòu)造和軟件架構(gòu)特性的總體視圖。
【具體實(shí)施方式】[0018]圖1是可以包括例如一個(gè)或多個(gè)圖像傳感器110和/或圖像顯示器120的設(shè)備100的框圖。傳感器110可以包括例如攝像機(jī)、視頻攝像機(jī)、深度傳感器、和/或立體圖像傳感器。顯示器120可以包括例如觸摸屏、高分辨率顯示器、和/或三維圖像。圖像處理單元130可以促進(jìn)來(lái)自傳感器110的、被提供至顯示器120的、和/或以其它方式由運(yùn)行在設(shè)備100上的應(yīng)用所利用的數(shù)據(jù)的處理。注意,設(shè)備100可以進(jìn)一步包括一個(gè)或多個(gè)補(bǔ)充接口 140,諸如數(shù)字顯示接口(例如,要被耦合至數(shù)字電視或計(jì)算機(jī)監(jiān)視器)、無(wú)線天線、或者通用串行總線(USB)接口。注意,設(shè)備可以與例如智能電話、平板計(jì)算機(jī)、移動(dòng)計(jì)算設(shè)備、移動(dòng)電話、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、游戲系統(tǒng)、機(jī)頂盒、或者電視相關(guān)聯(lián)。
[0019]圖1中所圖示的設(shè)備100可以經(jīng)由任何通信網(wǎng)絡(luò)交換信息,所述通信網(wǎng)絡(luò)可以是以下中的一個(gè)或多個(gè):局域網(wǎng)(“LAN”)、城域網(wǎng)(“MAN”)、廣域網(wǎng)(“WAN”)、專(zhuān)有網(wǎng)絡(luò)、公共交換電話網(wǎng)絡(luò)(“PSTN”)、無(wú)線應(yīng)用協(xié)議(“WAP”)網(wǎng)絡(luò)、藍(lán)牙網(wǎng)絡(luò)、無(wú)線LAN網(wǎng)絡(luò)、和/或網(wǎng)際協(xié)議(“IP”)網(wǎng)絡(luò),諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)。注意,本文所描述的任何設(shè)備可以經(jīng)由一個(gè)或多個(gè)此類(lèi)通信網(wǎng)絡(luò)進(jìn)行通信。
[0020]本文所討論的所有的系統(tǒng)和過(guò)程可以采用存儲(chǔ)在一個(gè)或多個(gè)非臨時(shí)計(jì)算機(jī)可讀介質(zhì)上的程序代碼來(lái)體現(xiàn)。此類(lèi)介質(zhì)可以包括例如固態(tài)隨機(jī)存取存儲(chǔ)器(“RAM”)或者只讀存儲(chǔ)器(“ROM”)存儲(chǔ)單元。因此,實(shí)施例不限于硬件和軟件的任何特定組合。
[0021]圖2是可以被用于圖1的顯示設(shè)備中的成像處理單元200的框圖。圖像處理單元200包括可以處理圖像信息的圖像計(jì)算構(gòu)造210。圖像計(jì)算構(gòu)造210可以包括例如固定功能硬件圖像處理單元212、單指令多數(shù)據(jù)(SMD)圖像執(zhí)行單元214、超長(zhǎng)指令字(VLIW)處理單元216、和/或通用處理單元218。
[0022]圖像處理單元200可以基于輸入圖像數(shù)據(jù)(例如,從智能電話的攝像機(jī)接收到的)來(lái)執(zhí)行一系列圖像基元220以創(chuàng)建輸出圖像數(shù)據(jù)(例如,要被發(fā)送至觸摸屏的)。圖像基元220可以與存儲(chǔ)在圖像基元數(shù)據(jù)庫(kù)260中的圖像基元庫(kù)相關(guān)聯(lián),并且可以包括例如傳感器基元、校準(zhǔn)基元、光學(xué)基元、發(fā)光基元、深度基元、分段基元、色彩基元、過(guò)濾器基元、和/或三維深度基元。
[0023]在圖像信息的流上執(zhí)行的圖像基元集200可以表示被應(yīng)用用來(lái)處理圖像數(shù)據(jù)的資源集。例如,成像應(yīng)用可以需要小的圖像基元集200來(lái)提供處理以實(shí)現(xiàn)特定的高級(jí)算法,諸如面部識(shí)別、手勢(shì)識(shí)別等。也就是說(shuō),圖像基元220可以一起被用來(lái)處理圖像數(shù)據(jù)并完成更高級(jí)的目標(biāo)。圖像基元220可以表示用于更大算法的構(gòu)建塊,并且可以是必須被管理并且使得可用于多個(gè)同時(shí)的成像和視覺(jué)計(jì)算應(yīng)用的資源。
[0024]圖像基元集220可以與許多不同類(lèi)型的圖像算法相關(guān)聯(lián),諸如與像素校正、偽跡(artifact)去除、直方圖信息、掃描功能、面部識(shí)別、視覺(jué)對(duì)象識(shí)別、視覺(jué)場(chǎng)面分析、機(jī)器視覺(jué)、手勢(shì)識(shí)別、和/或深度圖計(jì)算相關(guān)聯(lián)的那些。此外,僅以示例的方式,不同類(lèi)型的圖像基元220可以與攝像機(jī)傳感器格式處理(Bayer紅綠藍(lán)(RGB)、Aptina? RGB,Kodak? RGBW等)、攝像機(jī)傳感器尺寸(1080p等)、攝像機(jī)傳感器幀速率、校準(zhǔn)(自動(dòng)白平衡、自動(dòng)快門(mén)、自動(dòng)聚焦等)、死像素檢測(cè)和校正、發(fā)光控制、光學(xué)控制、三維深度傳感器控制(結(jié)構(gòu)光、立體三角測(cè)量等)、色彩轉(zhuǎn)換(RGB、YUV、HIV等)、查找表(LUT)處理和值替換、布爾運(yùn)算、將圖像分段成各種組件部分(前景、背景、對(duì)象等)、過(guò)濾器(銳化、模糊、中間等)、邊緣檢測(cè)(Sobe1、Roberts、Prewitt等)、點(diǎn)運(yùn)算(像素?cái)?shù)學(xué)等)、和/或域處理(傅里葉、HAAR> Karhunen-Loeve、斜變換O
[0025]通常,結(jié)合圖像處理單元200而執(zhí)行的應(yīng)用確定將由圖像計(jì)算構(gòu)造210的各種組件212、214、216、218執(zhí)行哪些圖像基元220。例如,應(yīng)用可以確定將由固定功能硬件212執(zhí)行過(guò)濾器基元。然而,此類(lèi)方式會(huì)具有若干缺點(diǎn)。例如,應(yīng)用可能未覺(jué)察到另一應(yīng)用也在嘗試使用固定功能硬件212。因而,應(yīng)用可以“停止”或者需要等待直到固定功能硬件變?yōu)榭臻e,從而系統(tǒng)的性能可能降級(jí)。
[0026]此外,圖像基元220的大量數(shù)目和相對(duì)復(fù)雜性(以及它們可以結(jié)合不同的圖像執(zhí)行構(gòu)造210的不同組件來(lái)不同地操作的事實(shí))可能導(dǎo)致大量的軟件開(kāi)發(fā)成本并抑制應(yīng)用軟件開(kāi)發(fā)者(他們可能被促使創(chuàng)建針對(duì)每個(gè)新平臺(tái)的定制軟件)的創(chuàng)新。
[0027]因此,本文提供的實(shí)施例可以提供圖像基元到計(jì)算構(gòu)造的改進(jìn)的部署。特別地,圖3是根據(jù)一些實(shí)施例的成像處理單元300的框圖。如前面那樣,圖像處理單元300包括可以處理圖像信息的圖像計(jì)算構(gòu)造310。圖像計(jì)算構(gòu)造310可以包括例如固定功能硬件圖像處理單元312、SMD圖像執(zhí)行單元314、VLIW處理單元316、和/或通用處理單元318。圖像處理單元300可以基于輸入圖像數(shù)據(jù)(例如,從智能電話的攝像機(jī)接收到的)來(lái)執(zhí)行一系列圖像基元320以創(chuàng)建輸出圖像數(shù)據(jù)(例如,要被發(fā)送至觸摸屏的)。圖像基元320與存儲(chǔ)在圖像基元數(shù)據(jù)庫(kù)360中的圖像基元庫(kù)相關(guān)聯(lián)。根據(jù)該實(shí)施例,圖像管線控制器330可以被用來(lái)幫助將圖像基元320部署至圖像計(jì)算構(gòu)造310。注意,圖像管線控制器330可以與硬件圖像管線控制器、軟件圖像管線控制器、或者硬件和軟件圖像管線控制器組件的組合相關(guān)聯(lián)。
[0028]圖像管線控制器330可以采用多種不同方式來(lái)部署圖像基元320 (例如,至圖像計(jì)算構(gòu)造310的各種組件)。例如,圖4是根據(jù)一些實(shí)施例的可以與圖3的管線控制器330相關(guān)聯(lián)的過(guò)程的流程圖。注意,本文所描述的所有過(guò)程可以由硬件和/或軟件的任何組合來(lái)執(zhí)行。過(guò)程可以采用 存儲(chǔ)在有形介質(zhì)上并且可由計(jì)算機(jī)執(zhí)行以提供本文所描述的功能的程序代碼來(lái)體現(xiàn)。進(jìn)一步注意,本文所描述的流程圖不暗示對(duì)于步驟的固定次序,并且本發(fā)明的實(shí)施例可以采用可行的任何次序來(lái)實(shí)施。
[0029]在402處,圖像管線控制器可以確定具有多個(gè)要被執(zhí)行的圖像基元的圖像流,每個(gè)圖像基元與圖像算法和基元屬性集相關(guān)聯(lián)。可以例如從視頻攝像機(jī)接收?qǐng)D像流。在404處,圖像管線控制器可以至少部分地基于基元屬性將圖像基元集自動(dòng)地部署至圖像計(jì)算構(gòu)造。
[0030]如本文所使用的,基元“屬性”可以是描述圖像基元的操作或者執(zhí)行的各方面的任何信息。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到:寬范圍的屬性可以被分配到區(qū)段內(nèi)的每個(gè)基元或者基元的群組,因此本文所列出的屬性用來(lái)說(shuō)明本發(fā)明的概念,并且因而不限制本發(fā)明的適用性,以包含除所列出的那些之外的其它有用的屬性。
[0031]例如,圖5圖示根據(jù)一些實(shí)施例的用于卷積圖像基元的基元屬性500。圖像屬性500可以例如由圖像基元的開(kāi)發(fā)者來(lái)定義。根據(jù)一些實(shí)施例,基元屬性500可以反映針對(duì)圖像屬性的多個(gè)計(jì)算單元、性能值、功率值、熱值、和/或排名偏好。通過(guò)示例的方式,可以由設(shè)計(jì)工程師給每個(gè)圖像基元分配屬性先驗(yàn)(a-priori),設(shè)計(jì)工程師結(jié)合各種準(zhǔn)則來(lái)表征基元以就以下方面定義圖像基元:對(duì)于各種處理器或固定功能硬件上的軟件基元的性能排名、用于軟件基元的(一個(gè)或多個(gè))優(yōu)選處理器、性能對(duì)功率的排名、固定功能硬件可用性(例如,一些基元可以僅采用軟件來(lái)實(shí)現(xiàn))、和/或圖像基元是否能夠處理圖像信息的子集(例如,作為用于二維圖像的4k緩存駐留像素圖像“拼貼(tile)”而被處理)的指示。也就是說(shuō),這些基元屬性500可以被用來(lái)定義運(yùn)行時(shí)的圖像基元行為。
[0032]圖像基元可以被存儲(chǔ)在基元屬性數(shù)據(jù)庫(kù)或者其它數(shù)據(jù)結(jié)構(gòu)內(nèi),并且被由管線控制器訪問(wèn)的編譯器或翻譯器用來(lái)解釋屬性并根據(jù)屬性執(zhí)行基元。例如,圖6是根據(jù)一些實(shí)施例的具有基元屬性數(shù)據(jù)庫(kù)640或者其它數(shù)據(jù)結(jié)構(gòu)的成像處理單元600的框圖。圖像處理單元600包括執(zhí)行圖像信息的圖像計(jì)算構(gòu)造610,包括:固定功能硬件圖像處理單元612、SIMD圖像執(zhí)行單元614、VLIff處理單元616、和/或通用處理單元618。圖像處理單元600可以基于輸入圖像數(shù)據(jù)來(lái)執(zhí)行一系列圖像基元620以創(chuàng)建輸出圖像數(shù)據(jù),并且圖像管線控制器630可以被用來(lái)幫助將圖像基元620部署至圖像計(jì)算構(gòu)造610。圖像管線控制器630可以基于基元屬性數(shù)據(jù)庫(kù)640或者其它數(shù)據(jù)結(jié)構(gòu)中的信息來(lái)部署圖像基元620(例如,至圖像計(jì)算構(gòu)造610的各種組件)。例如,軟件應(yīng)用可以使用應(yīng)用編程接口(API)來(lái)查詢圖像基元屬性及關(guān)聯(lián)的資產(chǎn),并且然后應(yīng)用可以基于可用的基元屬性來(lái)選擇用于使用圖像基元620的優(yōu)選方法。
[0033]根據(jù)一些實(shí)施例,運(yùn)行時(shí)的圖像管線控制器630和/或基元屬性數(shù)據(jù)庫(kù)640或者其它數(shù)據(jù)結(jié)構(gòu)可以讀每個(gè)圖像基元620的基元屬性,以確定在給定的圖像計(jì)算構(gòu)造610內(nèi)運(yùn)行工作負(fù)載的最佳方式。例如,如在基元屬性中定義的那樣,圖像基元620可以在固定功能硬件612和軟件代理這二者中均可用,在該情況下應(yīng)用可以選擇應(yīng)當(dāng)執(zhí)行哪種類(lèi)型來(lái)實(shí)現(xiàn)性能對(duì)瓦特?cái)?shù)目標(biāo)。
[0034]根據(jù)一些實(shí)施例,當(dāng)軟件應(yīng)用未指定如何經(jīng)由基元屬性使用圖像屬性620時(shí),圖像管線控制器630和/或基元屬性數(shù)據(jù)庫(kù)640或者其它數(shù)據(jù)結(jié)構(gòu)可以被本發(fā)明內(nèi)的包括運(yùn)行時(shí)框架的各種組件用來(lái)自動(dòng)地嘗試優(yōu)化性能。根據(jù)一些實(shí)施例,運(yùn)行時(shí)框架可以根據(jù)每個(gè)基元的先驗(yàn)定義的屬性來(lái)自動(dòng)地嘗試對(duì)跨計(jì)算構(gòu)造的基元的性能進(jìn)行優(yōu)化,其中基元可以根據(jù)其屬性被分組成可以被有序或無(wú)序地執(zhí)行的區(qū)段。此外,如關(guān)于圖1OA至IOC所描述的,區(qū)段可以鏈在一起以形成管線,并且運(yùn)行時(shí)框架可以根據(jù)按照針對(duì)每個(gè)基元所定義的屬性的可用計(jì)算資源來(lái)優(yōu)化工作負(fù)載。此外,優(yōu)化可以包括調(diào)整計(jì)算資產(chǎn)的行為,諸如時(shí)鐘頻率、電壓、總線速度、處理器速度、用于線程的處理器時(shí)間片大小、設(shè)備和線程優(yōu)先級(jí)、總線仲裁優(yōu)先級(jí)、存儲(chǔ)器拼貼大小、緩存行為、存儲(chǔ)器行為、SW或FF HW的基元實(shí)現(xiàn)方法等。
[0035]例如,圖7是根據(jù)一些實(shí)施例的具有初始化組件732和定序器組件734的成像處理單元700的框圖。圖像處理單元700包括執(zhí)行圖像信息的圖像計(jì)算構(gòu)造710,包括:固定功能硬件圖像處理單元712、SIMD圖像執(zhí)行單元714、VLIff處理單元716、和/或通用處理單元718。圖像處理單元700可以基于輸入圖像數(shù)據(jù)來(lái)執(zhí)行一系列圖像基元720以創(chuàng)建輸出圖像數(shù)據(jù),并且圖像管線控制器730可以被用來(lái)幫助將圖像基元720部署至圖像計(jì)算構(gòu)造710。圖像管線控制器730可以基于基元屬性數(shù)據(jù)庫(kù)740或者其它數(shù)據(jù)結(jié)構(gòu)中的信息來(lái)部署圖像基元720 (例如,至圖像計(jì)算構(gòu)造710的各種組件)。初始化組件732可以例如被用來(lái)使攝像機(jī)、圖像傳感器、或者任何其它設(shè)備初始化。
[0036]定序器組件734可以針對(duì)管線序列中的有序圖像基元執(zhí)行而執(zhí)行定序算法以對(duì)圖像流內(nèi)的圖像基元720進(jìn)行排序。根據(jù)一些實(shí)施例,圖像基元720可以與原始次序相關(guān)聯(lián),并且可以針對(duì)管線序列中的“無(wú)序”基元執(zhí)行而對(duì)圖像基元720的至少一些采用不同于原始次序的次序來(lái)執(zhí)行圖像基元720的執(zhí)行。例如,在運(yùn)行時(shí)定序器組件734可以對(duì)圖像基元720進(jìn)行排序以在圖像計(jì)算構(gòu)造710內(nèi)高效地執(zhí)行。例如,部分的圖像流可以允許無(wú)序的圖像基元執(zhí)行(并且可以不具有依賴性),并且此類(lèi)圖像基元720可以是用于跨圖像計(jì)算構(gòu)造710的組件的并行執(zhí)行的候選。
[0037]資源管理器和運(yùn)行時(shí)資源鎖定機(jī)制可以負(fù)責(zé)確定圖像計(jì)算構(gòu)造710的資產(chǎn)或組件的可用性、鎖定資產(chǎn)以供管線或應(yīng)用的排他性使用、監(jiān)視資產(chǎn)狀態(tài)、和/或釋放資產(chǎn)以供其它管線或應(yīng)用的使用。此類(lèi)方法可以例如準(zhǔn)許多個(gè)同時(shí)的應(yīng)用使用圖像計(jì)算構(gòu)造710的組件。例如,圖8是根據(jù)一些實(shí)施例的處理多個(gè)圖像流820的成像處理單元800的框圖。圖像處理單元800包括執(zhí)行圖像信息的圖像計(jì)算構(gòu)造810,包括:固定功能硬件圖像處理單元812,SIMD圖像執(zhí)行單元814、VLIW處理單元816、和/或通用處理單元818。圖像處理單元800可以基于輸入圖像數(shù)據(jù)來(lái)執(zhí)行用于多個(gè)圖像流820的一系列圖像基元以創(chuàng)建輸出圖像數(shù)據(jù),并且圖像管線控制器830可以被用來(lái)幫助將圖像流820的圖像基元部署至圖像計(jì)算構(gòu)造810。圖像管線控制器830可以基于基元屬性數(shù)據(jù)庫(kù)840或者其它數(shù)據(jù)結(jié)構(gòu)中的信息來(lái)部署圖像流820的圖像基元(例如,至圖像計(jì)算構(gòu)造810的各種組件)。例如,不同的圖像流820可以與正被操作系統(tǒng)所執(zhí)行的不同應(yīng)用相關(guān)聯(lián),并且關(guān)于圖像流820的信息可以與API相關(guān)聯(lián)。
[0038]根據(jù)一些實(shí)施例,圖像管線控制器830中的拼貼處理器836可以至少部分地基于基元屬性數(shù)據(jù)庫(kù)840中的基元屬性來(lái)確定圖像數(shù)據(jù)的拼貼子集是否要被部署至圖像計(jì)算構(gòu)造810。例如,基兀屬性可以指不圖像流820中的卷積圖像基兀能夠被劃分成能夠由圖像計(jì)算構(gòu)造810的組件單獨(dú)地處理(例如,以慮及更高效的執(zhí)行)的拼貼。也就是說(shuō),在運(yùn)行時(shí)拼貼處理器835可以管理將正通過(guò)管線被發(fā)送的圖像流820在可能和/或由應(yīng)用指定時(shí)劃分成被拼貼的區(qū)域。拼貼技術(shù)可以使圖像采用符合緩存線內(nèi)部的更小的拼貼來(lái)處理,從而使得能夠在具有少的頁(yè)面錯(cuò)誤或不具有頁(yè)面錯(cuò)誤的情況下實(shí)現(xiàn)對(duì)數(shù)據(jù)的交換空閑訪問(wèn)。如與在整個(gè)圖像上序列地處理每個(gè)圖像基元相比,這可以使性能加速。
[0039]根據(jù)一些實(shí)施例,圖像管線控制器830中的負(fù)載分發(fā)器和平衡器838可以在不同圖像流820中的圖像基元之間執(zhí)行負(fù)載平衡算法。例如,在運(yùn)行時(shí)負(fù)載分發(fā)器和平衡器838可以使多個(gè)應(yīng)用同時(shí)地使用圖像計(jì)算構(gòu)造810中的可用資產(chǎn),并且流復(fù)用器可以管理資源鎖定和資源競(jìng)爭(zhēng)問(wèn)題。負(fù)載分發(fā)器和平衡器838還可以執(zhí)行工作負(fù)載分發(fā)算法以選擇圖像處理組件來(lái)接收?qǐng)D像流820中的圖像基元之一。該選擇可以基于功率和性能策略、資源預(yù)留優(yōu)先級(jí)、管線優(yōu)先級(jí)、和/或資源可用性仲裁優(yōu)先級(jí)。根據(jù)一些實(shí)施例,工作負(fù)載分發(fā)算法可以針對(duì)與圖像計(jì)算構(gòu)造810中的圖像基元的執(zhí)行相關(guān)聯(lián)的功率或性能減少停止和/或優(yōu)化。因此,負(fù)載分發(fā)器和平衡器838可以跨圖像計(jì)算構(gòu)造810中的可用資源而散布工作負(fù)載,以在可能時(shí)使工作負(fù)載執(zhí)行并行化。根據(jù)一些實(shí)施例,基元屬性數(shù)據(jù)庫(kù)840中的信息可以為負(fù)載分發(fā)器和平衡器838提供引導(dǎo)。
[0040]例如,工作負(fù)載分發(fā)算法可以基于基元屬性和/或圖像處理組件狀態(tài)來(lái)選擇固定功能硬件圖像處理單元812或者固定功能硬件圖像處理單元812的“軟件仿真”或代理之一(例如,當(dāng)固定功能硬件圖像處理單元812在由另一應(yīng)用使用時(shí),負(fù)載分發(fā)器和平衡器838可以選擇使用該組件的軟件代理作為代替)。圖9是根據(jù)一些實(shí)施例的提供固定功能硬件950的軟件代理仿真的成像處理單元900的框圖。圖像處理單元900包括執(zhí)行圖像信息的圖像計(jì)算構(gòu)造910,包括:固定功能硬件圖像處理單元912、SMD圖像執(zhí)行單元914、VLIW處理單元916、和/或通用處理單元918。圖像處理單元900可以基于輸入圖像數(shù)據(jù)來(lái)執(zhí)行用于多個(gè)圖像流920的一系列圖像基元以創(chuàng)建輸出圖像數(shù)據(jù),并且圖像管線控制器930可以將圖像流920的圖像基元部署至圖像計(jì)算構(gòu)造910。圖像管線控制器930可以基于基元屬性數(shù)據(jù)庫(kù)940或者其它數(shù)據(jù)結(jié)構(gòu)中的信息來(lái)將圖像流920的圖像基元部署至軟件代理仿真950和/或圖像計(jì)算構(gòu)造910的各種組件。例如,當(dāng)圖像計(jì)算構(gòu)造910中的對(duì)應(yīng)組件當(dāng)前正由另一圖像流920和/或另一應(yīng)用使用時(shí),可以將圖像基元部署至軟件代理仿真950。
[0041]注意,圖9表示根據(jù)一些實(shí)施例的邏輯架構(gòu),并且實(shí)際實(shí)現(xiàn)可以包括采用其它方式而布置的更多或不同的組件。此外,本文所描述的每個(gè)系統(tǒng)可以由經(jīng)由任何數(shù)目的通信路徑進(jìn)行通信的任何數(shù)目的設(shè)備來(lái)實(shí)現(xiàn)??梢钥梢栽趩蝹€(gè)組件中實(shí)現(xiàn)兩個(gè)或更多的設(shè)備。進(jìn)而,每個(gè)設(shè)備可以包括適于提供本文所描述的功能以及任何其它功能的任何數(shù)目的硬件和/或軟件元件??梢越Y(jié)合其它實(shí)施例來(lái)使用其它拓?fù)洹?br>
[0042]圖像流920由圖像基元的序列構(gòu)成。根據(jù)一些實(shí)施例,流內(nèi)的圖像基元的子集與圖像流“區(qū)段”相關(guān)聯(lián)。例如,圖1OA圖示根據(jù)一些實(shí)施例的1000圖像流中的區(qū)段。特別地,第一圖像流1010包括圖像流區(qū)段1012,包括圖像基元A、B和C。第一圖像流1010還包括多個(gè)單獨(dú)的圖像基元1014、1016。第二圖像流1020包括其它圖像流區(qū)段1022 (包括圖像基元A、EJP F)以及1024 (包括圖像基元B、D、和G)。
[0043]圖1OA的圖像流1010、1020可以由“有序”圖像流區(qū)段構(gòu)成。也就是說(shuō),每個(gè)圖像流區(qū)段可以僅在前面的區(qū)段已經(jīng)執(zhí)行之后才被部署至圖像計(jì)算構(gòu)造(序列執(zhí)行)。然而,要注意,一些圖像流可以支持無(wú)序執(zhí)行。例如,圖1OB圖示1030三個(gè)圖像流區(qū)段由圖像計(jì)算構(gòu)造并行地執(zhí)行(跨計(jì)算資源而散布開(kāi))。類(lèi)似地,圖1OC圖示1040由鏈在一起的有序和無(wú)序圖像流區(qū)段這二者構(gòu)成的圖像管線。
[0044]根據(jù)一些實(shí)施例,圖像流區(qū)段可以與用于工作負(fù)載分發(fā)、停止減少、功率優(yōu)化、性能優(yōu)化、負(fù)載平衡、和/或定序算法的一個(gè)或多個(gè)圖像流屬性相關(guān)聯(lián)。因此,管線或者圖像流可以由區(qū)段構(gòu)成,其中區(qū)段由圖像基元集構(gòu)成。此外,基元集可以是固定功能硬件、能夠在固定功能硬件被占用時(shí)所使用的固定功能硬件的軟件代理仿真、或者“僅軟件”基元的組合。此外,可以有序或者無(wú)序地執(zhí)行區(qū)段。根據(jù)一些實(shí)施例,圖像基元、區(qū)段和/或整個(gè)管線可以具有策略屬性,諸如優(yōu)先級(jí)、功率/性能預(yù)算、存儲(chǔ)器大小請(qǐng)求、存儲(chǔ)器帶寬請(qǐng)求。注意,可編程區(qū)段能夠被提供成使得其與任意的圖像基元集和/或任意的圖像基元次序相關(guān)聯(lián)(例如,以允許客戶對(duì)區(qū)域圖像處理功能進(jìn)行編程)。
[0045]因此,圖像流的區(qū)段可以被分配各種屬性以控制其在運(yùn)行時(shí)期間的執(zhí)行。例如,圖11是根據(jù)一些實(shí)施例的用于區(qū)段屬性定義的圖形用戶界面1100的示例。⑶I 1100可以例如使軟件開(kāi)發(fā)者定義用于攝像機(jī)固定功能硬件區(qū)段及關(guān)聯(lián)的攝像機(jī)軟件代理區(qū)段的屬性。具體地,GUI 1100可以被用來(lái)為區(qū)段適當(dāng)?shù)亍按蜷_(kāi)”或“關(guān)閉”各種屬性(例如,去噪、偽跡去除、和/或視頻穩(wěn)定屬性)。
[0046]當(dāng)將區(qū)段部署至圖像計(jì)算構(gòu)造時(shí),可以由圖像管線控制器來(lái)使用這些屬性。例如,圖12是圖示根據(jù)一些實(shí)施例的與圖像流區(qū)段相關(guān)聯(lián)的方法的流程圖。在1202處,可以由圖像管線控制器來(lái)接收具有多個(gè)區(qū)段的圖像流。例如,可以從智能電話視頻攝像機(jī)接收?qǐng)D像流。在1204處,可以針對(duì)區(qū)段而執(zhí)行停止避免和功率優(yōu)化分析。例如,圖像管線控制可以試著避免同時(shí)將多個(gè)任務(wù)部署至相同的組件。在1206處,可以結(jié)合各種管線、區(qū)段、和/或單獨(dú)的圖像基元來(lái)執(zhí)行工作負(fù)載分發(fā)和負(fù)載平衡分析。例如,圖像管線控制器可以嘗試將任務(wù)部署至未充分利用的圖像資源或資產(chǎn)。在1208處,可以為區(qū)段選擇執(zhí)行組件?;?208處的選擇,區(qū)段可以在1210處被分配至固定功能硬件圖像處理單元,或者在1212處被分配至固定功能硬件圖像處理單元的軟件代理。
[0047]圖13是根據(jù)一些實(shí)施例的包括圖像計(jì)算構(gòu)造1310(例如,與本文所描述的任何圖像執(zhí)行組件相關(guān)聯(lián)的)和軟件架構(gòu)特性1320的總體視圖1300。軟件架構(gòu)特性1320可以包括同時(shí)執(zhí)行的多個(gè)應(yīng)用。此外,應(yīng)用可以經(jīng)由可以被提供用于常見(jiàn)用例的軟件庫(kù)而訪問(wèn)用于硬件上下文管理的軟件框架(使得能夠?qū)崿F(xiàn)多個(gè)同時(shí)的應(yīng)用)。此外,可以為軟件架構(gòu)特性1320提供硬件抽象層處的軟件基元。以該方式,可以提供編程模型,從而使用圖像基元來(lái)簡(jiǎn)化軟件應(yīng)用的開(kāi)發(fā)。此外,傳感器處理可以與針對(duì)片上系統(tǒng)(SOC)圖像產(chǎn)品的減少的軟件開(kāi)發(fā)和/或工具成本以及改進(jìn)的軟件可擴(kuò)展性相關(guān)聯(lián)。
[0048]本文所描述的實(shí)施例可以提供跨與感知計(jì)算軟件和固定功能硬件相關(guān)聯(lián)的不同執(zhí)行組件和/視覺(jué)計(jì)算資產(chǎn)的標(biāo)準(zhǔn)軟件AP1、攝像機(jī)管線和資產(chǎn)以幫助提供改進(jìn)的用戶體驗(yàn)和性能對(duì)瓦特?cái)?shù)優(yōu)點(diǎn)。
[0049]因此,將圖像基元高效、準(zhǔn)確且自動(dòng)地部署至圖像計(jì)算構(gòu)造的方法和機(jī)制可以使得能夠?qū)崿F(xiàn)諸如三維深度感知、高分辨率圖像、用于計(jì)算攝影的高幀速率圖像捕獲、面部識(shí)另IJ、場(chǎng)面分析等之類(lèi)的用例。圖像管線可以包括接近于圖像傳感器的固定功能硬件資產(chǎn)、處理器圖形組件內(nèi)部的固定功能硬件資產(chǎn)、以及各種軟件API的和庫(kù),以處理高級(jí)用例。凝聚性架構(gòu)模型可以將不相干的資產(chǎn)系在一起成完整的系統(tǒng),以使得能夠?qū)崿F(xiàn)軟件創(chuàng)新并且暴露跨操作系統(tǒng)平臺(tái)的攝像機(jī)管線和可用資產(chǎn)。
[0050]根據(jù)一些實(shí)施例,運(yùn)行時(shí)框架可以自動(dòng)地嘗試根據(jù)每個(gè)基元的先驗(yàn)定義的屬性來(lái)促進(jìn)或優(yōu)化跨計(jì)算構(gòu)造的基元的性能。此外,根據(jù)一些實(shí)施例,基元可以被分組成可以根據(jù)其屬性被有序或無(wú)序地執(zhí)行的區(qū)段。此外,區(qū)段可以被鏈在一起成管線,并且運(yùn)行時(shí)框架可以嘗試根據(jù)按照針對(duì)每個(gè)基元或區(qū)段所定義的屬性的可用計(jì)算資源來(lái)促進(jìn)或優(yōu)化工作負(fù)載。根據(jù)一些實(shí)施例,促進(jìn)或優(yōu)化可以包括:對(duì)多個(gè)同時(shí)的應(yīng)用共享計(jì)算構(gòu)造的支持、對(duì)由不同應(yīng)用的資源共享和使用的交織、用于計(jì)算構(gòu)造中的基元的資源鎖定和共享機(jī)制、調(diào)整計(jì)算基元資產(chǎn)的行為,諸如通過(guò)調(diào)整時(shí)鐘頻率、電壓、總線速度、處理器速度、用于線程的處理器時(shí)間片大小、設(shè)備和線程優(yōu)先級(jí)、總線仲裁優(yōu)先級(jí)、存儲(chǔ)器拼貼大小、緩存行為、存儲(chǔ)器行為、SW或FF HW的基元實(shí)現(xiàn)方法等。
[0051]以下說(shuō)明了各種附加的實(shí)施例但不構(gòu)成所有可能的實(shí)施例的定義,并且本領(lǐng)域技術(shù)人員將理解本發(fā)明適用于許多其它實(shí)施例。進(jìn)而,盡管為了清楚而簡(jiǎn)要地描述了以下實(shí)施例,但本領(lǐng)域技術(shù)人員將理解如果必要的話如何對(duì)上述裝置和方法做出任何改變,以適應(yīng)這些和其它實(shí)施例和應(yīng)用。
[0052]盡管已經(jīng)關(guān)于特定類(lèi)型的圖像傳感器和顯示器描述了實(shí)施例,但注意,實(shí)施例可以與其它類(lèi)型的傳感器和顯示器相關(guān)聯(lián)。例如,三維攝像機(jī)和/或顯示器可以由本文所描述的任何實(shí)施例支持。此外,雖然已經(jīng)使用處理圖像信息的特定方式來(lái)說(shuō)明了實(shí)施例,但注意,作為代替,實(shí)施例可以與任何其它種類(lèi)的圖像基元和/或算法相關(guān)聯(lián)。
[0053]本文僅為了說(shuō)明的目的而描述了實(shí)施例。本領(lǐng)域技術(shù)人員將從本說(shuō)明書(shū)認(rèn)識(shí)到實(shí)施例不限于所描述的那些,而可以在僅由所附權(quán)利要求的精神和范圍所限制的修改和更改的情況下實(shí)施。
【權(quán)利要求】
1.一種方法,包括: 在圖像管線控制器處確定具有要被執(zhí)行的多個(gè)圖像基元的圖像流,每個(gè)圖像基元與圖像算法和基元屬性集相關(guān)聯(lián);以及 由圖像管線控制器至少部分地基于基元屬性將圖像基元集自動(dòng)地部署至圖像計(jì)算構(gòu)造。
2.如權(quán)利要求1所述的方法,其中圖像計(jì)算構(gòu)造包括多個(gè)圖像處理組件,包括以下中的至少一個(gè):(i)固定功能硬件圖像處理單元,(ii)單指令多數(shù)據(jù)圖像執(zhí)行單元,(iii)超長(zhǎng)指令字處理單元,或者(iv)通用處理單元。
3.如權(quán)利要求2所述的方法,進(jìn)一步包括: 執(zhí)行工作負(fù)載分發(fā)算法以選擇接收?qǐng)D像流中的圖像基元之一的圖像處理組件。
4.如權(quán)利要求3所述的方法,其中工作負(fù)載分發(fā)算法基于基元屬性和圖像處理組件狀態(tài)來(lái)選擇固定功能硬件圖像處理單元或者所述固定功能硬件圖像處理單元的軟件仿真之一。
5.如權(quán)利要求4所述的方法,其中所述選擇進(jìn)一步基于以下中的至少一個(gè):(i)功率和性能策略,(ii)資源預(yù)留優(yōu)先級(jí),(iii)管線優(yōu)先級(jí),或者(iv)資源可用性仲裁優(yōu)先級(jí)。
6.如權(quán)利要求3所述的方法,其中工作負(fù)載分發(fā)算法針對(duì)與圖像計(jì)算構(gòu)造中的圖像基元的執(zhí)行相關(guān)聯(lián)的功率或者性能減少停止和優(yōu)化。
7.如權(quán)利要求1所述的方法,其中圖像管線控制器與以下中的至少一個(gè)相關(guān)聯(lián):(i)硬件圖像管線控制器,(ii)軟件圖像管線控制器,或者(iii)硬件和軟件圖像管線控制器組件的組合。
8.如權(quán)利要求1所述的方法,其中與多個(gè)圖像流相關(guān)聯(lián)的圖像基元被部署。
9.如權(quán)利要求8所述的方法,其中不同的圖像流與正被操作系統(tǒng)執(zhí)行的不同的應(yīng)用相關(guān)聯(lián),并且關(guān)于圖像流的信息與應(yīng)用編程接口相關(guān)聯(lián)。
10.如權(quán)利要求8所述的方法,進(jìn)一步包括: 在不同的圖像流中的圖像基元之間執(zhí)行負(fù)載平衡算法。
11.如權(quán)利要求1所述的方法,進(jìn)一步包括: 針對(duì)管線序列中的有序圖像基元執(zhí)行而執(zhí)行定序算法以對(duì)圖像流內(nèi)的圖像基元進(jìn)行排序。
12.如權(quán)利要求11所述的方法,其中圖像基元與原始次序相關(guān)聯(lián),并且所述執(zhí)行針對(duì)管線序列中的無(wú)序圖像基元執(zhí)行而對(duì)圖像基元的至少一些采用不同于原始次序的次序被執(zhí)行。
13.如權(quán)利要求1所述的方法,其中圖像基元的子集與圖像流區(qū)段相關(guān)聯(lián)。
14.如權(quán)利要求13所述的方法,其中圖像流區(qū)段與用于以下的至少一個(gè)圖像流屬性相關(guān)聯(lián):(i)工作負(fù)載分發(fā),(ii)停止減少,(iii)功率優(yōu)化,(iv)性能優(yōu)化,(v)負(fù)載平衡,或者(vi)定序算法。
15.如權(quán)利要求1所述的方法,其中圖像流與圖像數(shù)據(jù)集相關(guān)聯(lián),并且進(jìn)一步包括: 至少部分地基于基元屬性來(lái)確定圖像數(shù)據(jù)的拼貼子集是否要被部署至圖像計(jì)算構(gòu)造。
16.如權(quán)利要求1所述的方法,其中圖像屬性由開(kāi)發(fā)者定義并且存儲(chǔ)在基元屬性數(shù)據(jù)庫(kù)內(nèi)。
17.如權(quán)利要求16所述的方法,其中至少一個(gè)基元屬性與以下中的至少一個(gè)相關(guān)聯(lián):(i)多個(gè)計(jì)算單元,(?)性能值,(iii)功率值,(iv)熱值,或者(v)排名偏好。
18.如權(quán)利要求1所述的方法,其中圖像流與以下中的至少一個(gè)相關(guān)聯(lián):(i)攝像機(jī)傳感器,(ii)視頻傳感器,(iii)顯示屏,(iv)深度傳感器或立體圖像對(duì),或者(V)三維圖像。
19.如權(quán)利要求1所述的方法,其中圖像流與包括以下中的至少一個(gè)的圖像基元庫(kù)相關(guān)聯(lián):(i)傳感器基元,(ii)校準(zhǔn)基元,(iii)光學(xué)基元,(iv)發(fā)光基元,(V)深度基元,(Vi)分段基元,(Vii)色彩基元,(Viii)過(guò)濾器基元,或者(ix)三維深度基元。
20.如權(quán)利要求1所述的方法,其中至少一個(gè)圖像算法與以下中的至少一個(gè)相關(guān)聯(lián):(i)像素校正,(ii)偽跡去除,(iii)直方圖信息,(iv)按比例縮放功能,(V)面部識(shí)別,(vi)視覺(jué)對(duì)象識(shí)別,(vii)視覺(jué)場(chǎng)面分析,(viii)機(jī)器視覺(jué),(ix)手勢(shì)識(shí)別,或者(X)深度圖計(jì)笪
ο
21.一種在其上存儲(chǔ)有指令的非臨時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述指令被機(jī)器執(zhí)行時(shí)導(dǎo)致以下操作: 在圖像管線控制器處確定具有要被執(zhí)行的多個(gè)圖像基元的圖像流,每個(gè)圖像基元與圖像算法和基元屬性集相關(guān)聯(lián);以及 由圖像管線控制器至少部分地基于基元屬性將圖像基元集自動(dòng)地部署至圖像計(jì)算構(gòu)造。
22.如權(quán)利要求21所述的介質(zhì),其中圖像計(jì)算構(gòu)造包括多個(gè)圖像處理組件,包括以下中的至少一個(gè):(i)固定功能硬件圖像處理單元,(?)單指令多數(shù)據(jù)圖像執(zhí)行單元,(iii)超長(zhǎng)指令字處理單元,或者(iv)通用處理單元。
23.如權(quán)利要求22所述的介質(zhì),進(jìn)一步包括: 執(zhí)行工作負(fù)載分發(fā)算法來(lái)選擇接收?qǐng)D像流中的圖像基元之一的圖像處理組件。
24.—種裝置,包括: 包括多個(gè)圖像處理組件的圖像計(jì)算構(gòu)造;以及 圖像管線控制器,用以:(i)確定具有要被執(zhí)行的多個(gè)圖像基元的圖像流,每個(gè)圖像基元與圖像算法和基元屬性集相關(guān)聯(lián),以及(ii)至少部分地基于基元屬性將圖像基元集部署至圖像計(jì)算構(gòu)造。
25.如權(quán)利要求24所述的裝置,其中圖像基元的子集與圖像流區(qū)段相關(guān)聯(lián),每個(gè)圖像流區(qū)段與至少一個(gè)圖像流屬性相關(guān)聯(lián),并且進(jìn)一步地,其中圖像流區(qū)段與原始次序相關(guān)聯(lián)并且以不同于所述原始次序的次序被執(zhí)行。
26.如權(quán)利要求25所述的裝置,其中圖像管線控制器通過(guò)調(diào)整以下中的至少一個(gè)來(lái)促進(jìn)圖像基元執(zhí)行:(i)時(shí)鐘頻率,(?)電壓,(iii)總線速度,(iv)處理器速度,(V)用于線程的處理器時(shí)間片大小,(vi)設(shè)備和線程優(yōu)先級(jí),(vii)總線仲裁優(yōu)先級(jí),(viii)存儲(chǔ)器拼貼大小,(ix)緩存行為,(x)存儲(chǔ)器行為,或者(xi)固定功能硬件或軟件仿真的選擇。
27.—種系統(tǒng),包括: 數(shù)字顯示端口; 包括多個(gè)圖像處理組件的圖像計(jì)算構(gòu)造;以及 圖像管線控制器,用以:(i)確定具有要被執(zhí)行的多個(gè)圖像基元的圖像流,每個(gè)圖像基元與圖像算法和基元屬性集相關(guān)聯(lián),以及(ii)至少部分地基于基元屬性將圖像基元集部署至圖像計(jì)算構(gòu)造。
28.如權(quán)利要求27所述的系統(tǒng),其中圖像基元的子集與圖像流區(qū)段相關(guān)聯(lián),每個(gè)圖像流區(qū)段與至少一個(gè)圖像流屬性相關(guān)聯(lián),并且進(jìn)一步地,其中圖像流區(qū)段與原始次序相關(guān)聯(lián)并且以不同于所述原始次序的次序被執(zhí)行。
29.如權(quán)利要求27所述的系統(tǒng),其中圖像管線控制器通過(guò)調(diào)整以下中的至少一個(gè)來(lái)促進(jìn)圖像基元執(zhí)行:(i)時(shí)鐘頻率,(?)電壓,(iii)總線速度,(iv)處理器速度,(V)用于線程的處理器時(shí)間片大小,(vi)設(shè)備和線程優(yōu)先級(jí),(vii)總線仲裁優(yōu)先級(jí),(viii)存儲(chǔ)器拼貼大小,(ix)緩存行為 ,(x)存儲(chǔ)器行為,或者(xi)固定功能硬件或軟件仿真的選擇。
【文檔編號(hào)】G06T1/20GK103999121SQ201180075984
【公開(kāi)日】2014年8月20日 申請(qǐng)日期:2011年12月28日 優(yōu)先權(quán)日:2011年12月28日
【發(fā)明者】S.克里, S.泰勒 申請(qǐng)人:英特爾公司