專利名稱:二維對(duì)象裝填的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,更具體地,涉及將二維對(duì)象裝填(packing)在邊界區(qū)域中。
背景技術(shù):
用戶界面的設(shè)計(jì)中的一項(xiàng)普遍任務(wù)是使得諸如各種大小和縱橫比的對(duì)象的排序列表之類的對(duì)象列表中的對(duì)象能夠被顯示在邊界區(qū)域內(nèi)。實(shí)現(xiàn)這一設(shè)計(jì)中的一項(xiàng)挑戰(zhàn)與以高效方式對(duì)每一對(duì)象進(jìn)行格式化并且對(duì)各對(duì)象進(jìn)行布局相關(guān)。典型實(shí)現(xiàn)中的約束包括減少與對(duì)象間的間隔相關(guān)聯(lián)的屏幕可操作區(qū)域的浪費(fèi)、減少由于裁剪對(duì)象造成的重要信息的丟失、減少以能夠影響物體的被感知的質(zhì)量的方式對(duì)對(duì)象的縱橫比進(jìn)行改變的需要、允許對(duì)每一對(duì)象的大小的用戶界面控制、在適當(dāng)時(shí)維持排序列表中對(duì)象的順序以提供對(duì)于相對(duì)優(yōu)先級(jí)的某些控制、以及維持對(duì)象的相對(duì)定向。此外,設(shè)計(jì)的挑戰(zhàn)還進(jìn)一步強(qiáng)加了與高效地使用CPU、存儲(chǔ)器以及其它系統(tǒng)資源相關(guān)聯(lián)的約束。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹在以下詳細(xì)描述中進(jìn)一步描述的一些概念。 本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)主題的范圍。各實(shí)施例使得諸如二維光柵圖像之類的可視元素或?qū)ο竽軌蛞詼p少被浪費(fèi)的空間的方式被裝填到諸如矩形邊界區(qū)域之類的邊界區(qū)域中。在至少一些實(shí)施例中,二維對(duì)象裝填組件嘗試將個(gè)體對(duì)象適配到邊界區(qū)域中。二維對(duì)象裝填組件使用一區(qū)間列表來通過追蹤邊界區(qū)域內(nèi)的區(qū)間來保持對(duì)可用空間的追蹤。區(qū)間能產(chǎn)生在橫向上相鄰放置的對(duì)象和/ 或能靠近一被放置的對(duì)象的底邊。在一個(gè)或多個(gè)實(shí)施例中,區(qū)間列表以從左到右、從上到下排序。在至少一些實(shí)施例中,二維對(duì)象裝填組件能夠使用附加特征來改善用戶體驗(yàn)。作為示例而非限定,這些附加特征包括預(yù)估特征、對(duì)象大小調(diào)整特征、下拉特征、對(duì)象位置重分布特征、用于上下文敏感的裁剪的面部識(shí)別特征、視頻特征、和/或閾值容限及結(jié)果測(cè)量特征。
在全部附圖中,使用相同的附圖標(biāo)記來指示相同的特征。圖1示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的其中可以采用此處所描述的各原理的操作環(huán)境。圖2示出根據(jù)一個(gè)或多個(gè)實(shí)施例的示例二維對(duì)象裝填操作。圖3是描述根據(jù)一個(gè)或多個(gè)實(shí)施例的方法中的各步驟的流程圖。圖4示出根據(jù)一個(gè)或多個(gè)實(shí)施例的對(duì)象放置操作。
圖5示出根據(jù)一個(gè)或多個(gè)實(shí)施例的對(duì)象放置操作。圖6示出可用于實(shí)現(xiàn)一個(gè)或多個(gè)實(shí)施例的示例系統(tǒng)。
具體實(shí)施例方式概覽各實(shí)施例使得諸如二維光柵圖像之類的可視元素或?qū)ο竽軌蛞詼p少被浪費(fèi)的空間的方式被裝填到諸如矩形邊界區(qū)域之類的邊界區(qū)域中。在至少一些實(shí)施例中,二維對(duì)象裝填組件嘗試將個(gè)體對(duì)象適配到邊界區(qū)域中。二維對(duì)象裝填組件使用一區(qū)間列表來通過追蹤邊界區(qū)域內(nèi)的區(qū)間來保持對(duì)可用空間的追蹤。區(qū)間能產(chǎn)生在橫向上相鄰放置的對(duì)象和/ 或能靠近一被放置的對(duì)象的底邊。在一個(gè)或多個(gè)實(shí)施例中,區(qū)間列表以從左到右、從上到下排序。在至少一些實(shí)施例中,二維對(duì)象裝填組件能夠使用附加特征來改善用戶體驗(yàn)。作為示例而非限定,這些附加特征包括預(yù)估特征、對(duì)象大小調(diào)整特征、下拉特征、對(duì)象位置重分布特征、用于上下文敏感的裁剪的面部識(shí)別特征、視頻特征、和/或閾值容限及結(jié)果測(cè)量特征。在以下討論中,提供了題為“操作環(huán)境”的章節(jié),該章節(jié)描述其中可采用一個(gè)或多個(gè)實(shí)施例的一個(gè)環(huán)境。接著,題為“示例二維對(duì)象裝填”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例如何能將二維對(duì)象裝填在邊界區(qū)域中。接著,題為“示例方法”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例方法。此后,題為“預(yù)估”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例特征。接著,題為“對(duì)象大小調(diào)整”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例特征。此后, 題為“下拉”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例特征。接著,題為“對(duì)象位置重分布”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例特征。此后,題為“用于上下文敏感的裁剪的面部識(shí)別”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例特征。接著,題為“視頻”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例特征。此后,題為“閾值容限及結(jié)果測(cè)量”的章節(jié)描述了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例特征。最后,題為“示例系統(tǒng)”的章節(jié)描述了可用于實(shí)現(xiàn)一個(gè)或多個(gè)實(shí)施例的示例系統(tǒng)。操作環(huán)境圖1在100處概括示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的操作環(huán)境。環(huán)境100包括計(jì)算設(shè)備102,計(jì)算設(shè)備102具有一個(gè)或多個(gè)處理器104、一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)106 和駐留在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上并可由處理器執(zhí)行的一個(gè)或多個(gè)應(yīng)用程序108。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括,作為示例而非限制,通常與計(jì)算設(shè)備相關(guān)聯(lián)的所有形式的易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)介質(zhì)。這種介質(zhì)可包括ROM、RAM、閃存、硬盤、可移動(dòng)介質(zhì)等。計(jì)算設(shè)備的一個(gè)具體示例以下在圖6中示出并描述。此外,計(jì)算設(shè)備102包括軟件應(yīng)用110,其包括二維對(duì)象裝填組件111。應(yīng)用110 能包含處理諸如二維光柵圖像之類的二維可視元素或?qū)ο蟮娜魏魏线m類型的應(yīng)用。另選地或另外地,二維對(duì)象裝填組件111可以是由其它組件和/或應(yīng)用所使用的獨(dú)立組件。另外,環(huán)境100包括諸如因特網(wǎng)等網(wǎng)絡(luò)112,以及可從中接收和向其發(fā)送內(nèi)容的一個(gè)或多個(gè)web服務(wù)器114,如上文及下文中所描述的。該內(nèi)容可以包括包含如上文及下文中所描述的二維可視對(duì)象的內(nèi)容。
計(jì)算設(shè)備102可被具體化為任何合適的計(jì)算設(shè)備,諸如作為示例而非限制,臺(tái)式計(jì)算機(jī),便攜式計(jì)算機(jī),諸如個(gè)人數(shù)字助理(PDA)、蜂窩電話等手持式計(jì)算機(jī),等等。描述了示例操作環(huán)境之后,現(xiàn)在考慮可利用如上文及下文中所描述的二維對(duì)象裝填的一些示例實(shí)施例的討論。示例二維對(duì)象裝填圖2在200處概括地示出根據(jù)一個(gè)或多個(gè)實(shí)施例的示例二維對(duì)象裝填操作。裝填操作可通過合適地配置的二維對(duì)象裝填組件來實(shí)現(xiàn),諸如上文所述的。在將要描述的操作中,在20h-g示出各不同裝填狀態(tài)下的一個(gè)邊界區(qū)域。最初,獲取將要被裝填到該邊界區(qū)域中的對(duì)象的列表。對(duì)象的列表能從任何適當(dāng)?shù)囊粋€(gè)或多個(gè)源獲取。例如,能通過諸如因特網(wǎng)之類的網(wǎng)絡(luò)來獲取一個(gè)或多個(gè)對(duì)象。另選地或另外地,可從諸如本地計(jì)算設(shè)備之類的本地源獲取一個(gè)或多個(gè)對(duì)象。此外,作為示例而非限定,對(duì)象可包括諸如二維光柵圖像之類的任何適當(dāng)類型的二維對(duì)象。此外,對(duì)象的列表可包括排序的對(duì)象列表,使得嘗試將對(duì)象以與對(duì)象出現(xiàn)在列表上的順序相同的順序?qū)?duì)象裝填到邊界區(qū)域內(nèi)。在示出和描述的實(shí)施例中,嘗試以從左到右以及從上到下移動(dòng)的方式將個(gè)體對(duì)象裝填到邊界區(qū)域內(nèi)。然而,應(yīng)當(dāng)認(rèn)識(shí)和理解,可以利用任何適當(dāng)?shù)难b填順序或方向而不背離所要求保護(hù)的主題的精神和范圍。在示出和描述的實(shí)施例中,邊界區(qū)域內(nèi)的可用空間被追蹤。可采用任何適當(dāng)?shù)姆椒ɑ蚪Y(jié)構(gòu)來追蹤邊界區(qū)域內(nèi)的可用空間。在一個(gè)或多個(gè)實(shí)施例中,采用區(qū)間列表形式的列表來追蹤可用空間。區(qū)間能產(chǎn)生在橫向上相鄰放置的對(duì)象和/或能靠近一被放置的對(duì)象的底邊。在一個(gè)或多個(gè)實(shí)施例中,區(qū)間列表以從左到右、從上到下排序。在示出的示例中,區(qū)間被表示如下“ ====η ==== ”,其中“η”是表示區(qū)間列表中的特定區(qū)間的索引的變量。在一個(gè)或多個(gè)實(shí)施例中,最初,邊界區(qū)域20 是空的并且不包括任何對(duì)象。如示出的,一個(gè)被指定為“1”的區(qū)間延伸橫跨邊界區(qū)域20 的頂部。然而,可選地,邊界區(qū)域可包括一個(gè)或多個(gè)保留區(qū)域,這導(dǎo)致邊界區(qū)域中的多個(gè)初始區(qū)間。保留區(qū)域可被用于諸如標(biāo)題或?qū)⒈环胖迷诹己枚x的位置處的其它與用戶界面相關(guān)的框架(chrome)之類的東西。將被放置在邊界區(qū)域內(nèi)的第一對(duì)象204被獲取并被放置為如邊界區(qū)域202b中所示。當(dāng)?shù)谝粚?duì)象204被插入時(shí),第一區(qū)間如所示的被截短,并且沿第一對(duì)象204的底邊創(chuàng)建新的、指定為“2”的第二區(qū)間。只要在第一區(qū)間內(nèi)有可用空間,這一過程就繼續(xù)。具體來說,將要被放置在邊界區(qū)域內(nèi)的下一對(duì)象被獲取并與第一對(duì)象204相鄰放置。在示出及描述的示例中,第二對(duì)象206已在邊界區(qū)域202c中與第一對(duì)象204相鄰放置。 結(jié)果,第一區(qū)間如所示的被截短,并且沿第二對(duì)象206的底邊創(chuàng)建新的、指定為“3”的第三區(qū)間。接著,第三對(duì)象208與第二對(duì)象206相鄰放置,由此進(jìn)一步截短了第一區(qū)間。還要注意的是,區(qū)間列表中的區(qū)間順序被重新定義。具體來說,由于第三對(duì)象208的縱向延伸與第一對(duì)象204的縱向延伸相同,在從左到右、從上到下的區(qū)間列表排序中,沿第三對(duì)象208的底邊創(chuàng)建的區(qū)間現(xiàn)在變?yōu)榈谌齾^(qū)間。第二對(duì)象206的底邊現(xiàn)在變?yōu)榈谒膮^(qū)間,如以“4”標(biāo)記的。出于連續(xù)性考慮,邊界區(qū)域202d在示出的第二行中被重復(fù)。假設(shè)在這一示例中,
6將要被放置在邊界區(qū)域中的下一對(duì)象是對(duì)象210。如果像此處一樣,在第一區(qū)間中沒有剩余的空間,則第一區(qū)間被下拉并與邊界區(qū)域202d中被指定為“2”的下一相鄰區(qū)間合并。這留下了一個(gè)被稱為空塊的空的空間。在邊界區(qū)域20 中的212,指定了一示例空塊。此外, 來自邊界區(qū)域202d的各區(qū)間在邊界區(qū)域20 中被重新排序,從而保持從左到右、從上到下的區(qū)間列表順序?,F(xiàn)在,對(duì)象210被嘗試放置到邊界區(qū)域20 中的第一區(qū)間內(nèi)。由于對(duì)象 210不能被放置在邊界區(qū)域20 中的第一區(qū)間內(nèi),第一區(qū)間與邊界區(qū)域20 中指定為“2” 的下一相鄰區(qū)間合并。這留下了由空塊占據(jù)的又一空的空間。具體來說,邊界區(qū)域202f示出了占據(jù)來自邊界區(qū)域20 的第一區(qū)間的空塊214。 還需要注意的是,區(qū)間順序已經(jīng)被重新定義。現(xiàn)在,對(duì)象210被嘗試放置到邊界區(qū)域202f 中的新定義的第一區(qū)間內(nèi)。如在邊界區(qū)域202g中所示,對(duì)象210適合第一區(qū)間,并且相對(duì)應(yīng)地,使得第一區(qū)間被截短。還需要注意的是,鄰近對(duì)象210的底邊創(chuàng)建了第三區(qū)間。上述的過程繼續(xù),直到所有的對(duì)象已經(jīng)被放置到邊界區(qū)域中,或者直到第一區(qū)間的y位置大于邊界區(qū)域的高度,這意味著再也沒有更多的對(duì)象能適合邊界區(qū)域。示例方法圖3是描述根據(jù)一個(gè)或多個(gè)實(shí)施例的方法中的各步驟的流程圖。該方法可以結(jié)合任何合適的硬件、軟件、固件或其組合來實(shí)現(xiàn)。作為示例而非限制,在至少一些實(shí)施例中,該方法可以通過諸如結(jié)合圖1所描述的二維對(duì)象裝填組件之類的軟件來實(shí)現(xiàn)。步驟300獲取將要被放置到邊界區(qū)域內(nèi)的對(duì)象的排序列表。對(duì)象可以從任何合適的位置獲取,其示例如上提供。此外,可采用任何適當(dāng)?shù)某叽绲倪吔鐓^(qū)域。作為示例而非限制,在至少一些實(shí)施例中,邊界區(qū)域可包括諸如矩形邊界區(qū)域之類的直線的邊界區(qū)域。步驟 302定義一個(gè)第一區(qū)間。如何這樣做的一個(gè)示例在上文中提供。步驟304將第一對(duì)象放置在第一區(qū)間內(nèi)。步驟306響應(yīng)于第一區(qū)間中對(duì)象的放置調(diào)整第一區(qū)間。步驟308查明是否有將要被放置在邊界區(qū)域內(nèi)的附加對(duì)象。如果沒有附加對(duì)象要被放置,步驟310結(jié)束該方法。另一方面,如果還有附加對(duì)象要被放置,步驟312查明那些對(duì)象的放置是否會(huì)伸出邊界區(qū)域的底部。如果放置一個(gè)或多個(gè)附加對(duì)象將伸出邊界區(qū)域的底部,則步驟310結(jié)束該方法。如果不會(huì),則步驟314獲取將要被放置到邊界區(qū)域內(nèi)的下一對(duì)象。步驟316查明該下一對(duì)象是否適合當(dāng)前區(qū)間。如果該下一對(duì)象適合當(dāng)前區(qū)間,則步驟318將該對(duì)象放置在當(dāng)前區(qū)間內(nèi)并且步驟320調(diào)整區(qū)間。作為示例而非限制,調(diào)整區(qū)間可包括對(duì)一個(gè)或多個(gè)區(qū)間調(diào)整大小,重新對(duì)一個(gè)或多個(gè)區(qū)間進(jìn)行編號(hào),或兩者。方法隨后返回到步驟308以查明是否還有附加對(duì)象要被放置到邊界區(qū)域內(nèi)。另一方面,如果將要被放置到邊界區(qū)域內(nèi)的下一對(duì)象不適合當(dāng)前區(qū)間(步驟316 中的“否”分支),則步驟322創(chuàng)建對(duì)應(yīng)于當(dāng)前區(qū)間的剩余區(qū)間部分的空的空間,并調(diào)整一個(gè)或多個(gè)區(qū)間。這可包括對(duì)區(qū)間重新編號(hào)以維持從左到右、從上到下的區(qū)間排序。步驟3 嘗試將對(duì)象放置到下一區(qū)間內(nèi)。步驟3 查明該對(duì)象是否適合下一(或現(xiàn)在、當(dāng)前)區(qū)間。如果否,則該方法返回步驟322??梢岳斫夂兔靼椎模襟E322/3 可包括查明對(duì)象相對(duì)于下一區(qū)間的放置是否會(huì)伸出邊界區(qū)域的底部。如果是,則方法可結(jié)束。 另一方面,如果步驟3 查明對(duì)象能夠適合當(dāng)前區(qū)間,則方法分支到步驟318并將該對(duì)象放置到當(dāng)前區(qū)間內(nèi)。方法隨后繼續(xù),直到所有對(duì)象被放置到邊界區(qū)域內(nèi)或者放置特定對(duì)象將會(huì)伸出邊界區(qū)域的底部。預(yù)估在上述示例中,將要被放置在邊界區(qū)域內(nèi)的對(duì)象被定義在排序列表中。在至少一些實(shí)施例中,維持像排序列表中所定義的一樣的對(duì)象順序可能是期望的。然而,在至少一些實(shí)施例中,對(duì)象在邊界區(qū)域內(nèi)的放置可以是以與排序列表中所定義的相違背的順序進(jìn)行的。例如,假設(shè)排序列表中的對(duì)象是出現(xiàn)在聯(lián)系人列表中的個(gè)人的光柵圖像。排序列表可定義一個(gè)就與聯(lián)系人的重要性或相關(guān)性相關(guān)聯(lián)的某些參數(shù)而言所期望的聯(lián)系人順序。然而, 為了放置在邊界區(qū)域內(nèi),改變出現(xiàn)這排序列表中的對(duì)象的順序仍然可提供可接受的或者期望的用戶體驗(yàn)。在至少一些實(shí)施例中,如果特定對(duì)象不能適合當(dāng)前區(qū)間,可采用一預(yù)估參數(shù)來搜索列表中能夠適合當(dāng)前區(qū)間的對(duì)象。預(yù)估參數(shù)可定義列表中將被考慮的下幾個(gè)對(duì)象,例如, 下三個(gè)或四個(gè)對(duì)象。對(duì)象大小調(diào)整在至少一些實(shí)施例中,盡可能的維持被放置在邊界區(qū)域內(nèi)的對(duì)象的尺寸可能是期望的。然而,在一些情況下,為了使對(duì)象能夠被放置在邊界區(qū)域內(nèi)的特定區(qū)間內(nèi)或者為了更有效地占用邊界區(qū)域,對(duì)象可以被調(diào)整大小。例如,對(duì)象可能比區(qū)間中的剩余空間略大。在這些情況下,對(duì)象的大小可以被減小以適合區(qū)間中的剩余空間。另選地或另外地,對(duì)象在特定區(qū)間內(nèi)的放置可留下鄰近該對(duì)象的大的空的空間。在這一情況下,對(duì)象可以在尺寸上被擴(kuò)展以更有效地占用區(qū)間中的剩余空間,從而減少空的空間。下拉在至少一些實(shí)施例中,將對(duì)象放置在區(qū)間內(nèi)的方法的一個(gè)副作用是沿著邊界區(qū)域的上沿的最初的對(duì)象易于定義一組欄,其余的對(duì)象會(huì)被放置在這些欄中。這具有非期望的影響,即使得所得到的對(duì)象拼貼看上去是非隨機(jī)的并且使得更難以將各種不同對(duì)象的大小適配到那些欄中。為了應(yīng)對(duì)這一情況,可采用一下拉參數(shù)來使得當(dāng)某些條件被滿足時(shí)區(qū)間能夠被合并。例如,一個(gè)條件可以是區(qū)間在χ坐標(biāo)上相互毗鄰并且在y坐標(biāo)上相互接近。接近度可以采用任何合適的方法來確定。例如,接近度可被確定為對(duì)象的大小的比例。作為示例,考慮圖4。其中,邊界區(qū)域400(最左邊的示例)包含被放置在其中的兩個(gè)對(duì)象——對(duì)象402、404。注意到這些對(duì)象的放置定義了兩個(gè)區(qū)間。這些區(qū)間在χ坐標(biāo)上相互毗鄰并且在y坐標(biāo)上相互接近。在最右邊的邊界區(qū)域400的示例中,這些區(qū)間已被合并并且空的空間406已被插入到原始的第一區(qū)間中。對(duì)象位置重分布在至少一些實(shí)施例中,對(duì)象的位置可以被重新分布以在邊界區(qū)域內(nèi)更均勻地、可視地分布空的空間。作為示例,考慮圖5。其中,邊界區(qū)域500被示出并包含已被放置在其中并以交叉陰影線對(duì)象所示的多個(gè)不同對(duì)象。注意部分502,其中存在一個(gè)對(duì)象和一個(gè)空的空間。在這一示例中,該對(duì)象出現(xiàn)在該空的空間上方。在至少一些實(shí)施例中,軟件代碼可檢測(cè)到在χ或y方向鄰接有一空的空間。在一些情況下,軟件代碼可隨后將該對(duì)象重新定位到該空的空間中或者相對(duì)于該空的空間重新定位,使得更均勻地將空的空間沿著對(duì)象的兩側(cè)分布。作為一個(gè)示例,考慮最右邊的邊界區(qū)域500。其中,部分502內(nèi)的相應(yīng)對(duì)象已被垂
8直向下移動(dòng),使得空的空間同時(shí)出現(xiàn)在對(duì)象的上方和下方。用于上下文敏感的裁剪的面部識(shí)別在至少一些實(shí)施例中,被放置在邊界區(qū)域內(nèi)的諸如圖像之類的對(duì)象將包含一個(gè)或多個(gè)面部。在一些情況下,可能期望如通過縮減尺寸之類對(duì)對(duì)象進(jìn)行大小調(diào)整以使其適合邊界區(qū)域。在這些情況下,可能期望維持出現(xiàn)在對(duì)象或圖像中的一個(gè)或多個(gè)面部的完整性。 為此,可采用各種面部識(shí)別技術(shù)來識(shí)別圖像內(nèi)的一個(gè)或多個(gè)面部,使得對(duì)象可被調(diào)整大小以保留一個(gè)或多個(gè)面部的完整性。例如,如果圖像將被裁剪,一旦面部被標(biāo)識(shí),則可以圍繞該面部來剪裁圖像,使得當(dāng)該圖像被放置在邊界區(qū)域內(nèi)時(shí),該面部將會(huì)看上去完整。如本領(lǐng)域技術(shù)人員所理解和明白的,可采用任何合適的面部識(shí)別技術(shù)。視頻在一些示例中,可能期望將諸如縮略圖之類的與視頻對(duì)象相關(guān)聯(lián)的偽像放置在邊界區(qū)域中。在這些情況下,可采用任何合適的方法來從視頻對(duì)象捕捉縮略圖并如上所述地將該縮略圖并入邊界區(qū)域中。閾值容限及結(jié)果測(cè)量在一些情形中,可以存在能夠以不同順序和大小、以優(yōu)先順序、以空的空間的不同分布、和/或以不同程度的應(yīng)用規(guī)則在邊界區(qū)域中對(duì)對(duì)象進(jìn)行布局的多個(gè)布局方案。例如, 裁剪規(guī)則可具有裁剪在百分之一至不超過百分之五之間的可調(diào)的參數(shù)。這些不同的布局方案的每一個(gè)可具有與之相關(guān)聯(lián)的結(jié)果測(cè)量。結(jié)果測(cè)量可以是對(duì)任何一個(gè)特定的布局方案的期望度的測(cè)量。例如,對(duì)于一個(gè)具體的邊界區(qū)域,特定的一個(gè)對(duì)象集合可以有10個(gè)不同的布局方案。這些布局方案可能具有從“1”到“10”的結(jié)果測(cè)量,其中“1”是最期望的。在這一情況下,可以設(shè)定一閾值來濾除低于所期望的那些布局方案。例如,任何具有大于“3” 的結(jié)果測(cè)量的布局方案被濾除。如果僅有的一個(gè)布局方案具有低于“3”的結(jié)果測(cè)量,例如 “1 “,則該布局方案被選擇。當(dāng)不止一個(gè)布局方案滿足該閾值時(shí),可采用其它方法??梢员焕斫夂兔靼椎氖牵?dāng)將對(duì)象放置到邊界區(qū)域內(nèi)時(shí),可采以上所描述的方法中的任意和/或全部。例如,一種對(duì)象放置方法可與基于區(qū)間的方法相結(jié)合地采用預(yù)估和對(duì)象大小調(diào)整特征。又一對(duì)象放置方法可與基于區(qū)間的方法相結(jié)合地采用對(duì)象大小調(diào)整、 下拉以及對(duì)象位置重分布特征。不用說,可采用這些特征的任何合適的組合而不違背本發(fā)明的精神和范圍。示例系統(tǒng)圖6示出可用來實(shí)現(xiàn)上述各實(shí)施例的示例計(jì)算設(shè)備600。計(jì)算設(shè)備600可以是例如圖1的計(jì)算設(shè)備102或web服務(wù)器114。計(jì)算設(shè)備600包括一個(gè)或多個(gè)處理器或處理單元602、一個(gè)或多個(gè)存儲(chǔ)器和/或存儲(chǔ)組件604、一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備606、以及允許各組件和設(shè)備彼此通信的總線608。總線608表示若干類型的總線結(jié)構(gòu)中的任何一種的一個(gè)或多個(gè),包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、加速圖形端口,以及使用各種總線體系結(jié)構(gòu)中的任何一種的處理器或局部總線??偩€608可包括有線和/或無線總線。存儲(chǔ)器/存儲(chǔ)組件604表示一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)介質(zhì)。組件604可包括易失性介質(zhì)(諸如隨機(jī)存取存儲(chǔ)器(RAM))和/或非易失性介質(zhì)(諸如只讀存儲(chǔ)器(ROM)、閃存、光盤、磁盤等等)。組件604可包括固定介質(zhì)(例如,RAM、R0M、固定硬盤驅(qū)動(dòng)器等等)以及可移動(dòng)介質(zhì)(例如,閃存驅(qū)動(dòng)器、可移動(dòng)硬盤驅(qū)動(dòng)器、光盤等等)。一個(gè)或多個(gè)輸入/輸出設(shè)備606允許用戶向計(jì)算設(shè)備600輸入命令和信息,并且還允許向用戶和/或其他組件或設(shè)備呈現(xiàn)信息。輸入設(shè)備的示例包括鍵盤、光標(biāo)控制設(shè)備 (例如,鼠標(biāo))、話筒、掃描儀等等。輸出設(shè)備的示例包括顯示設(shè)備(例如,監(jiān)視器或投影儀)、 揚(yáng)聲器、打印機(jī)、網(wǎng)卡等等。此處可以在軟件或程序模塊的一般上下文中描述各種技術(shù)。一般而言,軟件包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。這些模塊和技術(shù)的實(shí)現(xiàn)可以存儲(chǔ)在某種形式的計(jì)算機(jī)可讀介質(zhì)上或通過某種形式的計(jì)算機(jī)可讀介質(zhì)傳輸。計(jì)算機(jī)可讀介質(zhì)可以是可以被計(jì)算設(shè)備訪問的任何可用介質(zhì)。作為示例而非限制, 計(jì)算機(jī)可讀介質(zhì)可以包括“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”?!坝?jì)算機(jī)可讀存儲(chǔ)介質(zhì)”包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但不限于,RAM、R0M、EEPR0M、閃存或其他存儲(chǔ)器技術(shù)、CD-ROM、 數(shù)字多功能盤(DVD)或其他光盤存儲(chǔ)、盒式磁帶、磁帶、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或者可用于存儲(chǔ)所需信息并可由計(jì)算機(jī)訪問的任何其他介質(zhì)。結(jié)論各實(shí)施例使得諸如二維光柵圖像之類的可視元素或?qū)ο竽軌蛞詼p少被浪費(fèi)的空間的方式被裝填到諸如矩形邊界區(qū)域之類的邊界區(qū)域中。在至少一些實(shí)施例中,二維對(duì)象裝填組件嘗試將個(gè)體對(duì)象適配到邊界區(qū)域中。二維對(duì)象裝填組件使用一區(qū)間列表來通過追蹤邊界區(qū)域內(nèi)的區(qū)間來保持對(duì)可用空間的追蹤。區(qū)間能表現(xiàn)為在橫向上毗鄰被放置對(duì)象和 /或鄰接被放置對(duì)象的底邊。在一個(gè)或多個(gè)實(shí)施例中,區(qū)間列表以從左到右、從上到下排序。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但是可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動(dòng)作。更確切而言,上述具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,包括獲取(300)將要被放置到邊界區(qū)域內(nèi)的對(duì)象的排序列表; 定義(30 所述邊界區(qū)域內(nèi)的第一區(qū)間;將來自所述對(duì)象的排序列表中的第一對(duì)象放置(304)在所述第一區(qū)間內(nèi); 響應(yīng)于放置所述第一對(duì)象調(diào)整(306)所述第一區(qū)間; 獲取(314)將要被放置到所述邊界區(qū)域內(nèi)的下一對(duì)象;如果所述下一對(duì)象適合所述第一區(qū)間,則將所述下一對(duì)象放置(318)在所述第一區(qū)間中,否則創(chuàng)建(322)空的空間,并嘗試(324)將所述下一對(duì)象放置到下一區(qū)間內(nèi)。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括如果所述下一對(duì)象不適合所述下一區(qū)間,則創(chuàng)建對(duì)應(yīng)于所述下一區(qū)間的空的空間。
3.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括維持包括多個(gè)區(qū)間的區(qū)間列表,并且其中調(diào)整所述第一區(qū)間包括對(duì)第一區(qū)間進(jìn)行大小調(diào)整或?qū)λ鰠^(qū)間列表中的區(qū)間進(jìn)行重新編號(hào)中的一個(gè)或多個(gè)。
4.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括維持包括多個(gè)區(qū)間的區(qū)間列表,并且其中調(diào)整所述第一區(qū)間包括對(duì)第一區(qū)間進(jìn)行大小調(diào)整或?qū)λ鰠^(qū)間列表中的區(qū)間重新編號(hào)中的一個(gè)或多個(gè),并且其中對(duì)區(qū)間重新編號(hào)包括對(duì)區(qū)間重新編號(hào)以維持從左到右、從上到下的區(qū)間排序。
5.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括使用區(qū)間列表來嘗試將附加對(duì)象放置在所述邊界區(qū)域中直到所述排序列表上的所有對(duì)象被放置在所述邊界區(qū)域中或放置特定對(duì)象將伸出所述邊界區(qū)域的底部。
6.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述對(duì)象包括二維光柵圖像。
7.一個(gè)或多個(gè)包含二維對(duì)象裝填組件(111)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(106),所述二維對(duì)象裝填組件被配置以使用包含邊界區(qū)間O02a)內(nèi)、以從左到右、從上到下的順序來排列的區(qū)間的列表的區(qū)間列表以將對(duì)象(204)放置在邊界區(qū)域內(nèi),其中在對(duì)象放置期間,所述區(qū)間被定義為在橫向上毗鄰至少某些被放置的對(duì)象(204)并且與至少一些其它對(duì)象的底部邊沿鄰接; 以及執(zhí)行以下的至少之一以嘗試將對(duì)象(204)放置在所述邊界區(qū)域內(nèi) 當(dāng)出現(xiàn)在排序列表中的對(duì)象不適合區(qū)間的情況下,在所述排序列表中預(yù)估以嘗試找到適合所述區(qū)間的對(duì)象;對(duì)將要被放置在所述邊界區(qū)域內(nèi)的對(duì)象進(jìn)行大小調(diào)整; 當(dāng)滿足至少一個(gè)條件時(shí)合并多個(gè)區(qū)間;對(duì)對(duì)象進(jìn)行重新分布以更均勻地、可視地在所述邊界區(qū)域內(nèi)分布空的空間; 使用面部識(shí)別技術(shù)來識(shí)別對(duì)象內(nèi)的面部,使得對(duì)對(duì)象進(jìn)行大小調(diào)整將保留所述面部的完整性;使用來自視頻對(duì)象的縮略圖以并入所述面部區(qū)域;或使用與布局方案相關(guān)聯(lián)的結(jié)果測(cè)量,以選擇用于將對(duì)象布置在所述布局區(qū)域內(nèi)的布局方案。
8.如權(quán)利要求7所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述預(yù)估包括使用預(yù)估參數(shù)來定義所述排序列表中將被考慮的下幾個(gè)對(duì)象。
9.如權(quán)利要求7所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述對(duì)對(duì)象進(jìn)行調(diào)整大小包括縮減對(duì)象的大小。
10.如權(quán)利要求7所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述至少一個(gè)條件是將要合并的兩個(gè)區(qū)間在χ坐標(biāo)上相互毗鄰。
11.如權(quán)利要求7所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述至少一個(gè)條件是將要合并的兩個(gè)區(qū)間在χ坐標(biāo)上相互毗鄰,并且其中所述至少一個(gè)條件進(jìn)一步是所述兩個(gè)區(qū)間在ι坐標(biāo)上相互接近。
12.如權(quán)利要求7所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述對(duì)象包括二維光柵圖像。
13.如權(quán)利要求7所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述二維對(duì)象裝填組件被配置以在對(duì)象不能適合區(qū)間部分的情況下創(chuàng)建對(duì)應(yīng)于所述區(qū)間部分的空的空間。
14.如權(quán)利要求7所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述二維對(duì)象裝填組件被配置以通過對(duì)所述區(qū)間列表中的區(qū)間重新編號(hào)來維持從左到右、從上到下的區(qū)間排序來維持所述區(qū)間列表。
15.—個(gè)或多個(gè)包括計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令在被執(zhí)行時(shí)實(shí)現(xiàn)一種方法,所述方法包括獲取(300)將要被放置到邊界區(qū)域內(nèi)的對(duì)象的排序列表;定義(30 所述邊界區(qū)域內(nèi)的第一區(qū)間;將來自所述對(duì)象的排序列表中的第一對(duì)象放置(304)在所述第一區(qū)間內(nèi);響應(yīng)于放置第一對(duì)象調(diào)整(306)所述第一區(qū)間;獲取(314)將要被放置到所述邊界區(qū)域內(nèi)的下一對(duì)象;如果所述下一對(duì)象將適合所述第一區(qū)間,則將所述下一對(duì)象放置(318)在所述第一區(qū)間中,否則創(chuàng)建(322)空的空間,并嘗試將所述下一對(duì)象放置到下一區(qū)間內(nèi)。
全文摘要
本發(fā)明涉及二維對(duì)象裝填。各實(shí)施例使得諸如二維光柵圖像之類的可視元素或?qū)ο竽軌蛞詼p少被浪費(fèi)的空間的方式被裝填到諸如矩形邊界區(qū)域之類的邊界區(qū)域中。在至少一些實(shí)施例中,二維對(duì)象裝填組件嘗試將個(gè)體對(duì)象適配到邊界區(qū)域中。二維對(duì)象裝填組件使用一區(qū)間列表來通過追蹤邊界區(qū)域內(nèi)的區(qū)間來保持對(duì)可用空間的追蹤。區(qū)間能產(chǎn)生在橫向上相鄰放置的對(duì)象和/或能靠近一被放置的對(duì)象的底邊。在一個(gè)或多個(gè)實(shí)施例中,區(qū)間列表以從左到右、從上到下排序。
文檔編號(hào)G06T11/40GK102446362SQ201110266360
公開日2012年5月9日 申請(qǐng)日期2011年8月30日 優(yōu)先權(quán)日2010年8月31日
發(fā)明者A·R·拉夫曼, J·S·施賴納 申請(qǐng)人:微軟公司