本發(fā)明涉及生成輸入值的直方圖的設(shè)備以及分選(binning)輸入值以生成這樣的直方圖的方法。
背景技術(shù):
數(shù)字相機的處理流水線通常使用直方圖來總結(jié)由相機傳感器的像素捕獲的參數(shù)(例如,曝光度或顏色通道參數(shù))的頻率分布。直方圖將參數(shù)的可能輸入值范圍分成一系列條塊(bin),各個條塊表示具有落入該條塊的相應(yīng)范圍內(nèi)的參數(shù)的像素的數(shù)量的計數(shù)。流水線的圖像處理算法可使用這樣的直方圖以便執(zhí)行諸如自動曝光、自動聚焦和自動白平衡的相機的控制功能。相機傳感器將通常包括數(shù)以百萬計的像素,使用這樣的直方圖有助于以適當?shù)牧魉€算法可管理的細節(jié)水平提供所捕獲的幀的特性的總結(jié)。
技術(shù)實現(xiàn)要素:
根據(jù)本發(fā)明的第一方面,提供了一種將輸入值分選到條塊陣列中的設(shè)備,各個條塊表示一定范圍的輸入值并且所述條塊共同地表示輸入值的直方圖,所述設(shè)備包括:
用于接收所述輸入值的輸入端;
用于存儲所述陣列的存儲器;以及
分選控制器,該分選控制器被配置為:
根據(jù)關(guān)于所述輸入值所設(shè)置的分選分布從所述輸入值獲得多個條塊值,所述分選分布跨越一定范圍的輸入值并且各個條塊值具有取決于所述條塊值在所述分選分布中的位置的相應(yīng)輸入值;并且
將所述多個條塊值分配給所述陣列中的多個條塊,各個條塊值被分配給根據(jù)所述條塊值的相應(yīng)輸入值選擇的條塊。
所述分選分布可以以所述輸入值為中心。
所述分選分布可以是高斯分布或高斯分布的近似。
所述輸入值可以是從圖像幀的一個或更多個像素獲得的圖像特性。
所述分選控制器可被配置為根據(jù)一個或更多個預(yù)定義參數(shù)或自適應(yīng)參數(shù)來選擇所述分選分布的跨度。
所述分選控制器可被配置為依據(jù)由所述條塊陣列表示的所述直方圖的稀疏度的度量來選擇所述分選分布的跨度。
所述分選控制器可被配置為在將所述多個條塊值中的每一個分配給其相應(yīng)條塊之前,根據(jù)預(yù)定義的衰減因子使保持在所述條塊陣列的值衰減。
所述分選控制器可被配置為通過依據(jù)所述輸入值縮放所述分選分布來從所述輸入值獲得所述多個條塊值,所多個述條塊值中的每一個是所述分選分布在所述陣列的相應(yīng)條塊處的縮放的高度。
分選控制器可被配置為將所述直方圖歸一化,使得所述陣列中的條塊的和為1。
所述陣列中的各個條塊可具有等于一個單位的輸入值的寬度。
可在所述輸入端處接收表示成多個分量值的所述輸入值。
根據(jù)本發(fā)明的第二方面,提供了一種用于檢測輸入值序列的變化的數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置包括:
如本文所述的設(shè)備,該設(shè)備被配置為通過將所述序列中的多個輸入值分選到所述條塊陣列中來生成所述輸入值的直方圖;以及
變化檢測邏輯,該變化檢測邏輯被配置為使用所述直方圖來估計所接收的輸入值的可能性并且依據(jù)所估計的可能性來生成所述輸入值的變化的度量。
所估計的可能性可表示在假定由所述直方圖表示所述輸入值的頻率分布的情況下出現(xiàn)所接收的輸入值的概率的度量。
所述變化檢測邏輯可被配置為依據(jù)所述陣列中的與所接收的輸入值對應(yīng)的條塊的值來形成所述概率的度量。
所述變化檢測邏輯可被配置為從所述陣列中的條塊獲得歸一化的直方圖并且使用所述歸一化的直方圖中的與所接收的輸入值對應(yīng)的條塊的值作為所述概率的度量。
所述變化檢測邏輯可被配置為獲得所述歸一化的直方圖,使得所述直方圖中的條塊的和為1。
所述變化檢測邏輯可被配置為通過將所估計的可能性與預(yù)定義閾值或自適應(yīng)閾值進行比較來生成所述輸入值的變化的度量。
如果所估計的可能性超過所述預(yù)定義閾值或自適應(yīng)閾值,則所述變化的度量可指示所述輸入值序列的變化。
所述變化檢測邏輯可被配置為通過按照值的降序?qū)λ鰲l塊求和并且標識該和首次超過預(yù)定義的總數(shù)處的閾值條塊來形成所述自適應(yīng)閾值,并且依據(jù)所述閾值條塊的值來獲得所述自適應(yīng)閾值。
所述輸入值可以是針對幀的像素塊接收的圖像特性,并且所述數(shù)據(jù)處理裝置用于檢測所述像素塊中的運動。
所述變化的指示可以是標識所估計的可能性是否指示所述輸入值序列的變化的二進制值。
所述輸入值可以是亮度、色調(diào)、明度、光亮度、色度、彩度、飽和度或者其變化的度量中的一個或更多個。
根據(jù)本發(fā)明的第三方面,提供了一種將輸入值分選到條塊陣列中的計算機實現(xiàn)的方法,各個條塊表示一定范圍的輸入值并且所述條塊共同地表示輸入值的直方圖,所述方法包括以下步驟:
接收輸入值;
根據(jù)關(guān)于所述輸入值所設(shè)置的分選分布從所述輸入值獲得多個條塊值,所述分選分布跨越一定范圍的輸入值并且各個條塊值具有由所述條塊值在所述分選分布中的位置指示的相應(yīng)輸入值;以及
將所述多個條塊值分配給多個條塊,各個條塊值被分配給根據(jù)所述條塊值的相應(yīng)輸入值選擇的條塊。
所述方法還可包括步驟:在將所述多個條塊值中的每一個分配給其相應(yīng)條塊之前,根據(jù)預(yù)定義的衰減因子使保持在所述條塊陣列的值衰減。
從所述輸入值獲得所述多個條塊值的步驟可包括依據(jù)所述輸入值縮放所述分選分布,所述多個條塊值中的每一個是所述分選分布在所述陣列的相應(yīng)條塊處的縮放的高度。
所述方法可包括以下步驟:
將所述序列中的多個輸入值分選呢到所述條塊陣列中以生成所述輸入值的直方圖;
利用所述直方圖來估計所接收的輸入值的可能性;以及
依據(jù)所估計的可能性,生成所述輸入值的變化的度量。
所估計的可能性可表示在假定由所述直方圖表示所述輸入值的頻率分布的情況下出現(xiàn)所接收的輸入值的概率的度量。
使用所述直方圖的步驟可包括:依據(jù)所述陣列中的與所接收的輸入值對應(yīng)的條塊的值來形成所述概率的度量。
使用所述直方圖的步驟可包括:從所述陣列中的條塊獲得歸一化的直方圖并且使用所述歸一化的直方圖中的與所接收的輸入值對應(yīng)的條塊的值作為所述概率的度量。
生成變化的度量的步驟可包括:將所估計的可能性與預(yù)定義閾值或自適應(yīng)閾值進行比較。
如果所估計的可能性超過所述預(yù)定義閾值或自適應(yīng)閾值,則所述變化的度量可指示所述輸入值序列的變化。
所述方法還可包括通過以下步驟來形成所述自適應(yīng)閾值:
按照值的降序?qū)λ鰲l塊求和以標識該和首次超過預(yù)定義的總數(shù)處的閾值條塊;以及
依據(jù)所述閾值條塊的值來獲得所述自適應(yīng)閾值。
所述設(shè)備可在集成電路上以硬件來實現(xiàn)。可提供一種在集成電路制造系統(tǒng)處制造所述設(shè)備的方法。可提供一種集成電路定義數(shù)據(jù)集,該集成電路定義數(shù)據(jù)集在集成電路制造系統(tǒng)中被處理時配置所述系統(tǒng)以制造所述設(shè)備。可提供一種存儲有集成電路的計算機可讀描述的非瞬時計算機可讀存儲介質(zhì),所述計算機可讀描述在集成電路制造系統(tǒng)中被處理時使得集成電路制造系統(tǒng)制造所述設(shè)備。
可提供一種集成電路制造系統(tǒng),該集成電路制造系統(tǒng)包括:
非瞬時計算機可讀存儲介質(zhì),其存儲有描述所述設(shè)備的計算機可讀集成電路描述;
布局處理系統(tǒng),其被配置為處理所述集成電路描述以生成實現(xiàn)所述設(shè)備的集成電路的電路布局描述;以及
集成電路生成系統(tǒng),其被配置為根據(jù)所述電路布局描述來制造所述設(shè)備。
可提供用于執(zhí)行如本文所述的方法的計算機程序代碼??商峁┐鎯τ杏嬎銠C可讀指令的非瞬時計算機可讀存儲介質(zhì),所述計算機可讀指令在計算機系統(tǒng)處執(zhí)行時使得計算機系統(tǒng)執(zhí)行如本文所述的方法。
附圖說明
現(xiàn)在將參照附圖作為示例描述本發(fā)明。附圖中:
圖1是用于在相機處所捕獲的視頻幀的流中執(zhí)行運動檢測的設(shè)備的示意圖。
圖2示出通過將關(guān)于幀的塊形成的各個亮度值分選到單個條塊中來形成的稀疏直方圖。
圖3示出根據(jù)本文所描述的原理從圖2中所表示的相同亮度值集合形成的直方圖。
圖4是示出可在圖像處理器處執(zhí)行的處理的流程圖。
圖5示出按照大小排序的圖3所示的直方圖的條塊值。
圖6是示出根據(jù)第一方面的分選控制器和運動檢測器的操作的流程圖。
圖7示出在被分割成多個塊的圖像幀上操作的運動檢測器的二進制輸出。
圖8是集成電路制造系統(tǒng)的示意圖。
具體實施方式
作為示例呈現(xiàn)以下描述以使得本領(lǐng)域技術(shù)人員能夠制造并使用本發(fā)明。本發(fā)明不限于本文所描述的實施方式,對于本領(lǐng)域技術(shù)人員而言對所公開的時時反思后的各種修改將是顯而易見的。
使用直方圖的一個示例是在通過相機傳感器捕獲的幀序列中執(zhí)行運動檢測。例如,這在安全相機中會是有用特征,因為它允許相機在檢測運動時標記視頻供給中的運動周期或者僅記錄或發(fā)送所捕獲的視頻流。情況往往是這樣,相機硬件或者關(guān)聯(lián)的處理設(shè)備中可用于執(zhí)行運動檢測的資源非常有限,和/或期望以低功率來執(zhí)行運動檢測。結(jié)果,由相機傳感器捕獲的幀通常被下采樣(例如,從hd至vga分辨率)并且以低幀頻(例如,每秒10-15幀,而非比如說相機傳感器所提供的每秒30幀)在下采樣的幀中執(zhí)行運動檢測。
為了進一步降低處理負擔(dān),通常關(guān)于執(zhí)行何種運動檢測將幀分成塊集合,各個塊包括幀的多個像素。為了方便基于每塊的運動檢測處理(以及可能其它圖像處理功能),相機流水線可針對各個塊生成表示塊內(nèi)(可能在多個幀上)的圖像參數(shù)的頻率分布的直方圖。例如,可針對塊生成表示亮度的典型度量的直方圖,并且可通過尋找塊中的指示運動的亮度的突然變化來在該塊中標識運動。
然而,每塊針對參數(shù)使用有限數(shù)量的像素或采樣點和/或使用窄條塊和/或使用低幀頻可導(dǎo)致針對塊生成稀疏填充(sparsely-populated)的直方圖,即,在直方圖分布中具有相當大比例的空條塊和間隙的直方圖。這樣的直方圖可被稱為稀疏直方圖。稀疏直方圖的示例示出于圖2中。
稀疏直方圖往往是參數(shù)的基礎(chǔ)頻率分布的差質(zhì)量的表示。稀疏直方圖可在使用之前被過濾,以便形成直方圖所表示的參數(shù)的基礎(chǔ)頻率分布的改進估計。通常執(zhí)行這種過濾以生成更密集的直方圖,從而生成沒有顯著間隙的平滑分布。以這樣的方式過濾稀疏直方圖需要附加處理步驟,并且可導(dǎo)致保真度的損失(例如,多模態(tài)分布中的中間峰的衰減)。
描述用于生成輸入值的直方圖的設(shè)備和方法,其特別適合于隨輸入值的稀疏數(shù)據(jù)集一起使用。在本文所描述的示例中,所述設(shè)備和方法涉及在圖像幀序列中執(zhí)行運動檢測。通常,所述設(shè)備和方法可用于出于任何目的生成任何輸入值的直方圖,包括用于生成從相機傳感器或流水線接收的任何圖像特性的直方圖以及用于生成從音頻源接收的任何音頻特性的直方圖。如本文所述配置的設(shè)備和方法可被配置用于檢測輸入值中的變化的目的:這種變化檢測不限于在圖像幀序列中執(zhí)行運動檢測。將理解,下面關(guān)于生成特定圖像特性(例如,亮度或其標準偏差)的直方圖所描述的任何示例、特征或功能可通常被應(yīng)用于出于任何目的生成任何其它圖像特性、音頻特性或者來自任何源的其它輸入值的直方圖,不限于運動檢測。
現(xiàn)在將作為示例針對圖1所示的用于在相機處所捕獲的視頻幀序列中執(zhí)行運動檢測的設(shè)備描述本發(fā)明的各方面。
圖1是包括相機模塊101和運動檢測器115的設(shè)備的示意圖。相機模塊101包括被布置為向圖像處理器103提供幀的相機傳感器102。圖像處理器103可生成在運動檢測器和(可能地)在相機流水線上或之外的其它處理單元處使用的各種圖像特性。例如,圖像處理器可收集在相機流水線的自動白平衡和自動曝光功能處使用的統(tǒng)計數(shù)據(jù)。圖像處理器被配置為提供幀的一個或更多個塊的圖像特性。例如,各個幀可被分割成16個塊的集合,圖像處理器關(guān)于各個塊生成圖像特性。
塊可以是幀的一部分或全部,任何給定塊可與同一幀的其它塊交疊或不交疊。塊可以是幀的一個或更多個像素的集合,并且可具有任何形狀。塊的像素可在幀內(nèi)鄰接或不鄰接。幀的一個或更多個像素可不屬于針對幀定義的任何塊。幀的任何給定像素可屬于一個或更多個塊。
圖像處理器可被配置為針對圖像幀的一個或更多個顏色通道(例如,在相機處所捕獲的rgb圖像的情況下,針對紅色、綠色和藍色通道中的每一個)獨立地生成圖像特性。由圖像處理器提供的亮度的度量可作為顏色分量或其它圖像特性的集合來提供,以便于在運動檢測器處解釋為亮度的度量。
圖4中示出了流程圖400,流程圖400示出圖像處理器103的示例性操作。圖像處理器從相機傳感器102接收(輸入流104的)原始圖像401,并且執(zhí)行圖像的bayer空間處理402和去馬賽克403。在404,圖像處理器將原始圖像轉(zhuǎn)換為rgb圖像,在該rgb圖像上圖像處理器計算在相機流水線(未示出)的自動曝光和自動白平衡功能處使用的統(tǒng)計數(shù)據(jù)405。這些統(tǒng)計數(shù)據(jù)可被包括在提供給運動檢測器115的圖像特性108中。圖像處理器可另外執(zhí)行進一步的rgb空間處理406,例如顏色校正。圖像處理器將rgb圖像幀轉(zhuǎn)換到y(tǒng)uv顏色空間407以生成yuv圖像幀408,對該yuv圖像幀408可執(zhí)行yuv空間處理409(例如,對比度增強)。所得yuv幀可根據(jù)從圖像處理器得到其輸入的后續(xù)單元(例如,編碼器106)的要求按照一個或更多個不同的比例(scale)410、411來提供。在此示例中,縮放器(scalar)410可對應(yīng)于提供給編碼器106的幀流105以便于編碼為視頻流107。編碼器106可經(jīng)由可存儲來自相機傳感器(可能通過圖像處理器103處理)的幀數(shù)據(jù)的幀存儲部(store)118來接收幀。在一些示例中,運動檢測器可從圖像處理器103(例如,縮放器411)接收幀流。
可由圖像處理器103按照低于相機傳感器所捕獲的分辨率的分辨率來執(zhí)行圖像處理。例如,相機傳感器可以是hd傳感器,但是可按照比如說vga分辨率(640×480像素)來執(zhí)行圖像處理。諸如vga的較低分辨率通常對于生成用于運動檢測的統(tǒng)計數(shù)據(jù)而言足夠了,并且降低了圖像處理器所需的處理能力和/或允許圖像處理以低功率來執(zhí)行。在一些示例中,由相機傳感器捕獲的圖像幀可在被提供給圖像處理器之前被縮小,而相機傳感器直接向編碼器106提供完整分辨率幀(可能經(jīng)由數(shù)據(jù)存儲部118和/或另一單元,例如將原始幀轉(zhuǎn)換為yuv幀)。圖像處理器可被配置為提供在運動檢測器處使用的描述各個幀的一個或更多個塊的圖像特性,而不是提供圖像幀本身。
圖1所示的相機模塊101的布置方式僅是一種可能,將理解,相機模塊的各種其它布置方式也是可能的。具體地講,編碼器106是否存在與運動檢測器115的操作無關(guān),僅出于例示性目的被包括。相機模塊101僅需要為運動檢測器提供圖像特性108,這對運動檢測器形成指示塊處的運動的輸出而言足夠了。圖像特性108可包括一種或更多種不同類型的圖像特性,例如一個或更多個顏色通道的曝光度信息和顏色信息。在其它示例中,相機模塊101可以是在運動檢測器處使用的圖像特性108的任何其它源(例如,模塊101可從所存儲的圖像幀獲得圖像特性)。
在本發(fā)明的示例中,圖像處理器可提供幀的各個塊的亮度的度量作為運動檢測器的輸入值。這可以是塊的兩個或更多個像素上的平均亮度的度量、塊的隨機選擇或預(yù)定的像素的亮度的度量或者與塊關(guān)聯(lián)的亮度的任何其它度量。在這種情況下亮度的度量表示執(zhí)行運動檢測所基于的圖像特性108。亮度的度量可按照任何合適的方式來提供。例如,亮度值可用作塊的一個或更多個像素的亮度的度量(例如,yuv顏色空間的亮度分量),或者塊的亮度的度量可包括一個或更多個單獨的顏色分量,各個顏色分量表示塊的相應(yīng)顏色分量的平均值。
分選控制器109被配置為針對各個塊,基于隨時間針對塊(例如,關(guān)于多個幀)接收的圖像特性108維持表示塊的預(yù)期亮度分布的直方圖。直方圖的各個條塊表示一定范圍的亮度值。各個條塊的范圍可為單個亮度值。例如,在表示為0至255范圍內(nèi)的亮度值的亮度的情況下,直方圖可包括256個條塊,分選控制器將各個亮度值分配給其相應(yīng)條塊。在其它示例中,各個條塊可對應(yīng)于多個條塊值。條塊的寬度可在直方圖的輸入值的可能范圍上變化。
分選控制器109被配置為通過在從圖像處理器接收到塊的亮度輸入值時使針對該塊維持的直方圖的條塊值衰減并且將所接收的亮度值分配給其對應(yīng)條塊來維持直方圖。各個條塊可以是計數(shù)器,使得在將亮度值分配給條塊時,分選控制器109被配置為使與該條塊對應(yīng)的計數(shù)器的計數(shù)值增加某一預(yù)定值(例如,一)。以這樣的方式,形成輸入值的頻率分布的總結(jié)。
圖6示出表示包括分選控制器109的運動檢測器115的操作的示例的流程圖。在(例如,從相機模塊101)接收到塊601的亮度值時,分選控制器109和塊邏輯110執(zhí)行其相應(yīng)的功能,以便分別維持塊的直方圖和形成塊的運動輸出。下面更詳細地描述分選控制器和塊邏輯的操作。分選控制器和塊邏輯可按照任何方式(包括串行地或同時地/并行地)操作。然而,優(yōu)選地,在分選控制器利用所接收的亮度值更新直方圖之前由塊邏輯使用塊的直方圖。塊邏輯110表示變化檢測邏輯的示例,運動檢測器115表示用于檢測輸入值的變化的數(shù)據(jù)處理裝置的示例,其中,數(shù)據(jù)處理裝置被配置為對該輸入值操作。在其它示例中,輸入值可以不是關(guān)于幀的塊接收的,可以是例如要檢測電平的變化的音頻樣本。
現(xiàn)在將參照圖1和圖6描述示出分選控制器109可如何維持存儲器111處的直方圖112的示例。存儲器111可以是運動檢測器115可訪問的任何類型的數(shù)據(jù)存儲部;它可在數(shù)據(jù)存儲部的內(nèi)部或外部,并且可包括一個或更多個存儲元件。各個幀被分成一個或更多個塊,各個塊包括幀的一個或更多個像素,并且關(guān)于各個塊,由分選控制器在存儲器111處維持256條塊直方圖。
運動檢測器115可接收幀的各個塊的亮度的度量(圖6中的601)。在此示例中,各個幀被分成16個不交疊的塊,各個塊的亮度的度量是由圖像處理器103計算的塊的像素上的平均亮度的度量。在此示例中,分選控制器109被配置為從相機模塊101接收在相機傳感器102處捕獲的圖像幀的各個塊的像素上的紅色、綠色和藍色通道之和作為圖像特性108。這些圖像特性通??捎迷谙鄼C流水線處??稍趫D像處理器103處計算圖像特性或統(tǒng)計數(shù)據(jù)。
運動檢測器115可處理所接收的圖像特性以形成亮度值或其它值,要關(guān)于所述亮度值或其它值針對幀的一個或更多個塊維持直方圖。這可被視為形成針對圖6中的601接收塊的亮度的部分。例如,可針對幀的第i塊計算亮度值yi:
其中ri、gi和bi是塊上的作為圖像特性接收的紅色、綠色和藍色值之和,npixels是塊中的像素的數(shù)量,nblocks是圖像所分成的塊的數(shù)量。在本示例中,nblocks=16。亮度值yi將被稱作當前亮度值。
分選控制器109被配置為維持幀的一個或更多個塊的直方圖,所述直方圖針對各個塊表示隨時間的亮度的頻率分布。在接收到塊的亮度值時,分選控制器按照下面所述的方式利用所接收的亮度值來更新塊的直方圖(圖6中的603)。塊的直方圖的各個條塊可利用適合于實現(xiàn)的值來初始化。例如,對于具有256個條塊的直方圖,直方圖的各個條塊可初始被設(shè)定為:
在接收到塊的亮度值時,使該塊的直方圖的各個條塊
采取簡化的方法,則可根據(jù)下式利用當前亮度值來更新第i塊的直方圖的第li直方圖條塊:
其中l(wèi)earncoeff充當當前亮度值對其相應(yīng)條塊的貢獻。learncoeff的合適值可通過經(jīng)驗來確定。
在若干幀上,可構(gòu)建特定塊的像素值的預(yù)期分布的非參數(shù)表示,其允許捕獲復(fù)雜的多模態(tài)行為。然而,可從圖2所示的示例性直方圖看出,由于針對各個塊提供的有限數(shù)量的圖像特性以及相對于一定范圍的可能亮度值的窄條塊,上述簡化方法往往會導(dǎo)致稀疏直方圖。在圖2中,亮度值在條塊上的分布可被視為是不均勻的(具有間隙201和峰值202)。在本示例中,提供單個亮度值,但是在其它示例中,可提供圖像特性的一個以上的值(例如,可針對塊的不同區(qū)域提供不同圖像特性)。
現(xiàn)在將描述將圖像特性分配給直方圖條塊的改進方法。不是將針對塊接收的各個圖像特性分配給對應(yīng)直方圖的相應(yīng)條塊,而是使用各個圖像特性根據(jù)分選分布來獲得關(guān)于相應(yīng)條塊設(shè)置的多個直方圖條塊的條塊值。這是圖6中的602。分選分布可被預(yù)定義(例如,在設(shè)備或分選控制器的初始化時)或者被動態(tài)地定義(例如,依據(jù)由圖像處理器針對所捕獲的幀生成的特性)。例如,在針對塊接收的亮度值表示塊的像素上的平均亮度的情況下,可假設(shè)塊內(nèi)的實際亮度值具有高斯分布,該高斯分布具有以所接收的值為中心的均值μ并且具有預(yù)定義或自適應(yīng)的標準偏差σ。因此,將分選分布定義為高斯分布,可在圖6的603利用下式更新直方圖的條塊:
其中w是高斯核的半寬,并且
將所獲得的條塊值分配給其相應(yīng)條塊(圖6中的605)可在直方圖的條塊衰減(圖6中的604)之后執(zhí)行(例如,根據(jù)上式3)。一旦針對亮度值獲得的條塊值被分配給直方圖,可通過關(guān)于為下一塊維持的直方圖執(zhí)行相同步驟來將分選控制器移至所述下一塊(圖6中的606)??稍诖鎯ζ?11處針對幀的一個或更多個塊維持直方圖112,使得隨著針對幀序列的塊接收亮度值,各個直方圖表示針對對應(yīng)塊,亮度值的頻率隨時間的學(xué)習(xí)分布。
獲得條塊值所依據(jù)的分選分布的標準偏差可針對給定系統(tǒng)通過經(jīng)驗來確定(例如,通過利用分選控制器所生成的直方圖優(yōu)化由運動檢測器115執(zhí)行的運動檢測的精度)。可針對整個幀或者針對幀的任何區(qū)域確定或定義標準偏差(例如,可針對幀的各個塊確定標準偏差,針對塊確定的標準偏差在分選該塊的值時被使用)??捎煞诌x控制器或者在相機模塊的任何其它元件或運動檢測器處自適應(yīng)地確定標準偏差(例如,從通過簡單地分選亮度值而形成的直方圖估計標準偏差(例如,如上面參照圖2討論的))。這允許標準偏差隨著例如場景和/或光照條件變化而變化。標準偏差可以是由相機模塊提供的統(tǒng)計數(shù)據(jù)(例如,作為在圖像處理器103處執(zhí)行的計算的結(jié)果)。標準偏差無需為真實的數(shù)學(xué)標準偏差,可以是圖像特性的基礎(chǔ)或預(yù)期分布的寬度的任何合適的度量。
分選控制器可被配置為接收塊的多個亮度值,各個亮度值在為該塊維持的直方圖處被分選。分選控制器可被配置為接收塊的多個亮度值,各個亮度值在針對塊的相應(yīng)亮度值維持的單獨直方圖處被分選,使得針對該塊維持多個直方圖??砂凑杖魏畏绞结槍K生成各個亮度值:例如,各個亮度值可關(guān)于塊的不同像素或像素組而生成,和/或各個亮度值可按照不同的方式(例如,塊的相同或不同像素的不同的平均值)來計算。
圖3示出由分選控制器109維持的直方圖301,使得針對塊接收的亮度值根據(jù)高斯分布被分配給塊的直方圖??梢钥闯觯煞诌x控制器學(xué)習(xí)的直方圖不會遭受值稀疏的問題,并且表示對塊的真實亮度概率分布的更好的近似。分選控制器可被配置為利用對真實高斯分布的近似來分配亮度值。通常,可使用被認為針對特定應(yīng)用提供足夠好的性能的任何合適的分布(例如,三角形分布或矩形分布)。
對于除了亮度以外的圖像特性,可能適合的是根據(jù)除了高斯分布以外的分布(其反映塊上的該圖像特性的值的基礎(chǔ)分布)將圖像特性分配給直方圖條塊。
在圖1中,分選控制器109被示出為運動檢測器115的一部分。這僅是示例,將理解,分選控制器無需被設(shè)置在運動檢測器處;分選控制器可被設(shè)置在任何類型的設(shè)備處,作為分立的單元設(shè)置,或者設(shè)置在軟件中。
由分選控制器109在存儲器111處針對幀序列的塊維持的學(xué)習(xí)的直方圖112可被塊邏輯110用作針對塊出現(xiàn)的特定亮度值的概率分布的表示。所接收的亮度值屬于直方圖分布的概率pbackground可由塊邏輯110通過在與所接收的亮度值對應(yīng)的條塊處的學(xué)習(xí)的直方圖中查找來確定。這是圖6中的607。直方圖可以是直方圖的歸一化版本:
其中
各個直方圖可按照歸一化的形式存儲在存儲器111處,或者各個條塊的歸一化的值可由運動檢測器115(例如,在塊邏輯110處)計算。例如,式8中所使用的條塊之和
通常,塊邏輯可被配置為形成在假定由直方圖表示頻率分布的情況下出現(xiàn)所接收的亮度值的可能性的某種度量。這是圖6中的608。所述可能性無需為真實概率,可采用任何合適范圍的值,未必在0到1之間。
可在所接收的亮度值被分配給直方圖之前利用直方圖執(zhí)行條塊概率計算。由于分選控制器根據(jù)某種分選分布將亮度值分配給直方圖,所以針對各個塊維持的直方圖是平滑的并且可被直接采樣,而不存在由于將隨稀疏直方圖出現(xiàn)的不均勻分布(因此,不精確概率)而引起的錯誤。
由塊邏輯110進行的概率的直接采樣可能不完全精確,因為與學(xué)習(xí)的直方圖相比的輸入亮度值本身具有與其關(guān)聯(lián)的分布。這可通過假設(shè)相同的高斯分布(或者適合于特定實現(xiàn)方式的其它分布)并且將它與采樣的概率相聯(lián)系來解決。然后可由塊邏輯將輸入亮度值屬于直方圖分布的概率計算為:
同樣,分布可被近似。例如,如果計算資源極其有限,則分布可利用方框內(nèi)核(boxkernel)來近似:
塊邏輯110使用關(guān)于針對塊接收的亮度值所計算的概率以便確定塊是否可能表示運動。例如,塊邏輯可就針對塊接收的亮度值是否指示塊包含運動(即,表示所捕獲的場景中的前景)形成二進制決策,前景運動的決策為fi=1,塊表示背景的決策為fi=0。一個方法是將亮度值屬于針對該塊維持的直方圖分布(即,是背景)的概率與預(yù)定義或自適應(yīng)閾值t進行比較:
可按照任何方式來標識合適的閾值,方法包括:通過經(jīng)驗來確定;從幀序列獲得(例如,作為在圖像處理器處生成的一個或更多個統(tǒng)計數(shù)據(jù));以及按照任何合適的方式自適應(yīng)地計算。在閾值自適應(yīng)的情況下這是圖6中的609。
使用預(yù)定義閾值通常不考慮直方圖所表示的亮度概率分布的可能多模態(tài)本質(zhì)。塊可處于的模式越多,被指派給各個模式的總概率越小,意味著應(yīng)該使用越小的閾值;而對于單模式塊,較高的閾值更適合。因此優(yōu)選的是使用自適應(yīng)地計算的閾值。
例如,合適的自適應(yīng)閾值可如下確定。塊的歸一化直方圖按照條塊值的順序排序,如圖5所示(對應(yīng)于圖3的直方圖)。這是圖6中的610。然后直方圖的條塊按照條塊值的降序求和,以標識滿足下式的n的值:
其中tuser是預(yù)定義閾值。這是圖6中的611。該閾值表示針對塊接收的亮度值屬于直方圖分布(即,表示由相機傳感器捕獲的場景中的背景)的總概率。將理解,排序步驟可被不明確地執(zhí)行,條塊可按照任何合適的方式按照條塊值的降序求和。將理解,高的n指示散開的直方圖,而低的n指示緊密聚集的直方圖。需要注意的是,表示圖3的直方圖的256個條塊在圖3和圖5中通過較少數(shù)量的條塊示意性地表示。
在圖5中,前n個條塊之和對應(yīng)于亮陰影區(qū)域501中的條塊值之和,使得閾值在條塊502處交叉:該條塊的值(在圖中由線503指示)被當作自適應(yīng)閾值tadaptive:
這是圖6中的612。自適應(yīng)閾值tadaptive可用于根據(jù)下式標識塊是否表示運動:
塊表示前景運動的決策為fi=1,塊表示背景的決策為fi=0。這是圖6中的613。由塊邏輯生成的決策表示運動檢測器所接收的亮度值的變化的度量。在其它示例中,塊邏輯的輸出可表示其它輸入值的變化的度量。通常,變化的度量可按照任何合適的方式提供,并且被表示為具有任何合適的范圍的值(包括像本示例中一樣,作為二進制值)。
在亮度值屬于塊的直方圖所表示的分布的概率低于自適應(yīng)閾值的情況下,塊邏輯被配置為將該塊標識為表示所捕獲的場景中的運動?;蛘?,塊邏輯被配置為將該塊標識為不表示所捕獲的場景中的運動。將顯而易見的是,對于更散開的多模態(tài)概率分布,自適應(yīng)閾值將較低,對于更緊密聚集的直方圖,自適應(yīng)閾值將較高。
通過就幀的各個塊是否被認為表示運動形成二進制決策,塊邏輯110可將運動矩陣114存儲在存儲器111中,其表示塊方式運動被確定存在于所接收的幀中。圖7中針對幀701示出了所存儲的矩陣114處保持的信息的示例。幀被分成16個塊,運動矩陣114指示哪些塊表示幀中的運動:指示運動的塊(例如,703)在圖中利用“m”來標記,不指示運動的塊(例如,702)在圖中不利用“m”來標記。圖中的這些標記僅是例示性的;通常,可使用確定塊處是否存在運動的任何指示。運動矩陣114可按任何合適的方式表示幀的一個或更多個塊的運動信息,包括例如作為二進制串、值陣列、或者作為被編碼為幀或者與幀本身關(guān)聯(lián)的信息。運動矩陣可以是或者可以不是值的矩形陣列。
在上述示例中,亮度作為在幀的各個塊中評估運動所基于的圖像特性被提供給運動檢測器115。然而,使用亮度在某些條件下可遭受差的性能(例如,場景中的光照條件的變化可導(dǎo)致假陽性運動決策。可利用塊的一個或更多個分量的散布的度量(例如,rgb幀的紅色、綠色和藍色通道)和/或塊的亮度的散布的度量來實現(xiàn)更穩(wěn)健的性能。散布的度量可以是圖像特性的變化的任何合適的度量,例如方差或標準偏差。
現(xiàn)在將參照圖1描述示例,其中由運動檢測器基于針對塊的紅色、綠色和藍色通道中的每一個形成的空間標準偏差來執(zhí)行運動檢測。相機模塊101被配置為針對幀的各個塊提供紅色、綠色和藍色通道中的每一個在塊的像素上的平方值之和作為圖像特性108。從這些和,可計算紅色、綠色和藍色通道中的每一個的空間標準偏差。例如,塊內(nèi)的紅色通道的標準偏差可根據(jù)下式來確定:
其中ri是塊的像素的紅色通道像素值,npixels是塊中的像素的數(shù)量。
可直接從各個像素的紅色、綠色和藍色像素值計算塊內(nèi)的像素值的復(fù)合空間標準偏差??稍诜诌x控制器109處形成這種復(fù)合空間標準偏差以表示塊的亮度的標準偏差。例如,可在分選控制器處從作為圖像特性接收的紅色、綠色和藍色像素值(或其平方)計算塊的亮度的標準偏差:
其中像素的亮度yi(或其平方)可例如作為圖像特性108從相機模塊101接收,或者從針對各個像素接收的紅色、綠色和藍色像素值(或其平方)計算。
可在上式2至14中代替亮度值yi使用塊的亮度的標準偏差σluminance。上面參照圖1至圖7以及式1至14描述的使用亮度值的任何示例、另選方式或選項加以必要變通應(yīng)用于使用亮度或其它圖像特性的標準偏差(或者散布的其它度量)。代替亮度使用標準偏差,分選控制器109被配置為針對各個塊維持塊的亮度的空間標準偏差的概率分布。因此,在各個幀處,針對塊接收的標準偏差根據(jù)分選分布被分選到該塊的學(xué)習(xí)的分布中。塊邏輯110被配置為就幀序列的一個或更多個塊中是否存在運動形成二進制決策??扇缟纤龌陬A(yù)定義或自適應(yīng)閾值形成決策。
在本文所描述的示例中,決策邏輯116可被配置為使用在運動檢測器115處針對幀的一個或更多個塊生成的運動信息(例如,運動矩陣)來形成幀的運動輸出117。例如,塊邏輯116可被配置為當在落在所定義的感興趣內(nèi)的一個或更多個塊中檢測到運動時在幀中標識出運動,或者當預(yù)定鄰接數(shù)量的塊指示運動時可標識出運動。幀的運動輸出117可采取任何合適的形式,包括作為二進制指示或者幀中觀察到的運動程度的某種度量(例如,運動檢測器115標識為代表運動的塊的數(shù)量或比例)。
決策邏輯還可接收(例如,與運動矩陣一起或者包括在運動矩陣中)在假定由分選控制器針對那些塊形成的直方圖表示頻率分布的情況下出現(xiàn)塊亮度值的可能性的度量(例如,在塊邏輯處形成)。這可允許決策邏輯進一步解釋針對幀形成的運動矩陣。例如,決策邏輯可被配置為檢查運動矩陣中沒有指示運動的一個或更多個塊是否在其相應(yīng)幀中被運動矩陣中指示運動的塊圍繞,并且如果是這種情況,則在其相應(yīng)的可能性的度量落在由塊邏輯確定的預(yù)定義或自適應(yīng)閾值附近的情況下,將那些被圍繞的塊也解釋為指示運動。
根據(jù)本文所描述的原理配置的運動檢測器115可在低功率處理器處實現(xiàn)。由運動檢測器或者關(guān)聯(lián)的決策邏輯117生成的塊或幀的運動輸出(例如,117)可被布置為喚醒另一處理器(例如,編碼器106)。此特定示例使得能夠以節(jié)能方式實現(xiàn)運動激活記錄。
幀包括多個像素,各個像素具有關(guān)聯(lián)的圖像特性。本文中使用術(shù)語像素來表示關(guān)于其計算、采樣、感測或者以其它方式形成圖像特性的任何類型的圖像元素。像素不限于與數(shù)字相機的感測元件(例如,紅色、綠色或藍色感測元件或其收集)具有一對一對應(yīng)關(guān)系。如本文所用,術(shù)語隨機涵蓋真實隨機和偽隨機分布、選擇或值二者;術(shù)語偽隨機涵蓋真實隨機和偽隨機分布、選擇或值二者。
圖1的相機模塊和運動檢測器被示出為包括若干功能塊。這僅是示意性的,并非意在限定這些實體的不同邏輯元件之間的嚴格劃分。各個功能塊可按照任何合適的方式設(shè)置。將理解,本文中被描述為由相機模塊或運動檢測器的任何實體形成的中間值無需由相機模塊或運動檢測器在任何點物理地生成,可僅僅表示方便地描述由相機模塊或運動檢測器在其輸入和輸出之間執(zhí)行的處理的邏輯值。
圖4和圖6的流程圖僅是示意性的。那些流程圖中所示的示例中的步驟的間距和相對位置不應(yīng)被當作以絕對方式或相對于其它步驟指示各個步驟發(fā)生的精確時間。流程圖僅僅示出根據(jù)本文所描述的示例可執(zhí)行步驟的示例性順序。
通常,上述任何功能、方法、技術(shù)或組件可實現(xiàn)于軟件、固件、硬件(例如,固定邏輯電路)或其組合中。本文中可使用術(shù)語“模塊”、“功能”、“組件”、“元件”、“單元”、“塊”和“邏輯”來總體地表示軟件、固件、硬件或其任何組合。在軟件實現(xiàn)方式的情況下,模塊、功能、組件、元件、單元、塊或邏輯表示當在處理器上執(zhí)行那時執(zhí)行所指定的任務(wù)的程序代碼。本文所述的算法和方法可由執(zhí)行代碼的一個或更多個處理器來執(zhí)行,所述代碼使得處理器執(zhí)行所述算法/方法。計算機可讀存儲介質(zhì)的示例包括隨機存取存儲器(ram)、只讀存儲器(rom)、光盤、快閃存儲器、硬盤存儲器以及可使用磁、光以及其它技術(shù)來存儲指令或其它數(shù)據(jù)并且可由機器訪問的其它存儲器裝置。
如本文所用,術(shù)語計算機程序代碼和計算機可讀指令表示用于處理器的任何類型的可執(zhí)行代碼,包括以機器語言表示的代碼、解釋性語言或腳本語言??蓤?zhí)行代碼包括二進制代碼、機器代碼、字節(jié)代碼、定義集成電路的代碼(例如,硬件描述語言或網(wǎng)表)以及以諸如c、java或opencl的編程語言代碼表示的代碼??蓤?zhí)行代碼可以是例如任何類型的軟件、固件、腳本、模塊或庫,其在虛擬機或其它軟件環(huán)境處被適當?shù)貓?zhí)行、處理、解釋、編譯、執(zhí)行時,使得支持可執(zhí)行代碼的計算機系統(tǒng)的處理器執(zhí)行代碼所指定的任務(wù)。
處理器、計算機或計算機系統(tǒng)可以是任何類型的裝置、機器或?qū)S秒娐?、或者其收集或一部分,其具有處理能力以使得它可?zhí)行指令。處理器可以是任何類型的通用或?qū)S锰幚砥鳎鏲pu、gpu、系統(tǒng)芯片、狀態(tài)機、媒體處理器、專用集成電路(asic)、可編程邏輯陣列、現(xiàn)場可編程門陣列(fpga)等。計算機或計算機系統(tǒng)可包括一個或更多個處理器。
還旨在涵蓋定義如本文所述的硬件的配置的軟件,例如hdl(硬件描述語言)軟件,其用于設(shè)計集成電路,或者用于配置可編程芯片,以執(zhí)行期望的功能。即,可提供一種以集成電路定義數(shù)據(jù)集的形式編碼有計算機可讀程序代碼的計算機可讀存儲介質(zhì),所述集成電路定義數(shù)據(jù)集在集成電路制造系統(tǒng)中被處理時配置所述系統(tǒng)制造被配置為執(zhí)行本文所述的任何方法的設(shè)備,或者制造本文所述的設(shè)備。集成電路定義數(shù)據(jù)集可以是例如集成電路描述。
集成電路定義數(shù)據(jù)集可為計算機代碼的形式,例如作為網(wǎng)表、用于配置可編程芯片的代碼、作為在任何級別定義集成電路的硬件描述語言,包括作為寄存器傳送級(rtl)代碼、作為高級電路表示(例如,verilog或vhdl)以及作為低級電路表示(例如,oasis(rtm)和gdsii)。邏輯上定義集成電路的高級表示(例如,rtl)可在被配置用于在包括電路元件的定義以及組合那些元件的規(guī)則的軟件環(huán)境的上下文中生成集成電路的制造定義的計算機系統(tǒng)處被處理以便生成由所述表示如此定義的集成電路的制造定義。軟件在計算機系統(tǒng)處執(zhí)行以定義機器時通常是這樣,為了使被配置用于生成集成電路的制造定義的計算機系統(tǒng)執(zhí)行定義集成電路的代碼,可能需要一個或更多個中間用戶步驟(例如,提供命令、變量等)以生成該集成電路的制造定義。
現(xiàn)在將參照圖8描述在集成電路制造系統(tǒng)處處理集成電路定義數(shù)據(jù)集以配置所述系統(tǒng)制造用于將輸入值分選到條塊陣列中的設(shè)備的示例。
圖8示出包括布局處理系統(tǒng)1004和集成電路生成系統(tǒng)1006的集成電路(ic)制造系統(tǒng)1002的示例。ic制造系統(tǒng)1002被配置為接收ic定義數(shù)據(jù)集(例如,定義如本文的任何示例中所描述的設(shè)備),處理ic定義數(shù)據(jù)集,并且根據(jù)ic定義數(shù)據(jù)集來生成ic(例如,實現(xiàn)如本文的任何示例中所描述的設(shè)備)。ic定義數(shù)據(jù)集的處理配置ic制造系統(tǒng)1002制造實現(xiàn)如本文的任何示例中所描述的設(shè)備的集成電路。
布局處理系統(tǒng)1004被配置為接收并處理ic定義數(shù)據(jù)集以確定電路布局。從ic定義數(shù)據(jù)集確定電路布局的方法是本領(lǐng)域已知的,例如可涉及合成rtl代碼以確定要生成的電路的門級表示(例如,從邏輯組件(例如,nand、nor、and、or、mux和flip-flop組件)方面)。可從電路的門級表示通過確定邏輯組件的位置信息來確定電路布局。這可自動地進行或者通過用戶參與來進行,以便優(yōu)化電路布局。當布局處理系統(tǒng)1004確定了電路布局時,它可向ic生成系統(tǒng)1006輸出電路布局定義。電路布局定義可以是例如電路布局描述。
ic生成系統(tǒng)1006根據(jù)電路布局定義來生成ic,如本領(lǐng)域已知的。例如,ic生成系統(tǒng)1006可實現(xiàn)半導(dǎo)體裝置制造工藝以生成ic,這可涉及在由半導(dǎo)體材料制成的晶圓上逐漸形成電子電路的多步的照相平版印刷和化學(xué)處理步驟序列。電路布局定義可為掩模的形式,該掩??捎迷谟糜诟鶕?jù)電路定義生成ic的平版印刷工藝中。另選地,提供給ic生成系統(tǒng)1006的電路布局定義可為計算機可讀代碼的形式,ic生成系統(tǒng)1006可使用其來形成用于生成ic的合適掩模。
由ic制造系統(tǒng)1002執(zhí)行的不同處理可全部在一個位置實現(xiàn)(例如,由一方實現(xiàn))。另選地,ic制造系統(tǒng)1002可以是分布式系統(tǒng),使得一些處理可在不同位置處執(zhí)行,并且可由不同方執(zhí)行。例如,一些階段:(i)合成表示ic定義數(shù)據(jù)集的rtl代碼以形成要生成的電路的門級表示、(ii)基于門級表示來生成電路布局、(iii)根據(jù)電路布局來形成掩模以及(iv)利用該掩模制造集成電路,可在不同位置執(zhí)行和/或由不同方執(zhí)行。
在其它示例中,在集成電路制造系統(tǒng)處處理集成電路定義數(shù)據(jù)集可配置所述系統(tǒng)制造設(shè)備,而無需處理ic定義數(shù)據(jù)集以生成電路布局。例如,集成電路定義數(shù)據(jù)集可定義可重配置處理器(例如,fpga)的配置,并且處理該數(shù)據(jù)集可配置ic制造系統(tǒng)生成具有該定義的配置的可重配置處理器(例如,通過將配置數(shù)據(jù)加載到fpga)。
在一些實施方式中,集成電路制造定義數(shù)據(jù)集當在集成電路制造系統(tǒng)中被處理時可使得集成電路制造系統(tǒng)生成如本文所述的裝置。例如,通過集成電路制造定義數(shù)據(jù)集按照上面關(guān)于圖8所描述的方式配置集成電路制造系統(tǒng)可使得如本文所述的裝置被制造。
在一些示例中,集成電路定義數(shù)據(jù)集可包括在數(shù)據(jù)集處定義的硬件上運行或者與數(shù)據(jù)集處定義的硬件組合的軟件。在圖8所示的示例中,ic生成系統(tǒng)還可由集成電路定義數(shù)據(jù)集配置,以在制造集成電路時根據(jù)集成電路定義數(shù)據(jù)集處定義的程序代碼將固件加載到集成電路上,或者向程序代碼提供集成電路以隨集成電路一起使用。
申請人由此孤立地公開了本文所述的各個單獨的特征以及兩個或更多個這些特征的任何組合,使得這些特征或組合能夠依據(jù)本領(lǐng)域技術(shù)人員的公知常識基于本說明書作為整體來實現(xiàn),而不管這些特征或特征的組合是否解決本文所公開的任何問題。鑒于以上描述,對于本領(lǐng)域技術(shù)人員而言將顯而易見的是,在本發(fā)明的范圍內(nèi)可進行各種修改。