背景技術(shù):
一般而言,計(jì)算裝置可基于顏色搜索信息。在一個(gè)系統(tǒng)中,可將顏色描述標(biāo)記成與數(shù)據(jù)庫(kù)中的圖像或任何對(duì)象相關(guān)聯(lián)。用戶可輸入關(guān)鍵詞(例如,“綠色”)并且可在搜索中返回與標(biāo)記/關(guān)鍵詞“綠色”匹配的任何對(duì)象。用戶然后可瀏覽搜索結(jié)果以找到特定綠色。
用戶還可指定顏色以通過(guò)拾色器用戶界面進(jìn)行搜索。例如,搜索引擎可提供顏色圖像搜索,其中作為搜索的一個(gè)準(zhǔn)則,可用鼠標(biāo)選擇十二種顯示顏色中的一種。搜索引擎然后將返回包含所選擇顏色的圖像,諸如互聯(lián)網(wǎng)圖像或來(lái)自許多數(shù)據(jù)庫(kù)中任一個(gè)的圖像。例如,可使用搜索引擎的界面選擇紫色。當(dāng)結(jié)合關(guān)鍵詞進(jìn)行搜索時(shí),搜索引擎可返回與所述關(guān)鍵詞有關(guān)并且還包含所選擇紫色的圖像。
附圖簡(jiǎn)述
圖1是描繪快速顏色搜索系統(tǒng)的說(shuō)明性網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的方框圖;
圖2是示出用于生成或配置圖1中所包括的快速顏色搜索數(shù)據(jù)存儲(chǔ)區(qū)的過(guò)程的實(shí)例的流程圖;
圖3是示出交織位以將多維顏色模型變換成顏色的一維表示的實(shí)例的示意圖;
圖4是示出用于進(jìn)行快速顏色搜索的過(guò)程的實(shí)例的流程圖;
圖5是示出用于進(jìn)行快速顏色搜索預(yù)處理的過(guò)程的實(shí)例的流程圖;并且
圖6是示出根據(jù)范圍前綴的置換計(jì)算的交織的一維顏色范圍的實(shí)例的示意圖。
具體實(shí)施方式
一般而言,本公開(kāi)的各方面涉及產(chǎn)生快速顏色搜索數(shù)據(jù)存儲(chǔ)區(qū)和/或由一個(gè)或多個(gè)計(jì)算裝置執(zhí)行快速顏色搜索。由于顏色的多維性質(zhì),利用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)區(qū)中的顏色(例如,特定rgb顏色或rgb顏色范圍)進(jìn)行搜索可能富有挑戰(zhàn)。這種數(shù)據(jù)存儲(chǔ)區(qū)可包括與關(guān)系數(shù)據(jù)庫(kù)或一些其他類型的數(shù)據(jù)存儲(chǔ)區(qū)中的對(duì)象相關(guān)聯(lián)的3維rgb顏色。例如,可將rgb顏色值(例如,#c108e5)存儲(chǔ)在與綠色連衣裙、綠色圖像或與綠色相關(guān)聯(lián)的任何其他數(shù)據(jù)對(duì)象相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)區(qū)中。
這種數(shù)據(jù)存儲(chǔ)區(qū)中的rgb顏色值可被索引以用于搜索。數(shù)據(jù)存儲(chǔ)區(qū)索引可以是以另外的寫入和使用更多存儲(chǔ)空間來(lái)維持?jǐn)?shù)據(jù)的額外副本為代價(jià)來(lái)提高數(shù)據(jù)檢索操作在數(shù)據(jù)存儲(chǔ)區(qū)表上的速度的數(shù)據(jù)結(jié)構(gòu)。索引用來(lái)快速地定位數(shù)據(jù)而無(wú)需在每次訪問(wèn)數(shù)據(jù)存儲(chǔ)區(qū)表時(shí)對(duì)數(shù)據(jù)存儲(chǔ)區(qū)表中的每行進(jìn)行搜索??墒褂脭?shù)據(jù)存儲(chǔ)區(qū)表的一列或多列來(lái)產(chǎn)生索引,從而為快速隨機(jī)查找和有效訪問(wèn)所排序的記錄兩者提供基礎(chǔ)。傳統(tǒng)整數(shù)域上的這種索引可允許在整數(shù)范圍內(nèi)進(jìn)行快速查找。例如,在索引的整數(shù)域上,“2000與3000之間”的搜索可快速地返回具有處于2000與3000之間整數(shù)域的所有記錄,并且可以是快于對(duì)所有行中整數(shù)值的比較的數(shù)量級(jí)。
然而,n維顏色值的索引(諸如rgb域的索引)并不有助于或加速搜索n維顏色范圍。在許多情形中,rgb顏色值可在數(shù)據(jù)存儲(chǔ)區(qū)中與數(shù)據(jù)存儲(chǔ)區(qū)中的對(duì)象記錄相關(guān)聯(lián)。rgb域也可被索引。然而,傳統(tǒng)的數(shù)據(jù)存儲(chǔ)區(qū)并不固有地對(duì)rgb域進(jìn)行正確地索引。例如,rgb值(例如,以十六進(jìn)制表示的#c108e5)包括三個(gè)維度:紅色維度(“c1”)、綠色維度(“08”)和藍(lán)色維度(“e5”)。在這些單獨(dú)十六進(jìn)制值中的位由維度排列,但不是在所有維度中排列成最高階數(shù)到最低階數(shù),這使得范圍比較難以用單一索引執(zhí)行。例如,rgb中紅色維度的位首先出現(xiàn),其包括高階數(shù)紅色位至低階數(shù)紅色位。接著是綠色高階位至低階位,再接著是藍(lán)色高階位低至低階位。因此,如果顏色搜索范圍被指定為(#c001e0至#cf10f0),那么單一傳統(tǒng)索引不能用來(lái)快速地確定記錄中的哪一個(gè)在所述范圍內(nèi)具有相關(guān)聯(lián)的顏色,因?yàn)檫@種查找取決于其中域中的所有位根據(jù)從最高階數(shù)到最低階數(shù)(例如,通常整數(shù)值或類似數(shù)據(jù)類型)進(jìn)行排序的索引數(shù)據(jù)結(jié)構(gòu)。
解決這個(gè)問(wèn)題的一種方法是在數(shù)據(jù)存儲(chǔ)區(qū)中具有對(duì)應(yīng)于維度顏色中的每一種的多個(gè)索引域。例如,可存在一個(gè)紅色域(例如,其可作為一個(gè)記錄的一部分而包含值“c1”),存在另一個(gè)綠色域(例如,其可作為一個(gè)記錄的一部分而包含值“08”),以及存在又一個(gè)藍(lán)色域(例如,其可作為一個(gè)記錄的一部分而包含值“e5”)。這些域中的每一個(gè)可被單獨(dú)地索引。因此,當(dāng)搜索范圍時(shí),每個(gè)索引可用于與已被索引的單個(gè)顏色進(jìn)行比較(例如,范圍#c001e0至#cf10f0、范圍“c0”至“cf”可應(yīng)用到紅色索引,范圍“01”至“0f”可應(yīng)用到綠色索引,并且范圍“e0”至“f0”可應(yīng)用到藍(lán)色索引)。數(shù)據(jù)存儲(chǔ)區(qū)然后必須確定指示這一記錄的所有的三種索引是否在相應(yīng)范圍內(nèi)。
前述類型的維度索引的不利的一面在于數(shù)據(jù)存儲(chǔ)區(qū)必須搜索三個(gè)索引而不是一個(gè),并且然后對(duì)所有的準(zhǔn)則是否已經(jīng)滿足所有索引進(jìn)行比較。這個(gè)步驟通常比使用單一索引來(lái)執(zhí)行搜索較不有效。
本文所述的實(shí)施方案允許增加的查詢速度和進(jìn)行快速搜索,并且克服了上文諸多缺點(diǎn)。更一般地說(shuō),除顏色空間之外,本文所述的技術(shù)可允許快速地搜索任何多維空間,諸如傳統(tǒng)的3維坐標(biāo)空間。例如,在3d視頻游戲中,對(duì)象可位于地圖上的3維坐標(biāo)空間中(例如,x水平維度、y深度維度和z垂直維度,其中每個(gè)維度正交于其他維度)。在這種視頻游戲中,將3維坐標(biāo)搜索范圍疊并成交織的一維整數(shù)搜索范圍的快速搜索技術(shù)(如上文所述)可用來(lái)在3維坐標(biāo)搜索范圍內(nèi)快速地找到視頻游戲?qū)ο蟆?/p>
在根據(jù)本公開(kāi)的一個(gè)實(shí)施方案中,可將n維顏色空間轉(zhuǎn)換成1維顏色空間。為簡(jiǎn)潔起見(jiàn),盡管本文所述的實(shí)施方案經(jīng)常指代為3維顏色空間的rgb顏色,但是其他維度的顏色空間(例如,4維或5維等)可使用本文所述技術(shù)中的一種或多種來(lái)得到針對(duì)rgb3維顏色空間描述的相同優(yōu)點(diǎn)。因此,相同或類似技術(shù)可應(yīng)用到如下各項(xiàng)的顏色空間:xyz、色相飽和度明度/亮度(hsb/hsl)、色相飽和度值(hsv)、色相飽和度強(qiáng)度(his)、青深紅黃關(guān)鍵色(cmyk)、lab、亮度色度色相(lch)、lms、如圖像或視頻中使用的ycbcr和y’cbcr、色調(diào)飽和度亮度(tsl)、紅色綠色(rg)、yiq(如由ntsc顏色tv系統(tǒng)使用)以及yuv(如由pal顏色tv系統(tǒng)使用)。如由本領(lǐng)技術(shù)人員理解,在針對(duì)顏色維度不使用整數(shù)格式的顏色空間中,本文所述的技術(shù)仍可通過(guò)將浮點(diǎn)維度值轉(zhuǎn)換成整數(shù)維度值來(lái)應(yīng)用。
rgb顏色空間中每一種顏色(即,紅色、綠色和藍(lán)色)可由單一字節(jié)數(shù)據(jù)(8位)表示。通過(guò)交織三種顏色的位(例如,其中每個(gè)字符表示一位:如將參考圖3進(jìn)一步描述的rgbrgbrgbrgbrgbrgbrgbrgb),人們可形成唯一表示每種顏色但僅具有單一維度的24位整數(shù)。交織rgb位的一個(gè)優(yōu)點(diǎn)在于位重要性的排序得到了保留。通常,根據(jù)人的感覺(jué)而接近的顏色在這個(gè)整數(shù)范圍上也接近在一起(例如,它們趨向于具有相同的更高階位)。
保留位的排序的一個(gè)優(yōu)點(diǎn)在于這類排序有效地表示距黑色(即,#000000)和白色(即,#ffffff)的3維顏色值距離。更高階位通常指示距黑色的較大距離(即,接近白色),而更低的高階位和更高的低階位通常指示距白色的更大距離(即,接近黑色)。因此,實(shí)際上,交織值可認(rèn)為是灰度值。
對(duì)于數(shù)據(jù)存儲(chǔ)區(qū)中的每種顏色,可添加列來(lái)保持其等效的24位交織整數(shù)。可將標(biāo)準(zhǔn)數(shù)據(jù)存儲(chǔ)整數(shù)索引添加至具有此列的表。交織顏色值上的這種索引可被認(rèn)為灰度索引值。當(dāng)基于rgb顏色范圍執(zhí)行搜索時(shí),可發(fā)生如下預(yù)處理:將顏色范圍轉(zhuǎn)換成多個(gè)交織的顏色范圍。預(yù)處理可確定每個(gè)單個(gè)顏色字節(jié)中的一個(gè)或多個(gè)二進(jìn)制拆分。例如,如果紅色范圍處于“00001110”與“00010001”之間,那么預(yù)處理可將紅色搜索轉(zhuǎn)換成兩個(gè)范圍(“00001110”到“00001111”)和(“00010000”到“00010001”),所述兩個(gè)范圍可用來(lái)自其他顏色綠色和藍(lán)色的確定的范圍置換(和與所述確定的范圍交織)。
現(xiàn)參考圖1,展示了示出可由計(jì)算裝置107搜索的顏色數(shù)據(jù)存儲(chǔ)區(qū)101的方框圖。顏色數(shù)據(jù)存儲(chǔ)區(qū)101可以是允許進(jìn)行整數(shù)索引的任意類型的數(shù)據(jù)存儲(chǔ)區(qū),包括關(guān)系數(shù)據(jù)庫(kù)(諸如sql數(shù)據(jù)庫(kù)),或分層數(shù)據(jù)存儲(chǔ)區(qū)。顏色數(shù)據(jù)存儲(chǔ)區(qū)101雖然存儲(chǔ)在一個(gè)或多個(gè)非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)上,但是可包括一個(gè)或多個(gè)邏輯數(shù)據(jù)存儲(chǔ)區(qū),每個(gè)邏輯數(shù)據(jù)存儲(chǔ)區(qū)包括一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)表。顏色數(shù)據(jù)存儲(chǔ)區(qū)101可在能夠執(zhí)行軟件指令來(lái)提供數(shù)據(jù)存儲(chǔ)服務(wù)的單一計(jì)算裝置和/或能夠一起提供數(shù)據(jù)存儲(chǔ)服務(wù)(例如,允許鏡像、備份等)的許多計(jì)算裝置中實(shí)現(xiàn)。在其他實(shí)施方案中,顏色數(shù)據(jù)存儲(chǔ)區(qū)101可實(shí)現(xiàn)為網(wǎng)頁(yè)服務(wù)或由托管計(jì)算環(huán)境中的一個(gè)或多個(gè)虛擬機(jī)實(shí)現(xiàn)。托管的計(jì)算環(huán)境可包括一個(gè)或多個(gè)供應(yīng)和釋放的計(jì)算資源,所述計(jì)算資源可包括計(jì)算、聯(lián)網(wǎng)和/或存儲(chǔ)裝置。
顏色數(shù)據(jù)存儲(chǔ)區(qū)101可包括具有顏色列的一個(gè)或多個(gè)表。例如,表103可包括多個(gè)記錄,每個(gè)記錄包括針對(duì)對(duì)象的數(shù)據(jù)(或參考對(duì)象(諸如對(duì)象標(biāo)識(shí)符))并且與rgb顏色相關(guān)聯(lián)。例如,表103中的每個(gè)對(duì)象參考可識(shí)別人可在網(wǎng)絡(luò)站點(diǎn)上購(gòu)買的項(xiàng)目(夾克、書(shū)、訂書(shū)機(jī)、服務(wù)等)。項(xiàng)目的數(shù)據(jù)可處于表103中或處于單獨(dú)的表或通過(guò)項(xiàng)目標(biāo)識(shí)符可訪問(wèn)的數(shù)據(jù)存儲(chǔ)區(qū)中。每個(gè)項(xiàng)目可與表中的一個(gè)或多個(gè)rgb顏色相關(guān)聯(lián)(例如,顏色映射)。與對(duì)象相關(guān)聯(lián)的顏色可通過(guò)分析對(duì)象的圖片導(dǎo)出。用于從圖像提取顏色的各種方法和系統(tǒng)在2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a1的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a2的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a3的美國(guó)專利申請(qǐng)序列號(hào)______;以及2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a4的美國(guó)專利申請(qǐng)序列號(hào)______中描述,所述申請(qǐng)中的每一個(gè)整體以引用的方式并入本文。
在一些實(shí)施方案中,表103可包含對(duì)象到顏色的一個(gè)或多個(gè)映射。數(shù)據(jù)存儲(chǔ)區(qū)中的多個(gè)行可指示將對(duì)象(諸如圖像對(duì)象)映射到例如用于粉紅色/紫色、復(fù)活節(jié)藍(lán)(easterblue)和森林綠的rgb編碼的顏色。因此,表103的對(duì)特定顏色的查詢可揭示映射到數(shù)據(jù)存儲(chǔ)區(qū)中此顏色的一個(gè)或多個(gè)對(duì)象/項(xiàng)目。
在同一表或單獨(dú)表(諸如表105)中,rgb顏色可映射到一維整數(shù)值。所述一維整數(shù)值可包括rgb編碼的顏色的交織位。例如,如果用于復(fù)活節(jié)藍(lán)的顏色編碼是#44ede5,那么交織的24位整數(shù)可看似011111011000010111000011(如以位所表示)。參考本文所述的圖3來(lái)進(jìn)一步描述交織。在一些實(shí)施方案中,表103和表105可以相同,其中對(duì)象可直接映射到顏色的展平的一維24位整數(shù)表示。
可使用24位整數(shù)查詢數(shù)據(jù)存儲(chǔ)表以確定與顏色相關(guān)聯(lián)的一個(gè)或多個(gè)對(duì)象。在一些實(shí)施方案中,數(shù)據(jù)存儲(chǔ)區(qū)101可接收sql查詢來(lái)確定一個(gè)或多個(gè)對(duì)象是否具有處于顏色范圍內(nèi)的相關(guān)聯(lián)的顏色。例如,sql“where”子句語(yǔ)句可以是用來(lái)搜索顏色范圍的參數(shù)(例如,“where24intcolorbetween‘239874’and‘736583’”),其中列“24intcolor”中的值是交織的24位顏色。使用24位顏色到rgb顏色的映射(或在一些實(shí)施方案中,僅直接映射到對(duì)象)允許數(shù)據(jù)存儲(chǔ)區(qū)識(shí)別并返回與所搜索的顏色范圍相關(guān)聯(lián)的那些對(duì)象。
顏色數(shù)據(jù)存儲(chǔ)區(qū)101可在允許數(shù)據(jù)存儲(chǔ)區(qū)接收查詢并且傳輸搜索結(jié)果的網(wǎng)絡(luò)(例如,私用網(wǎng)絡(luò)、互聯(lián)網(wǎng)等)上直接地或間接地連接到許多裝置。數(shù)據(jù)存儲(chǔ)區(qū)可以是一個(gè)裝置(例如,數(shù)據(jù)存儲(chǔ)服務(wù)器)、多個(gè)裝置或諸如遠(yuǎn)程地托管在互聯(lián)網(wǎng)/云上的遠(yuǎn)程計(jì)算裝置。
計(jì)算裝置107可能夠發(fā)起查詢120并且通過(guò)聯(lián)網(wǎng)(諸如ip聯(lián)網(wǎng)(互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)、兩者的組合等))訪問(wèn)數(shù)據(jù)存儲(chǔ)區(qū)101。計(jì)算裝置107可以是已經(jīng)接收到客戶端顏色查詢、通過(guò)顏色搜索模塊109處理所述查詢并且生成如本文所述的一個(gè)或多個(gè)交織的顏色范圍的服務(wù)器(或服務(wù)器群或托管的計(jì)算裝置)。查詢120可然后被發(fā)送至數(shù)據(jù)存儲(chǔ)區(qū)101以供解析。在接收到查詢120(例如,sql查詢)之后,數(shù)據(jù)存儲(chǔ)區(qū)101可處理查詢120并且在將交織的顏色范圍與交織的顏色范圍索引進(jìn)行比較(例如,包括在表105中)之后返回包括搜索結(jié)果的響應(yīng)122。這種比較可產(chǎn)生可在響應(yīng)122中被返回的一個(gè)或多個(gè)匹配顏色或?qū)ο?例如,項(xiàng)目或圖像)。計(jì)算裝置107然后可使用返回的顏色和/或?qū)ο笠杂糜谌魏文康?例如,將項(xiàng)目返回到客戶端裝置,將匹配的顏色展示給落在特定范圍內(nèi)的用戶等)。
在一些實(shí)施方案中,顏色數(shù)據(jù)存儲(chǔ)區(qū)101可直接地而不是通過(guò)傳統(tǒng)的通信網(wǎng)絡(luò)連接到計(jì)算裝置107。例如,計(jì)算裝置107可存儲(chǔ)顏色數(shù)據(jù)存儲(chǔ)區(qū)101并且執(zhí)行數(shù)據(jù)存儲(chǔ)過(guò)程來(lái)應(yīng)答查詢,以及執(zhí)行網(wǎng)絡(luò)服務(wù)器(或其他服務(wù)器)處理來(lái)通過(guò)互聯(lián)網(wǎng)或通過(guò)本地用戶接口接受用戶顏色查詢。顏色搜索模塊109然后可處理所述顏色查詢,將交織的顏色范圍發(fā)送至數(shù)據(jù)存儲(chǔ)過(guò)程并且接收響應(yīng)。
在一些實(shí)施方案中,計(jì)算裝置107可包括用戶裝置(例如,家用或辦公用計(jì)算機(jī)、智能電話、平板、可穿戴式計(jì)算裝置等),所述用戶裝置包括計(jì)算機(jī)硬件和軟件部件(諸如處理單元、網(wǎng)絡(luò)接口、非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)驅(qū)動(dòng)器和輸入/輸出裝置接口,其中的全部可通過(guò)通信總線相互通信)的布置。網(wǎng)絡(luò)接口可提供到一個(gè)或多個(gè)網(wǎng)絡(luò)或計(jì)算系統(tǒng)的連接性。處理單元可因此通過(guò)網(wǎng)絡(luò)從其他計(jì)算裝置、系統(tǒng)或服務(wù)接收信息和指令。處理單元也可通信至存儲(chǔ)器并且從存儲(chǔ)器通信,并且通過(guò)輸入/輸出裝置接口進(jìn)一步提供輸出信息。輸入/輸出裝置接口也可從各種輸入裝置(諸如鍵盤、鼠標(biāo)、數(shù)字筆、觸摸屏等)接受輸入。計(jì)算裝置107的存儲(chǔ)器可包含處理單元可執(zhí)行以便實(shí)現(xiàn)本公開(kāi)的一個(gè)或多個(gè)實(shí)施方案的計(jì)算機(jī)程序指令,諸如顏色搜索模塊109。存儲(chǔ)器通常包括ram、rom和/或其他持久和/或非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
此外,存儲(chǔ)器可包括用戶瀏覽器。用戶瀏覽器可能已經(jīng)與網(wǎng)絡(luò)站點(diǎn)(例如,網(wǎng)站)聯(lián)系并且基于從遠(yuǎn)程服務(wù)器接收的信息來(lái)加載圖形用戶界面。用戶瀏覽器可用來(lái)啟動(dòng)搜索。例如,用戶瀏覽器可獲得用來(lái)搜索的顏色范圍和在一些實(shí)施方案中,另外的搜索參數(shù)(諸如鍵盤、項(xiàng)目?jī)r(jià)格、項(xiàng)目/對(duì)象類型等)。這類另外的參數(shù)可用來(lái)進(jìn)一步過(guò)濾除顏色之外的搜索結(jié)果。顏色搜索模塊109可在計(jì)算裝置107上、在瀏覽器內(nèi)(例如,通過(guò)
顏色數(shù)據(jù)存儲(chǔ)區(qū)101的搜索性能可通過(guò)在多個(gè)子數(shù)據(jù)存儲(chǔ)系統(tǒng)上實(shí)現(xiàn)顏色數(shù)據(jù)存儲(chǔ)區(qū)101來(lái)提高。在這種情形下,組成顏色數(shù)據(jù)存儲(chǔ)區(qū)101的每個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)可負(fù)責(zé)應(yīng)答針對(duì)特定的、預(yù)定義顏色范圍的查詢。通過(guò)舉例,在簡(jiǎn)單的情形中,顏色數(shù)據(jù)存儲(chǔ)區(qū)101可通過(guò)使用三個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)來(lái)實(shí)現(xiàn)。每個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)可被配置來(lái)接收針對(duì)特定交織的顏色范圍的查詢,諸如子數(shù)據(jù)存儲(chǔ)區(qū)#1響應(yīng)于展平的一維顏色以“0”的最高階位開(kāi)始的查詢,子數(shù)據(jù)存儲(chǔ)區(qū)#2響應(yīng)于展平的一維顏色以“10”開(kāi)始的查詢,以及子數(shù)據(jù)存儲(chǔ)區(qū)#3響應(yīng)于展平的一維顏色以“11”開(kāi)始的查詢。
被分配給每個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)的范圍可基于每個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)內(nèi)的索引顏色值的密度而被手動(dòng)地或自動(dòng)地配置。在一個(gè)實(shí)施方案中,算法可將子數(shù)據(jù)存儲(chǔ)區(qū)配置成處置較大的、稀疏分布的顏色范圍,并且將另一個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)配置成處置較小的但更加密集分布的顏色范圍。這種算法可在不需要人工干預(yù)的情況下執(zhí)行,以便基于可能的結(jié)果在特定顏色范圍內(nèi)的分布來(lái)調(diào)整在運(yùn)行中的每個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)。這種方法可根據(jù)每個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)的處理能力將顏色數(shù)據(jù)存儲(chǔ)區(qū)101中的記錄擴(kuò)展到子數(shù)據(jù)存儲(chǔ)區(qū)上。
在多個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)情形中,產(chǎn)生搜索查詢的計(jì)算機(jī)可然后制成針對(duì)每個(gè)子數(shù)據(jù)存儲(chǔ)系統(tǒng)的單獨(dú)的查詢,將所述單獨(dú)的查詢并行地發(fā)送至每個(gè)子數(shù)據(jù)存儲(chǔ)系統(tǒng),并且并行地接收結(jié)果。這種并行性可通過(guò)同時(shí)查詢多個(gè)、更小的子數(shù)據(jù)存儲(chǔ)區(qū)而引起性能增加。
可生成顏色數(shù)據(jù)存儲(chǔ)區(qū)101并且具體地,包括一維交織的顏色映射(例如,24位交織的整數(shù))到多維顏色映射(例如,rgb顏色或具有隸屬顏色的項(xiàng)目)的表(諸如表105)以支持快速顏色查詢,如在下文圖2所述。
現(xiàn)參考圖2,將描述通過(guò)訪問(wèn)計(jì)算裝置(諸如計(jì)算裝置107)實(shí)現(xiàn)的快速顏色數(shù)據(jù)存儲(chǔ)生成例程200的實(shí)施方案。本領(lǐng)域技術(shù)人員將理解,被概述用于例程200的動(dòng)作/元素可以由與計(jì)算裝置107(諸如顏色搜索模塊109)相關(guān)聯(lián)或與顏色數(shù)據(jù)存儲(chǔ)區(qū)101相關(guān)聯(lián)的一個(gè)或多個(gè)計(jì)算裝置/部件/模塊來(lái)實(shí)現(xiàn)。因此,通過(guò)舉例,例程400已在邏輯上關(guān)聯(lián)成由計(jì)算裝置107執(zhí)行。
在塊202處,計(jì)算裝置107可訪問(wèn)顏色數(shù)據(jù)存儲(chǔ)區(qū)101(例如,登錄到數(shù)據(jù)存儲(chǔ)區(qū)或以其他方式準(zhǔn)備執(zhí)行查詢并將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)區(qū)中)。訪問(wèn)計(jì)算裝置可以是計(jì)算裝置107或能夠與顏色數(shù)據(jù)存儲(chǔ)區(qū)101交互的任何其他計(jì)算裝置,包括實(shí)現(xiàn)顏色數(shù)據(jù)存儲(chǔ)區(qū)101的任何計(jì)算裝置。
在塊204處,計(jì)算裝置107可查詢并訪問(wèn)在顏色數(shù)據(jù)存儲(chǔ)區(qū)101中使用或可用的每種顏色。然后,在塊206處,對(duì)于多維顏色數(shù)據(jù)存儲(chǔ)區(qū)101中的每種顏色,計(jì)算裝置可交織來(lái)自顏色數(shù)據(jù)存儲(chǔ)區(qū)101中的多個(gè)維度中的每個(gè)維度的位。例如,如下文進(jìn)一步所述的圖3所示,可交織rgb顏色值中的紅色維度位、綠色維度位和藍(lán)色維度位來(lái)形成24位整數(shù)。圖3公開(kāi)在此申請(qǐng)中可如何執(zhí)行交織的一個(gè)實(shí)例。
在圖3中,rgb顏色#15b01a可對(duì)應(yīng)于通常所謂的“綠色”。作為rgb三維顏色空間的一部分的這種綠色具有可分別以十進(jìn)制(21、176、26)、十六進(jìn)制(15、b0、1a)或位(00010101、10110000、00011010)表示的三個(gè)維度(紅色、綠色和藍(lán)色)。紅色維度的位302可從最高到最低、從左到右進(jìn)行排序(例如,大端、較小的存儲(chǔ)器地址到較大的存儲(chǔ)器地址)。例如,可根據(jù)紅色維度的值來(lái)縮放用來(lái)結(jié)合其他顏色進(jìn)行顯示的紅色光的強(qiáng)度(例如,led“亮度”)。根據(jù)每個(gè)位正常為8位/1字節(jié)整數(shù)加權(quán)來(lái)對(duì)每個(gè)位估值。因此,最高階位中的“1”被定值為128(2的第7次方(2^7)),而最低階位中的1被定值為1(2^0)。對(duì)于示例性紅色維度值302,所述值為00010101,其為分別被稱為r7、r6、r5、r4、r3、r2、r1和r0的位的值。
類似地,可根據(jù)綠色維度304中的位來(lái)縮放用來(lái)結(jié)合紅色光和藍(lán)色光顯示的綠色光的強(qiáng)度。對(duì)于示例性綠色維度值304,所述值為10110000,其為分別被稱為g7、g6、g5、g4、g3、g2、g1和g0的位的值。同樣地,藍(lán)色維度值00011010是分別為位b7、b6、b5、b4、b3、b2、b1和b0的值。
可然后形成交織紅色、綠色和藍(lán)色維度值中所有位的24位整數(shù)值,使得處于維度內(nèi)的它們的排序得到保留。例如,24位整數(shù)308在交織之后現(xiàn)可包括010000010111001100001100。這個(gè)值對(duì)應(yīng)于交織以下列排序的位:r7g7b7r6g6b6r5g5b5r4g4b4r3g3b3r2g2b2r1g1b1r0g0b0。其他可能的實(shí)例可包括更改rgb位的排序(例如,綠色首先g7b7r7g6b6r6…等),使位的排序顛倒(其例如可用于小端系統(tǒng))(r0g0b0r1g1b1r2g2b2r3g3b3r4g4b4r5g5b5r6g6b6r7g7b7,或甚至b0g0r0b1g1r1b2g2r2b3g3r3b4g4r4b5g5r5b6g6r6b7g7r7)。本領(lǐng)域技術(shù)人員將理解,如何使用通過(guò)使用顛倒的位序排序小端來(lái)實(shí)現(xiàn)多維顏色交織系統(tǒng)。也可使用允許24位整數(shù)顏色范圍搜索的另外的替代性交織位排序。
返回圖2,在塊208處,對(duì)于轉(zhuǎn)換成24位整數(shù)的每種rgb顏色,所述24位一維整數(shù)然后可存儲(chǔ)在與相關(guān)聯(lián)的多維顏色(諸如與rgb顏色相關(guān)聯(lián)的表105中)相關(guān)聯(lián)的顏色數(shù)據(jù)存儲(chǔ)區(qū)101中,所述多維顏色可間接地或直接地與顏色數(shù)據(jù)存儲(chǔ)區(qū)中的對(duì)象(諸如項(xiàng)目(例如,項(xiàng)目標(biāo)識(shí)符))相關(guān)聯(lián)。在一些實(shí)施方案中,可將24位整數(shù)存儲(chǔ)成與顏色數(shù)據(jù)存儲(chǔ)區(qū)101中的對(duì)象直接相關(guān)聯(lián)(例如,到單一表中項(xiàng)目標(biāo)識(shí)符的映射)。
在塊212處,快速顏色數(shù)據(jù)存儲(chǔ)生成過(guò)程可確定是否已經(jīng)將所有顏色轉(zhuǎn)換成單一24位顏色212。如果不,那么箭頭214指示所述過(guò)程可重復(fù)并且可轉(zhuǎn)換更多的顏色并且將所述更多的顏色存儲(chǔ)在顏色數(shù)據(jù)存儲(chǔ)區(qū)101中。否則,如由箭頭212所指示,轉(zhuǎn)換所有顏色的過(guò)程可結(jié)束。
在塊216處,顏色數(shù)據(jù)存儲(chǔ)區(qū)101然后可對(duì)表中的存儲(chǔ)表示顏色的生成的一維交織整數(shù)的列進(jìn)行索引,以基于所述一維整數(shù)能夠快速進(jìn)行范圍搜索。在被索引之后,所述快速顏色數(shù)據(jù)存儲(chǔ)生成過(guò)程可在塊218處結(jié)束。當(dāng)接收到查詢時(shí),顏色數(shù)據(jù)存儲(chǔ)區(qū)101現(xiàn)能夠執(zhí)行快速顏色搜索。
圖4示出在用于搜索快速顏色搜索數(shù)據(jù)存儲(chǔ)區(qū)(諸如顏色數(shù)據(jù)存儲(chǔ)區(qū)101)的一個(gè)或多個(gè)計(jì)算裝置(諸如計(jì)算裝置107)上執(zhí)行的例程的一個(gè)實(shí)施方案。這種例程可由硬件處理器執(zhí)行的軟件指令執(zhí)行并且可包括顏色搜索模塊109中的一個(gè)或多個(gè)部件。可存儲(chǔ)所述軟件指令以在非暫時(shí)性存儲(chǔ)介質(zhì)(諸如一個(gè)或多個(gè)寄存器、存儲(chǔ)區(qū)、磁盤、閃存存儲(chǔ)區(qū)、固態(tài)驅(qū)動(dòng)器等)中執(zhí)行。
進(jìn)一步參考圖4,將描述通過(guò)訪問(wèn)計(jì)算裝置(諸如計(jì)算裝置107)實(shí)現(xiàn)的快速顏色搜索例程400的實(shí)施方案。本領(lǐng)域技術(shù)人員將理解,被概述用于例程400的動(dòng)作/元素可以由與計(jì)算裝置107(諸如顏色搜索模塊109)相關(guān)聯(lián)的一個(gè)或多個(gè)計(jì)算裝置/部件/模塊來(lái)實(shí)現(xiàn)。因此,例程400已在邏輯上關(guān)聯(lián)成由計(jì)算裝置107執(zhí)行。
在塊402處,計(jì)算裝置107獲得針對(duì)顏色范圍的輸入以進(jìn)行搜索。在一些實(shí)施方案中,這種輸入可包括來(lái)自人/機(jī)器接口(諸如通過(guò)鍵盤、鼠標(biāo)等)的輸入,作為到圖形用戶界面(諸如瀏覽器)中的輸入。例如,用戶可瀏覽網(wǎng)絡(luò)站點(diǎn)并且輸入將要搜索的一種或多個(gè)rgb顏色或顏色范圍。這種顏色(例如,rgb值)可通過(guò)拾色器接口、策劃的調(diào)色板、從圖像取出的調(diào)色板、具有與項(xiàng)目相關(guān)聯(lián)(例如以找到具有類似顏色的其他項(xiàng)目)的一種或多種顏色的項(xiàng)目、從鍵盤到顏色轉(zhuǎn)譯確定的顏色或其他方法進(jìn)行選擇。在一些實(shí)施方案中,可通過(guò)網(wǎng)絡(luò)(諸如通過(guò)從包含用來(lái)搜索的顏色范圍的客戶端裝置接收一個(gè)或多個(gè)分組的服務(wù)器)獲得用來(lái)搜索的顏色范圍。用來(lái)獲得一種或多種顏色或顏色范圍的各種方法和系統(tǒng)在2014年6月26日提交的、題為“buildingapaletteofcolorsbasedonhumancolorpreferences”、對(duì)應(yīng)于代理文件號(hào)seazn.904a1的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“buildingapaletteofcolorsfromapluralityofcolorsbasedonhumancolorpreferences”、對(duì)應(yīng)于代理文件號(hào)seazn.904a2的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“determiningaffiliatedcolorsfromkeywordsearchesofcolorpalettes”、對(duì)應(yīng)于代理文件號(hào)seazn.903a3的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“automaticcolorpalettebasedrecommendationsforaffiliatedcolors”、對(duì)應(yīng)于代理文件號(hào)seazn.907a1的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“automaticimage-basedrecommendationsusingacolorpalette”、對(duì)應(yīng)于代理文件號(hào)seazn.948a1的美國(guó)專利申請(qǐng)序列號(hào)______;以及2014年6月26日提交的、題為“creationofdatabaseofsearchablecolornames”、對(duì)應(yīng)于代理文件號(hào)seazn.947a1的美國(guó)專利申請(qǐng)序列號(hào)______中描述,所述申請(qǐng)中的每一個(gè)整體以引用的方式并入本文。
如果沒(méi)有獲得顏色范圍,但是替代地獲得單一顏色,那么可基于一個(gè)或多個(gè)選擇的顏色來(lái)確定將要搜索的一個(gè)或多個(gè)顏色范圍。在一些實(shí)施方案中,可基于可應(yīng)用到顏色的可配置的顏色范圍來(lái)確定顏色范圍。例如,如果獲得綠色“#15b01a”,那么可通過(guò)從一個(gè)或多個(gè)顏色維度加上和減去設(shè)定值(例如,4顏色量級(jí))來(lái)確定顏色范圍。這種實(shí)例將在紅色維度中產(chǎn)生處于(以十六進(jìn)制表示的)處于“11”到“19”之間的范圍,在綠色維度中處于“ac”到“b4”之間的范圍,并且在藍(lán)色維度中處于“16”到“1e”之間的范圍。
在另一個(gè)實(shí)施方案中,顏色范圍可通過(guò)應(yīng)用人可辨識(shí)的顏色距離/差異公式來(lái)確定。這種公式可基于給定的起始顏色生成給定rgb值的對(duì)于人類檢測(cè)可能難以察覺(jué)的一個(gè)或多個(gè)維度顏色范圍,并且為了達(dá)到人類目的,可被認(rèn)為是與起始顏色相同的顏色。在一個(gè)實(shí)施方案中,顏色搜索范圍可包括人不可檢測(cè)為不同的那些顏色,和/或可包括人幾乎不能檢測(cè)為不同的那些搜索范圍。用于使用人的顏色距離公式來(lái)確定人可察覺(jué)的色差的各種方法和系統(tǒng)在2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a1的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a2的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a3的美國(guó)專利申請(qǐng)序列號(hào)______;以及2014年6月26日提交的、題為“image-basedcolorpalettegeneration”、對(duì)應(yīng)于代理文件號(hào)seazn.912a4的美國(guó)專利申請(qǐng)序列號(hào)______中描述,所述申請(qǐng)中的每一個(gè)整體以引用的方式并入本文。
在另一個(gè)實(shí)施方案中,可基于通過(guò)使用允許修改先前搜索的顏色的顏色調(diào)整用戶界面得到先前項(xiàng)目搜索的輸出來(lái)確定顏色范圍。不像允許選擇顏色的拾色器用戶界面,顏色調(diào)整用戶界面可包括gui滑塊,所述gui滑塊允許基于給定顏色或顏色范圍、或更寬或更窄顏色范圍來(lái)進(jìn)行搜索;或允許所搜索的顏色或顏色范圍轉(zhuǎn)變以變得更強(qiáng)、更暗、更亮等。先前的項(xiàng)目搜索可以是由顏色單獨(dú)或與其他準(zhǔn)則(諸如關(guān)鍵詞、價(jià)格等)組合查詢的先前顏色搜索的結(jié)果。在這種情形下,用戶界面可顯示所有項(xiàng)目,使得所產(chǎn)生的項(xiàng)目可被瀏覽和檢查,并且使顏色調(diào)整用戶界面集成在其中。用戶界面可以是允許滾動(dòng)通過(guò)多個(gè)搜索結(jié)果的網(wǎng)絡(luò)頁(yè)面。網(wǎng)絡(luò)頁(yè)面可包括允許選擇更緊密或更廣顏色范圍的滑塊。
例如,計(jì)算機(jī)裝置107上的用戶可能已經(jīng)從基于網(wǎng)絡(luò)的拾色器用戶界面選擇綠色“#15b01a”并且將項(xiàng)目搜索以及關(guān)鍵詞“手提包”發(fā)送至網(wǎng)絡(luò)服務(wù)器。對(duì)于包括顏色搜索范圍和關(guān)鍵詞“手提包”的查詢,計(jì)算機(jī)裝置107可將綠色轉(zhuǎn)譯成處于綠色附近的第一閾值內(nèi)的所述顏色搜索范圍并且將所述搜索準(zhǔn)則傳輸給顏色數(shù)據(jù)存儲(chǔ)區(qū)101。一旦接收到響應(yīng),計(jì)算裝置107可在網(wǎng)絡(luò)頁(yè)面上的瀏覽器內(nèi)顯示所有項(xiàng)目及它們相關(guān)聯(lián)的圖像。網(wǎng)絡(luò)頁(yè)面可具有滑塊用戶界面元件,所述滑塊用戶界面元件通過(guò)在第一方向上滑動(dòng)所述界面來(lái)允許顏色搜索范圍向上調(diào)整。在第一方向上滑動(dòng)可引導(dǎo)計(jì)算裝置107重新提交具有比先前搜索更寬或更廣顏色搜索范圍的搜索。所述顏色搜索范圍以與在第一方向上移動(dòng)滑塊的量一致的比率加寬。
類似地,先前顏色搜索范圍可通過(guò)用戶在第二方向上滑動(dòng)滑塊而向下調(diào)整,這可引起顏色搜索范圍以與在第二方向上移動(dòng)滑塊的量一致的比率下降。
一旦滑塊或其他調(diào)整用戶界面已經(jīng)被更改,就可基于加寬的或變窄的顏色搜索范圍準(zhǔn)則來(lái)啟動(dòng)新的搜索。所述搜索導(dǎo)致響應(yīng)將因此根據(jù)所述新的顏色搜索范圍而被加寬或變窄。以此方式,用戶可通過(guò)加寬的顏色搜索范圍而“看見(jiàn)更多的”與給定顏色匹配的結(jié)果,或通過(guò)變窄的顏色搜索范圍而“看見(jiàn)更少的”結(jié)果。
在其他實(shí)施方案中,可從其他源(包括事先存在的調(diào)色板、相反顏色、相反調(diào)色板、顏色到關(guān)鍵詞映射等)獲得顏色或顏色搜索范圍。用于獲得顏色或顏色搜索范圍的各種方法和系統(tǒng)在2014年6月26日提交的、題為“buildingapaletteofcolorsbasedonhumancolorpreferences”、對(duì)應(yīng)于代理文件號(hào)seazn.904a1的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“buildingapaletteofcolorsfromapluralityofcolorsbasedonhumancolorpreferences”、對(duì)應(yīng)于代理文件號(hào)seazn.904a2的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“determiningaffiliatedcolorsfromkeywordsearchesofcolorpalettes”、對(duì)應(yīng)于代理文件號(hào)seazn.903a3的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“automaticcolorpalettebasedrecommendationsforaffiliatedcolors”、對(duì)應(yīng)于代理文件號(hào)seazn.907a1的美國(guó)專利申請(qǐng)序列號(hào)______;2014年6月26日提交的、題為“automaticimage-basedrecommendationsusingacolorpalette”、對(duì)應(yīng)于代理文件號(hào)seazn.948a1的美國(guó)專利申請(qǐng)序列號(hào)______;以及2014年6月26日提交的、題為“creationofdatabaseofsearchablecolornames”、對(duì)應(yīng)于代理文件號(hào)seazn.947a1的美國(guó)專利申請(qǐng)序列號(hào)______中描述,所述申請(qǐng)中的每一個(gè)整體以引用的方式并入本文。其他參數(shù)也可被指定為顏色搜索查詢的一部分以進(jìn)一步過(guò)濾所期望的查詢結(jié)果。此類參數(shù)可包括關(guān)鍵詞、項(xiàng)目?jī)r(jià)格、項(xiàng)目/對(duì)象的類型等。
在塊404處,預(yù)處理可發(fā)生以形成快速顏色搜索查詢。例如,在塊404處,處理可基于所獲得的rgb顏色搜索范圍、一個(gè)或多個(gè)24位整數(shù)搜索范圍而生成以包括在一個(gè)或多個(gè)顏色搜索查詢中。此外,在塊404處,可適當(dāng)?shù)毓交粋€(gè)或多個(gè)顏色搜索查詢。例如,一旦已經(jīng)生成24位整數(shù)顏色搜索范圍,那些范圍就可形成一個(gè)或多個(gè)格式化sql查詢、api查詢、網(wǎng)頁(yè)服務(wù)查詢等。在下文參考圖5進(jìn)一步描述預(yù)處理。
在塊406處,計(jì)算裝置107可啟動(dòng)搜索查詢。啟動(dòng)搜索查詢可包括通過(guò)網(wǎng)絡(luò)(例如,局域網(wǎng)、互聯(lián)網(wǎng)、vpn等)由計(jì)算裝置107將包括將要搜索的顏色范圍的搜索查詢傳輸給顏色數(shù)據(jù)存儲(chǔ)區(qū)101或其他顏色查詢啟動(dòng)服務(wù)(諸如網(wǎng)頁(yè)服務(wù)或顏色搜索服務(wù)器)。在一些實(shí)施方案中,不需要進(jìn)行傳輸,因?yàn)轭伾阉髂K109可直接或本地訪問(wèn)顏色數(shù)據(jù)存儲(chǔ)區(qū)101,或可能夠通過(guò)直接訪問(wèn)數(shù)據(jù)存儲(chǔ)文件(例如,使用sqlite)執(zhí)行查詢本身。
在塊408處,一旦已經(jīng)搜索所有的24位整數(shù)搜索范圍,與所搜索范圍中的一個(gè)或多個(gè)匹配或以其他方式與其相關(guān)的所期望的數(shù)據(jù)存儲(chǔ)區(qū)記錄通過(guò)查詢計(jì)算裝置(例如,通過(guò)本地處理)接收,或通過(guò)網(wǎng)絡(luò)傳輸返回至計(jì)算裝置107并且由計(jì)算裝置107接收。這種搜索結(jié)果可返回一種或多種匹配的rgb顏色、rgb調(diào)色板或甚至可被去交織的24位整數(shù)以確定rgb顏色。在一些實(shí)施方案中,搜索結(jié)果可返回與在查詢中被請(qǐng)求的一個(gè)或多個(gè)24位整數(shù)顏色搜索范圍相關(guān)聯(lián)的對(duì)象(諸如項(xiàng)目)。
所述搜索結(jié)果可通過(guò)將查詢中的特定整數(shù)顏色搜索范圍與24位列的索引進(jìn)行比較由顏色數(shù)據(jù)存儲(chǔ)區(qū)101或顏色搜索模塊109編譯。例如,索引可以是樹(shù)數(shù)據(jù)結(jié)構(gòu),其中通過(guò)使整數(shù)與樹(shù)中的節(jié)點(diǎn)進(jìn)行比較,樹(shù)可指示與整數(shù)搜索范圍匹配的一行或多行。一個(gè)優(yōu)點(diǎn)在于這比將數(shù)據(jù)存儲(chǔ)區(qū)中的每行與顏色范圍進(jìn)行比較或?qū)⒚總€(gè)維度的搜索范圍與數(shù)據(jù)存儲(chǔ)區(qū)中的三個(gè)不同索引進(jìn)行比較更加有效。
在塊410處,顏色搜索例程可結(jié)束,并且計(jì)算裝置107可使用搜索結(jié)果以進(jìn)一步進(jìn)行處理,或在用戶應(yīng)用(諸如瀏覽器)中格式化和顯示所述搜索結(jié)果。
現(xiàn)參考圖5,將描述通過(guò)訪問(wèn)計(jì)算裝置(諸如計(jì)算裝置107)實(shí)現(xiàn)的快速顏色搜索預(yù)處理例程500的實(shí)施方案。相關(guān)領(lǐng)域的技術(shù)人員將會(huì)了解,被概述用于例程500的動(dòng)作/元素可由與計(jì)算裝置107相關(guān)聯(lián)的一個(gè)或許多計(jì)算裝置/部件/模塊(諸如顏色搜索模塊109),或可替代地由顏色數(shù)據(jù)存儲(chǔ)區(qū)101(例如,當(dāng)rgb顏色范圍在傳輸?shù)乃阉鞑樵冎杏捎脩粲?jì)算裝置指定,并且服務(wù)器或數(shù)據(jù)存儲(chǔ)區(qū)必須在搜索之前將所接收的rgb顏色范圍轉(zhuǎn)譯成24位整數(shù)顏色搜索范圍時(shí))實(shí)現(xiàn)。因此,例程500已在邏輯上關(guān)聯(lián)成由計(jì)算裝置107執(zhí)行。
圖5示出可由顏色搜索模塊109執(zhí)行的rgb顏色搜索范圍的一個(gè)實(shí)施方案的預(yù)處理。本領(lǐng)域中的技術(shù)人員將看到,所述預(yù)處理可被快速地外推到除rgb之外的任何其他多維顏色排列。例如,計(jì)算裝置107可具有包括可在瀏覽器中運(yùn)行的
在塊502處,執(zhí)行預(yù)處理的計(jì)算裝置107可獲得rgb顏色范圍值。所述顏色范圍值可包括紅色最大顏色值、紅色最小顏色值、綠色最小顏色值、綠色最大顏色值、藍(lán)色最大顏色值和藍(lán)色最小顏色值。實(shí)施方案隨后可將這些維度顏色范圍轉(zhuǎn)譯成可在快速顏色搜索查詢中使用的一個(gè)或多個(gè)一維24位整數(shù)顏色搜索范圍。在下文參考?jí)K504、506和508描述示例性過(guò)程。
在塊504處,每個(gè)維度顏色范圍(例如,最小值到最大值)可在位邊界上由計(jì)算裝置107進(jìn)一步拆分成另外的范圍,使得可在一維中適當(dāng)?shù)厮阉鹘豢椫?。這些可被稱為二進(jìn)制拆分范圍或前綴。
如下是將要解決的問(wèn)題的說(shuō)明。假設(shè)顏色搜索范圍如下:
紅色最小值:十六進(jìn)制-7e二進(jìn)制-01111110
紅色最大值:十六進(jìn)制-81二進(jìn)制-10000001
綠色最小值:十六進(jìn)制-00二進(jìn)制-00000000
綠色最大值:十六進(jìn)制-01二進(jìn)制-00000001
藍(lán)色最小值:十六進(jìn)制-fe二進(jìn)制-11111110
藍(lán)色最大值:十六進(jìn)制-ff二進(jìn)制-11111111
當(dāng)交織時(shí),所述結(jié)果可似乎產(chǎn)生以二進(jìn)制表示的如下搜索范圍:001101101101101101101000(交織所有最小值)至101001001001001001001111(交織所有最大值),其對(duì)應(yīng)于3,595,112至10,785,359的十進(jìn)制整數(shù)范圍。然而,處于此范圍內(nèi)的基于匹配整數(shù)的顏色實(shí)際上可能不處于將要搜索的顏色范圍內(nèi)。例如,對(duì)應(yīng)于交織位值010000000000000000000000和對(duì)應(yīng)于以十六進(jìn)制表示為#008000(即,綠色值為#80)的rgb顏色的4,194,304實(shí)際上不處于將要搜索的范圍內(nèi)(#7f00fe至#8101ff的綠色的變化不超過(guò)00與01之間),但滿足處于3,595,112與10,785,359之間的準(zhǔn)則。這種錯(cuò)誤情況因?yàn)閬?lái)自各種顏色的交織值的位結(jié)轉(zhuǎn)而可能發(fā)生。換句話講,呈交織的24位整數(shù)形式的范圍的結(jié)轉(zhuǎn)影響其他維度的顏色值,這是意外的結(jié)果并且當(dāng)顏色實(shí)際上不與原始顏色搜索范圍匹配時(shí),使一些顏色與呈整數(shù)格式的顏色搜索范圍匹配。
可通過(guò)在執(zhí)行搜索查詢之前進(jìn)行預(yù)處理來(lái)避免這種情況。例如,對(duì)上述范圍進(jìn)行預(yù)處理將使整數(shù)搜索范圍拆分,其中結(jié)轉(zhuǎn)將影響將要搜索的范圍。替代搜索從3,595,112到10,785,359的單一整數(shù)范圍,可作為替代搜索以下兩個(gè)范圍:001101101101101101101000至001101101101101101101111,和101001001001001001001000至101001001001001001001111,其分別對(duì)應(yīng)于3,595,112至3,595,119和10,785,352至10,785,359的十進(jìn)制整數(shù)范圍。這些拆分搜索范圍現(xiàn)適當(dāng)?shù)夭东@整個(gè)搜索范圍(例如,原始搜索范圍#7f00fe至#8101ff等同于組合的范圍#7f00fe至#7f01ff和#810fe至#8101ff)。
在一些實(shí)施方案中,后處理而不是預(yù)處理可用來(lái)實(shí)現(xiàn)快速顏色搜索。在數(shù)據(jù)存儲(chǔ)區(qū)記錄稀疏地分布于顏色搜索范圍中的實(shí)施方案中,可在計(jì)算裝置107上執(zhí)行對(duì)拆分整數(shù)搜索范圍的識(shí)別。在這種情形下,使用上文所述實(shí)例,顏色數(shù)據(jù)區(qū)101可使用更大范圍3,595,112至10,785,359由計(jì)算裝置107搜索。因?yàn)橛涗浽陬伾珨?shù)據(jù)存儲(chǔ)區(qū)101中稀疏地分布于此范圍中,所以可返回有限數(shù)量的查詢結(jié)果。因?yàn)槠谕祷赜邢迶?shù)量的搜索結(jié)果,所以計(jì)算裝置107可在向數(shù)據(jù)存儲(chǔ)區(qū)發(fā)起每個(gè)拆分搜索范圍的查詢之后(而不是之前)可確定每個(gè)拆分搜索范圍,并且分析每個(gè)單個(gè)查詢結(jié)果以確定所述每個(gè)單個(gè)查詢結(jié)果是否落在所確定的拆分搜索范圍中的任一個(gè)內(nèi)。這類型實(shí)施方案的優(yōu)點(diǎn)之一在于它將處理從顏色數(shù)據(jù)存儲(chǔ)區(qū)101(例如,每個(gè)更小拆分搜索范圍的比較)移動(dòng)至計(jì)算裝置107,因此減少顏色數(shù)據(jù)區(qū)101上的總負(fù)荷。這類型的實(shí)現(xiàn)方式也可與由多個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)組成的顏色數(shù)據(jù)存儲(chǔ)區(qū)101組合使用,因?yàn)樵谀欠N情形下,可控制每個(gè)子數(shù)據(jù)存儲(chǔ)區(qū)的稀疏性來(lái)對(duì)最優(yōu)策略作出后處理。
因此,在塊504處,可通過(guò)確定可用如0或1的剩余位填寫以確定拆分搜索范圍的高階位前綴來(lái)確定每個(gè)rgb顏色維度的二進(jìn)制拆分范圍??赏ㄟ^(guò)計(jì)算顏色維度的最小值和最大值的一個(gè)或多個(gè)范圍前綴,并且將這些范圍前綴組合到給定維度的范圍前綴列表中來(lái)確定二進(jìn)制拆分范圍。
例如,對(duì)于紅色搜索范圍,可通過(guò)確定最小值的最高階位(其值為“1”作為最小值),并且然后將所述最小值作為下限與上限(其全部為先前的0)一起使用來(lái)識(shí)別一個(gè)前綴(基礎(chǔ)前綴)。如果紅色搜索范圍是從00001010(最小紅色值)至00010000(最大紅色值),那么上述前綴可對(duì)應(yīng)于最小值為0000101的位前綴。此前綴可被認(rèn)為是對(duì)應(yīng)于范圍00001010至00001011(即,二進(jìn)制拆分范圍)(即,基于其中剩余位(已加下劃線的)用所述范圍的最小值0和所述范圍的最大值1填寫的前綴的范圍)的范圍。因此,可將前綴值0000101添加至紅色前綴列表。
可基于所述最小值由計(jì)算裝置107識(shí)別更多前綴。用于識(shí)別另外的前綴的一個(gè)準(zhǔn)則包括檢查基礎(chǔ)前綴。從最低位開(kāi)始,如果在具有0的基礎(chǔ)前綴(例如,0000101)中存在任何另外的更高階位,那么如果另外的前綴包括比等于0的最小值位的最高階位更低的階位并且此階數(shù)的最大值位為1,那么可識(shí)別另外的前綴。這一類位被稱為“發(fā)散”位,因?yàn)檫@正是最大值從最小值開(kāi)始發(fā)散的位。然后最終可通過(guò)用“1”替換所識(shí)別的“0”來(lái)識(shí)別這種前綴。多于一個(gè)另外的前綴可存在于基礎(chǔ)前綴內(nèi)。
返回我們的實(shí)例,最小值具有這種匹配的零00001010,并且所述前綴包括000010,其包括比發(fā)散位更低階數(shù)的位(所述發(fā)散位在此已加下劃線,其中位串發(fā)散:最小值:00001010和最大值:00010000)。所識(shí)別的前綴包含比發(fā)散位更低階數(shù)的位(例如,第五和第六最低階位)。由于000010已經(jīng)被識(shí)別,因而用來(lái)添加的實(shí)際前綴是000011(“…可然后通過(guò)用‘1’替換所識(shí)別的‘0’來(lái)包括所述前綴”)。因此,這將識(shí)別出另外的前綴為“000011”,并且將所述另外的前綴添加到紅色前綴列表(其已經(jīng)包含0000101)。
可由計(jì)算裝置107通過(guò)分析顏色的最大位來(lái)確定另一組前綴。計(jì)算裝置107可識(shí)別最大值的最低階位(其值為0),并且作為前綴取用所識(shí)別的值0以及所有更高階位。因此,00010000將作為前綴添加至增長(zhǎng)的列表。
可被添加的另一組前綴是最大值的任何前綴,其中所述最大值在發(fā)散位之后的位為“1”。這些前綴可然后通過(guò)用“0”替換所識(shí)別的“1”而被包括在內(nèi)。
在前述實(shí)例中,當(dāng)最大紅色值為00010000時(shí),沒(méi)有另外的前綴被識(shí)別,并且在發(fā)散位之后沒(méi)有為“1”的位。然而,如果最大紅色值實(shí)際上為00010100,那么第二個(gè)“1”將識(shí)別前綴000101,第二個(gè)“1”然后將用“0”替換(以形成前綴000100),并且前綴000100將被添加至紅色前綴列表。
盡管所述實(shí)例在上文確定紅色值的二進(jìn)制拆分范圍列表(前綴列表),但是可類似地確定藍(lán)色維度和綠色維度或顏色空間的任何維度的二進(jìn)制拆分范圍列表。因此,可基于每個(gè)維度的將要搜索的范圍的最大值和最小值來(lái)確定每種顏色維度,并且具體地紅色維度、綠色維度和藍(lán)色維度的二進(jìn)制拆分范圍/前綴列表。
返回圖5,在塊506處,前綴可由計(jì)算裝置107置換和交織。可將每個(gè)此類置換轉(zhuǎn)換成用于搜索的一個(gè)或多個(gè)24位整數(shù)范圍(或其他n維交織位整數(shù)范圍,這取決于多少個(gè)位組成一個(gè)維度,和多少個(gè)維度組成顏色模型)。
例如,使用rgb,可能存在三個(gè)前綴列表–一個(gè)是紅色的、一個(gè)是綠色的和一個(gè)是藍(lán)色的。紅色列表中的每個(gè)前綴可用其他顏色的所有其他前綴置換,使得計(jì)算機(jī)確定具有來(lái)自紅色列表的一個(gè)前綴、來(lái)自綠色列表的一個(gè)前綴和來(lái)自藍(lán)色列表的一個(gè)前綴的所有可能的前綴組合??蓪⒚糠N置換交織并且轉(zhuǎn)換成一個(gè)或多個(gè)24位整數(shù)搜索范圍。
圖6示出由計(jì)算裝置107交織和轉(zhuǎn)換特定置換的實(shí)例。對(duì)于此示例性置換,紅色前綴602已經(jīng)選擇(11001),綠色前綴604已經(jīng)選擇(100111)并且藍(lán)色前綴606已經(jīng)選擇(100101)。然后可基于這些位的位序(如圖3所述)來(lái)交織所述這些位。然而,許多位在前綴中并不存在。例如,紅色前綴缺失最后三個(gè)位,并且藍(lán)色前綴和綠色前綴缺失最后兩個(gè)位。這產(chǎn)生不完整的交織的位結(jié)構(gòu)。例如,交織位610基于這些前綴展示了具有缺失位(x)的交織串,并且因此展示出r2位缺失,并且r1、g1、b1、r0、g0和b0位也缺失。
存在兩種類型的缺失位。第一類型可以是在24位整數(shù)中具有被定義的較低階位。這可被稱為“內(nèi)部拆分位”。例如,如由“x”指示,交織位610中標(biāo)號(hào)為r2的位缺失。然而,位g2和b2被定義(例如,被包括在選擇的綠色前綴604和藍(lán)色前綴606中)并且在24位串中處于較低階數(shù)處(在此,此24位交織整數(shù)的“較低階數(shù)”意思是當(dāng)24位交織整數(shù)被認(rèn)為是正常整數(shù)時(shí),“出現(xiàn)在較低階數(shù)之后”或處于較低階數(shù)處)。
當(dāng)?shù)谝活愋偷奈槐蛔R(shí)別時(shí),可將紅色前綴、綠色前綴和藍(lán)色前綴的置換拆分成兩種完全相同的置換以進(jìn)行進(jìn)一步范圍確定,其中第一置換612中“0”為所識(shí)別的位,并且第二置換614中“1”為所識(shí)別的位(如由交織的24位整數(shù)612和614中加下劃線的位值指示)。然后可在僅具有一個(gè)位差異的前綴的這兩種類似置換上執(zhí)行對(duì)缺失位的進(jìn)一步分析。不需要對(duì)原始置換(在此為置換610)進(jìn)行進(jìn)一步分析。這種類型的拆分可反復(fù)執(zhí)行,直到在所產(chǎn)生的任一個(gè)置換中不存在更多的內(nèi)部拆分位。
也可識(shí)別第二類型的缺失位??赏ㄟ^(guò)確定所缺失的位不具有任何定義的低階數(shù)的位來(lái)識(shí)別這種缺失。作為參考,這種缺失位可被稱為“結(jié)尾范圍位”。當(dāng)這種類型的位被識(shí)別時(shí)并且經(jīng)常在通過(guò)拆分成兩個(gè)完全相同的置換(其僅具有一個(gè)位差異)來(lái)分解所有內(nèi)部拆分位之后,那么可將置換轉(zhuǎn)換成24位范圍。這通過(guò)計(jì)算以下兩個(gè)24位整數(shù)來(lái)完成:范圍的下限,所述范圍的下限通過(guò)選取置換并且將所有剩余結(jié)尾范圍位設(shè)定成“0”而確定;和范圍的上限,所述范圍的上限通過(guò)選取置換并且將所有剩余結(jié)尾范圍位設(shè)定成“1”而確定。
例如,交織的24位置換612、614具有剩余的結(jié)尾范圍位,所述剩余的結(jié)尾范圍位對(duì)應(yīng)于r1、g1、b1、r0、g0和b0(換句話講,交織的24位整數(shù)的最后6個(gè)位)。因?yàn)椴淮嬖诒冉Y(jié)尾范圍位更低階數(shù)的定義的位,所以這些位現(xiàn)可用來(lái)形成整數(shù)搜索范圍。對(duì)于置換612,可通過(guò)將結(jié)尾范圍位設(shè)定成0(如在置換616中所展示)來(lái)確定下限,其等于整數(shù)15,744,192。可通過(guò)將結(jié)尾范圍位設(shè)定成1(如在置換618中所展示)來(lái)確定上限,其等于整數(shù)15,744,255。因此,一個(gè)計(jì)算的搜索范圍632可以是交織顏色值的處于15,744,192與15,744,255之間的查詢范圍。
對(duì)于置換614,可通過(guò)將結(jié)尾范圍位設(shè)定成0(如在置換622中所展示)來(lái)確定下限,其等于整數(shù)15,744,448??赏ㄟ^(guò)將結(jié)尾范圍位設(shè)定成1(如在置換620中所展示)來(lái)確定上限,其等于整數(shù)15,744,511。因此,一個(gè)計(jì)算的搜索范圍634可以是交織顏色值的處于15,744,448與15,744,511之間的查詢范圍??墒占痛鎯?chǔ)所有前綴置換上的所有所識(shí)別的24位顏色搜索范圍以待搜索。
返回圖5,在如上文所述確定一個(gè)或多個(gè)置換的一維交織顏色搜索范圍之后,可在塊508處形成一個(gè)或多個(gè)顏色搜索查詢。一個(gè)示例性實(shí)施方案可生成sql“where”子句以將多個(gè)24位整數(shù)顏色搜索范圍在查詢中串在一起(例如,sql“select”語(yǔ)句)。例如,子句諸如“select*from<表105>where(interleave_rgb_colorbetween15744448and15744511)或(interleave_rgb_colorbetween15744192and15744255)”,其中列出所有搜索范圍的查詢可以是一種基于上述實(shí)例的如此特制的查詢。然而,如果存在對(duì)紅色前綴、綠色前綴和藍(lán)色前綴的進(jìn)一步置換(其可能被組合以形成唯一搜索范圍),那么查詢將可能很長(zhǎng),所述紅色前綴、綠色前綴和藍(lán)色前綴的進(jìn)一步置換中的每一種可取決于內(nèi)部拆分位的數(shù)量而產(chǎn)生一個(gè)或多個(gè)搜索范圍。所有所產(chǎn)生的范圍可用來(lái)形成針對(duì)總范圍覆蓋的傳統(tǒng)的多維顏色搜索查詢的一個(gè)查詢或多個(gè)查詢。在其他實(shí)施方案中,適當(dāng)格式化的網(wǎng)頁(yè)服務(wù)查詢可并入所確定的整數(shù)顏色范圍以通過(guò)作為參數(shù)向搜索添加范圍來(lái)進(jìn)行搜索。
在生成搜索查詢之后,在塊510處,預(yù)處理例程可結(jié)束。如參考圖4所述(例如,塊406),現(xiàn)可傳輸或執(zhí)行所述搜索。
取決于實(shí)施方案,本文所述的算法中的任一者的某些動(dòng)作、事件或功能可在不同序列中執(zhí)行,可進(jìn)行增加、合并或全部一起省去(例如,對(duì)于算法的實(shí)踐而言并不是所有的描述動(dòng)作或事件都是必要的)。此外,在某些實(shí)施方案中,動(dòng)作或事件可同時(shí)執(zhí)行(例如,通過(guò)多線程處理、中斷處理或多個(gè)處理器或處理器核心或者在其他平行架構(gòu)上),而不是循序執(zhí)行。
結(jié)合本文公開(kāi)的實(shí)施方案所描述的各種示例性邏輯塊、模塊、單元和算法步驟可以實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為了清楚地說(shuō)明硬件和軟件的這種可互換性,以上已經(jīng)大體上在各種示例性元件、塊、模塊和步驟的功能性方面描述這些示例性元件、塊、模塊和步驟。這種功能性是實(shí)施為硬件還是軟件取決于具體應(yīng)用和強(qiáng)加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。所描述的功能性可以針對(duì)每個(gè)具體應(yīng)用以不同方式實(shí)現(xiàn)所描述的功能性,但是這種實(shí)現(xiàn)方式?jīng)Q定不應(yīng)被解釋為導(dǎo)致背離本公開(kāi)的范圍。
可以通過(guò)機(jī)器,諸如通用處理器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場(chǎng)可編程門陣列(fpga)或其他可編程邏輯裝置、離散門或晶體管邏輯、離散硬件部件或被設(shè)計(jì)來(lái)執(zhí)行本文所描述功能的上述各者的任何組合來(lái)實(shí)現(xiàn)或執(zhí)行結(jié)合本文公開(kāi)的實(shí)施方案所描述的各種示例性邏輯塊和模塊。通用處理器可以是微處理器,但在替代方案中,處理器可以是控制器、微控制器或狀態(tài)機(jī)、所述各項(xiàng)的組合等。處理器還可被實(shí)現(xiàn)為計(jì)算裝置的組合,例如,dsp和微處理器的組合、多個(gè)微處理器、與dsp核心結(jié)合的一個(gè)或多個(gè)微處理器或者任何其他此類配置。
結(jié)合本文公開(kāi)的實(shí)施方案所描述的方法、過(guò)程或算法元素可直接體現(xiàn)于硬件中、體現(xiàn)于由處理器執(zhí)行的軟件模塊中,或體現(xiàn)于這兩者的組合中。軟件模塊可駐存于ram存儲(chǔ)器、閃速存儲(chǔ)器、rom存儲(chǔ)器、eprom存儲(chǔ)器、eeprom存儲(chǔ)器、寄存器、硬盤、可拆卸盤、cd-rom或本領(lǐng)域中已知的任何其他形式的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。存儲(chǔ)介質(zhì)可耦合到處理器,使得處理器可從存儲(chǔ)介質(zhì)讀取信息,并將信息寫到存儲(chǔ)介質(zhì)。在替代方案中,存儲(chǔ)介質(zhì)可與處理器集成一體。處理器和存儲(chǔ)介質(zhì)可駐存在asic中。asic可駐存在用戶終端中。在替代方案中,處理器和存儲(chǔ)介質(zhì)可作為離散組件駐存在用戶終端中。軟件模塊可包括計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令致使硬件處理器執(zhí)行計(jì)算機(jī)可執(zhí)行指令。計(jì)算機(jī)可執(zhí)行指令可包括腳本計(jì)算機(jī)語(yǔ)言和/或編譯計(jì)算機(jī)語(yǔ)言。計(jì)算機(jī)可執(zhí)行指令可包括(例如但不限于)
除非另外特別說(shuō)明,或者使用時(shí)在上下文中以其他方式所理解的,否則本文所用的條件語(yǔ)言,特別是諸如“能夠”、“可以”、“可能”、“例如”等,一般意在表達(dá)如下意思:雖然其他實(shí)施方案不包括,但某些實(shí)施方案包括特定的特征、元件和/或狀態(tài)。因此,此類條件性語(yǔ)言一般并非意在暗含如下意思:特征、元件和/或狀態(tài)對(duì)于一個(gè)或多個(gè)實(shí)施方案而言無(wú)論如何都是必需的,或者,一個(gè)或多個(gè)實(shí)施方案無(wú)論有或沒(méi)有作者輸入或提示都必須包括用于決定在任何特定實(shí)施方案中是否包括或?qū)⒁獔?zhí)行這些特征、元件和/或狀態(tài)的邏輯。術(shù)語(yǔ)“包括”、“包含”、“具有”、“含有”等是同義的,并以開(kāi)放的方式包含性地使用,而且不排除另外元件、特征、動(dòng)作、操作等等。另外,術(shù)語(yǔ)“或者”以其包含性意義(并且不以其排除性意義)使用,從而使得當(dāng)(例如)用來(lái)連接一列表元件時(shí),術(shù)語(yǔ)“或者”意味著所述列表中元件的一個(gè)、一些或全部。
除非另外特別說(shuō)明,否則諸如短語(yǔ)“x、y或z中的至少一個(gè)”的分離性語(yǔ)言在上下文中通常應(yīng)理解為用于呈現(xiàn)項(xiàng)目、術(shù)語(yǔ)等可以是x、y或z或它們的任意組合(例如,x、y和/或z)。因此,此類分離性語(yǔ)言一般并非意在并且不應(yīng)該暗示某些實(shí)施方案需要存在x中的至少一個(gè)、y中的至少一個(gè)或z中的至少一個(gè)。
除非另外明確說(shuō)明,否則冠詞諸如‘一個(gè)(a/an)’通常應(yīng)被解釋成包括一個(gè)或多個(gè)描述的項(xiàng)目。因此,短語(yǔ)諸如“裝置被配置來(lái)”意圖包括一個(gè)或多個(gè)所述裝置。此類一個(gè)或多個(gè)所述裝置也可共同地被配置來(lái)執(zhí)行所述敘述。例如,“處理器被配置來(lái)執(zhí)行敘述a、b和c”可包括被配置來(lái)執(zhí)行敘述a的第一處理器與被配置來(lái)執(zhí)行敘述b和c的第二處理器一起工作。
雖然以上具體實(shí)施方式已經(jīng)在應(yīng)用于各種實(shí)施方案時(shí)展示、描述并指出新穎特征,但是應(yīng)理解,在所示出裝置或算法的形式和細(xì)節(jié)上的各種省略、代替和改變可在不背離本公開(kāi)的精神的情況下做出。如將認(rèn)識(shí)到的,本文所述的某些實(shí)施方案可在不提供本文所闡述的所有特征和益處的形式內(nèi)體現(xiàn),因?yàn)橐恍┨卣骺膳c其他特征分開(kāi)使用或?qū)嵺`。處于權(quán)利要求書(shū)的等效意義和范圍內(nèi)的所有改變都應(yīng)涵蓋在權(quán)利要求書(shū)的范圍中。
可鑒于以下條款對(duì)本公開(kāi)的各種實(shí)施方案的實(shí)例進(jìn)行描述:
1.一種系統(tǒng),其包括:
存儲(chǔ)器,所述存儲(chǔ)器被配置來(lái)存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令;以及
包括一個(gè)或多個(gè)硬件處理器的計(jì)算裝置,所述計(jì)算裝置與所述存儲(chǔ)器通信并且被配置來(lái)執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令以至少:
獲得顏色的顏色搜索范圍,所述顏色由n維顏色模型指定,對(duì)于所述n維顏色模型中的每個(gè)顏色維度,所述顏色搜索范圍包括最小維度顏色值和最大維度顏色值;
對(duì)于所述顏色搜索范圍的每個(gè)維度,至少部分地基于所述顏色搜索范圍的對(duì)應(yīng)顏色維度的所述最小維度顏色值和所述最大維度顏色值來(lái)計(jì)算一個(gè)或多個(gè)二進(jìn)制拆分范圍;
至少部分地基于每個(gè)維度的一個(gè)或多個(gè)二進(jìn)制拆分范圍的置換來(lái)生成一個(gè)或多個(gè)整數(shù)搜索范圍,其中所述一個(gè)或多個(gè)整數(shù)搜索范圍包括來(lái)自所述一個(gè)或多個(gè)二進(jìn)制拆分范圍的置換的交織位;
生成搜索查詢,所述搜索查詢包括作為搜索參數(shù)的所述一個(gè)或多個(gè)整數(shù)搜索范圍;
至少部分地基于所述搜索查詢來(lái)啟動(dòng)對(duì)處于所述一個(gè)或多個(gè)整數(shù)搜索范圍內(nèi)顏色的數(shù)據(jù)存儲(chǔ)區(qū)的搜索,所述數(shù)據(jù)存儲(chǔ)區(qū)包括與至少一個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的記錄;并且
從所述數(shù)據(jù)存儲(chǔ)區(qū)接收搜索結(jié)果,所述搜索結(jié)果包括與處于所述一個(gè)或多個(gè)整數(shù)搜索范圍內(nèi)的至少一個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的記錄。
2.如權(quán)利要求1所述的系統(tǒng),其中所述n維顏色模型是rgb顏色模型。
3.如權(quán)利要求2所述的系統(tǒng),其中所述交織位包括對(duì)紅色二進(jìn)制拆分范圍、綠色二進(jìn)制拆分范圍和藍(lán)色二進(jìn)制拆分范圍進(jìn)行置換。
4.如權(quán)利要求3所述的系統(tǒng),其中所述交織位以如下各項(xiàng)的重復(fù)模式進(jìn)行排列:來(lái)自所述紅色二進(jìn)制拆分范圍的紅色位、來(lái)自所述綠色二進(jìn)制拆分范圍的綠色位、以及來(lái)自所述藍(lán)色二進(jìn)制拆分范圍的藍(lán)色位,其中所述紅色位、所述綠色位和所述藍(lán)色位是來(lái)自相同階數(shù)的位,所述重復(fù)模式從最高階位到最低階位排列。
5.如權(quán)利要求1所述的系統(tǒng),其中所計(jì)算的一個(gè)或多個(gè)二進(jìn)制拆分范圍的至少一部分通過(guò)確定發(fā)散位來(lái)識(shí)別。
6.如權(quán)利要求1所述的系統(tǒng),其中所述記錄包括與處于所述一個(gè)或多個(gè)整數(shù)搜索范圍內(nèi)的一個(gè)或多個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的對(duì)象記錄。
7.如權(quán)利要求6所述的系統(tǒng),其中所述對(duì)象記錄是項(xiàng)目記錄。
8.如權(quán)利要求7所述的系統(tǒng),其中所述計(jì)算裝置是用戶計(jì)算機(jī)。
9.如權(quán)利要求1所述的系統(tǒng),其中至少部分地基于人類色差感知公式來(lái)確定所述最小維度顏色值或所述最大維度顏色值中的至少一個(gè)。
10.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,其包括:
在配置有特定計(jì)算機(jī)可執(zhí)行指令的硬件計(jì)算裝置的控制下,
獲得顏色的顏色搜索范圍,所述顏色由n維顏色模型指定,對(duì)于所述n維顏色模型中的每個(gè)顏色維度,所述顏色搜索范圍包括最小維度顏色值和最大維度顏色值;
計(jì)算一個(gè)或多個(gè)整數(shù)搜索范圍,其中所述一個(gè)或多個(gè)整數(shù)搜索范圍通過(guò)交織來(lái)自處于所述顏色搜索范圍內(nèi)的每個(gè)顏色維度的所述最小維度顏色值和所述最大維度顏色值的位來(lái)確定;
至少部分地基于搜索查詢來(lái)啟動(dòng)對(duì)數(shù)據(jù)存儲(chǔ)區(qū)的搜索,所述搜索查詢包括作為搜索參數(shù)的所述一個(gè)或多個(gè)整數(shù)搜索范圍,所述數(shù)據(jù)存儲(chǔ)區(qū)包括與至少一個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的記錄;以及
從所述數(shù)據(jù)存儲(chǔ)區(qū)接收搜索結(jié)果,所述搜索結(jié)果包括與處于所述一個(gè)或多個(gè)整數(shù)搜索范圍內(nèi)的至少一個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的一個(gè)或多個(gè)記錄。
11.如權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述n維顏色模型是rgb顏色模型。
12.如權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中交織位包括對(duì)紅色二進(jìn)制拆分范圍、綠色二進(jìn)制拆分范圍和藍(lán)色二進(jìn)制拆分范圍進(jìn)行置換。
13.如權(quán)利要求12所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中交織位包括以如下各項(xiàng)的重復(fù)模式進(jìn)行排列:來(lái)自所述紅色二進(jìn)制拆分范圍的紅色位、來(lái)自所述綠色二進(jìn)制拆分范圍的綠色位、以及來(lái)自所述藍(lán)色二進(jìn)制拆分范圍的藍(lán)色位,其中所述紅色位、所述綠色位和所述藍(lán)色位是來(lái)自相同階數(shù)的位,所述重復(fù)模式從最高階位到最低階位排列。
14.如權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中記錄包括與處于所述一個(gè)或多個(gè)整數(shù)搜索范圍內(nèi)的一個(gè)或多個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的項(xiàng)目記錄。
15.如權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中至少部分地基于人類色差感知公式來(lái)確定所述最小維度顏色值或所述最大維度顏色值中的至少一個(gè)。
16.一種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由處理器執(zhí)行時(shí)執(zhí)行包括以下各項(xiàng)的操作:
獲得rgb顏色搜索范圍,所述rgb顏色搜索范圍包括最小紅色值、最大紅色值、最小綠色值、最大綠色值、最小藍(lán)色值和最大藍(lán)色值;
至少部分地基于所述最小紅色值和所述最大紅色值來(lái)計(jì)算一個(gè)或多個(gè)紅色二進(jìn)制拆分范圍;
至少部分地基于所述最小綠色值和所述最大綠色值來(lái)計(jì)算一個(gè)或多個(gè)綠色二進(jìn)制拆分范圍;
至少部分地基于所述最小綠色值和所述最大綠色值來(lái)計(jì)算一個(gè)或多個(gè)藍(lán)色二進(jìn)制拆分范圍;
至少部分地基于所述紅色二進(jìn)制拆分范圍、所述綠色二進(jìn)制拆分范圍和所述藍(lán)色二進(jìn)制拆分范圍的置換來(lái)生成一個(gè)或多個(gè)整數(shù)搜索范圍,其中每個(gè)置換包括來(lái)自所述一個(gè)或多個(gè)紅色二進(jìn)制拆分范圍中的一個(gè)紅色二進(jìn)制拆分范圍的交織位、所述一個(gè)或多個(gè)綠色二進(jìn)制拆分范圍中的一個(gè)綠色二進(jìn)制拆分范圍的交織位和所述一個(gè)或多個(gè)藍(lán)色二進(jìn)制拆分范圍中的一個(gè)藍(lán)色二進(jìn)制拆分范圍的交織的位,
其中從最高維度階數(shù)到最低維度階數(shù)排列所述交織的位;以及
使用所述一個(gè)或多個(gè)整數(shù)搜索范圍從數(shù)據(jù)存儲(chǔ)區(qū)接收搜索結(jié)果,所述搜索結(jié)果包括與處于所述一個(gè)或多個(gè)整數(shù)搜索范圍內(nèi)的至少一個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的記錄。
17.如權(quán)利要求16所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),
其中通過(guò)確定所述最小紅色值和所述最大紅色值中的第一發(fā)散位來(lái)識(shí)別所述一個(gè)或多個(gè)紅色二進(jìn)制拆分范圍的至少一部分;
其中通過(guò)確定所述最小綠色值和所述最大綠色值中的第二發(fā)散位來(lái)識(shí)別所述一個(gè)或多個(gè)綠色二進(jìn)制拆分范圍的至少一部分;并且
其中通過(guò)確定所述最小藍(lán)色值和所述最大藍(lán)色值中的第三發(fā)散位來(lái)識(shí)別所述一個(gè)或多個(gè)藍(lán)色二進(jìn)制拆分范圍的至少一部分。
18.如權(quán)利要求16所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述搜索結(jié)果包括與處于所述一個(gè)或多個(gè)整數(shù)搜索范圍內(nèi)的一個(gè)或多個(gè)被索引的整數(shù)顏色值相關(guān)聯(lián)的對(duì)象記錄。
19.如權(quán)利要求17所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述對(duì)象記錄是項(xiàng)目記錄。
20.如權(quán)利要求18所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)對(duì)用戶計(jì)算裝置是可訪問(wèn)的。
21.如權(quán)利要求16所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中至少部分地基于人類色差感知公式來(lái)確定所述最小紅色值、所述最大紅色值、所述最小綠色值、所述最大綠色值、所述最小藍(lán)色值或所述最大藍(lán)色值中的至少一個(gè)。
22.一種系統(tǒng),其包括:
數(shù)據(jù)存儲(chǔ)區(qū),所述數(shù)據(jù)存儲(chǔ)區(qū)被配置來(lái)存儲(chǔ)一個(gè)或多個(gè)對(duì)象記錄,每個(gè)對(duì)象記錄與一種或多種rgb顏色相關(guān)聯(lián);以及
計(jì)算裝置,所述計(jì)算裝置包括一個(gè)或多個(gè)硬件處理器和存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)器,所述一個(gè)或多個(gè)硬件處理器被配置來(lái)執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令以至少:
對(duì)于與所述數(shù)據(jù)存儲(chǔ)區(qū)中的對(duì)象記錄相關(guān)聯(lián)的每種rgb顏色:
生成對(duì)應(yīng)于一維顏色空間的整數(shù)顏色值,所述整數(shù)顏色值包括來(lái)自所述rgb顏色的紅色維度值、綠色維度值和藍(lán)色維度值的交織的位,所述交織的位從最高數(shù)量級(jí)到最低數(shù)量級(jí)進(jìn)行排序;并且
當(dāng)所述整數(shù)顏色值與所述rgb顏色相關(guān)聯(lián)時(shí),將所述整數(shù)顏色值存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)區(qū)中;并且
對(duì)所述數(shù)據(jù)存儲(chǔ)區(qū)中的整數(shù)顏色值進(jìn)行索引。
23.如權(quán)利要求22所述的系統(tǒng),其中每個(gè)對(duì)象記錄包括項(xiàng)目記錄。