專利名稱:在數(shù)字圖像處理中貫穿效果圖累積變換的制作方法
在數(shù)字圖像處理中貫穿效果圖累積變換
背景
視頻卡或圖形處理單元(GPU)區(qū)別于中央處理單元(CPU)之處在于它們 利用高速存儲(chǔ)器并且將其與能夠非常高效率地處理像素?cái)?shù)據(jù)上的簡(jiǎn)單計(jì)算的專用 處理器相耦合。視頻卡不是通用處理器。然而,它們可以計(jì)算例如哪些表面應(yīng)對(duì)用 戶可見(jiàn)而哪些應(yīng)被隱藏,以及什么紋理應(yīng)被映射到那些表面上以使它們?cè)谌S (3D)場(chǎng)景中看上去逼真,并且比CPU能完成相同的任務(wù)要迅速得多。這很大程 度上歸因于以下事實(shí)盡管CPU能夠勝任地執(zhí)行各種不同的一般化任務(wù),但是它 們不是針對(duì)任何特定操作最優(yōu)化的,而視頻卡利用非常專用的硬件來(lái)一次僅執(zhí)行單 個(gè)功能。
傳統(tǒng)上,視頻卡(GPU)用于兩種主要目的。第一,GPU被用來(lái)加速用戶屏 幕上的簡(jiǎn)單的圖形操作。例如,當(dāng)用戶滾動(dòng)遍歷顯示在顯示設(shè)備(例如,常規(guī)的計(jì) 算機(jī)監(jiān)視器)上的文檔時(shí),大量的像素被移來(lái)移去。由于此類動(dòng)作提出的計(jì)算要求, 傳統(tǒng)的CPU在完成這種任務(wù)時(shí)不是特別迅速或高效率。由此,可將GPU與CPU 聯(lián)用來(lái)實(shí)現(xiàn)更迅速且更高效率的滾動(dòng)。
第二, GPU已經(jīng)被用于繪制簡(jiǎn)單的圖元(例如,用顏色填充一個(gè)區(qū)域,畫(huà)線 等)。隨著簡(jiǎn)單圖形操作的加速,GPU能夠比傳統(tǒng)的CPU更迅速且高效率地繪制 這樣的簡(jiǎn)單圖元。
最近,視頻游戲開(kāi)始變得越來(lái)越流行,這造成了對(duì)此類游戲中增強(qiáng)的現(xiàn)實(shí)感 和加快的速度的要求有所增長(zhǎng)。由此,視頻游戲制造商已經(jīng)開(kāi)始著手處理視頻繪制 的復(fù)合問(wèn)題,例如,繪制一三維場(chǎng)景同時(shí)提供陰影、反射、紋理映射等等以使得該 場(chǎng)景看起來(lái)盡可能真實(shí),同時(shí)仍然可以迅速響應(yīng)于用戶輸入。 在上述特殊領(lǐng)域之外,視頻卡尚未被用于加速CPU功能。 在視頻游戲制造之外的舞臺(tái)上對(duì)數(shù)字圖像的使用近來(lái)也在增長(zhǎng)。然而,隨著 數(shù)字圖像變得越來(lái)越大(更多兆像素)并且像素深度越來(lái)越大(每通道至少16位), 它們給傳統(tǒng)CPU中可用的計(jì)算資源造成了過(guò)度的壓力,從而導(dǎo)致數(shù)字圖像處理越 來(lái)越慢且效率越來(lái)越低。
概述
本發(fā)明的實(shí)施例涉及利用垂直取向的效果圖來(lái)處理一一例如非破壞性地處 理——數(shù)字圖像數(shù)據(jù)。在非破壞性處理中,在品質(zhì)和性能兩者意義上來(lái)說(shuō),在何處 以及何時(shí)數(shù)據(jù)被變換是相當(dāng)重要的。變換在垂直取向的效果圖中越往下處發(fā)生越 好。由此,本發(fā)明的實(shí)施例涉及將變換在效果圖中下推到最低可能點(diǎn)并在該點(diǎn)而不 是在它們?cè)环胖玫奈恢蒙蠎?yīng)用它們。
附圖簡(jiǎn)要說(shuō)明
以下參考附圖詳細(xì)描述本發(fā)明,其中
圖1是適合在實(shí)現(xiàn)本發(fā)明時(shí)使用的示例性計(jì)算環(huán)境的框圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的具有三個(gè)輸入和兩個(gè)輸出的示例性混合效 果的示意圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的根據(jù)遮罩的指示來(lái)選擇性地模糊輸入圖像 的若干區(qū)域的典型效果圖的示意圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例性效果圖的示意圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的為每個(gè)效果示出計(jì)數(shù)的示例性效果圖的示意圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的示出了與模糊效果相關(guān)聯(lián)的遮罩的示例性 效果圖的示意圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例的可供在效果圖中使用的示例性層的示意圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例的效果圖的示例性全連通層的示意圖9是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方 法的流程圖IO是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái)處理數(shù)字圖 像數(shù)據(jù)的方法的流程圖11是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái)處理數(shù)字圖 像數(shù)據(jù)的方法的流程圖12是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方 法的流程圖13是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法的流程圖14是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于為數(shù)字圖像數(shù)據(jù)的處理創(chuàng)建效果 圖的方法的流程圖15是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方 法的流程圖16是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方 法的流程圖,圖16的方法表示可以在圖15的方法之后發(fā)生的外加處理步驟;
圖17是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái)處理數(shù)字圖 像數(shù)據(jù)的方法的流程圖18是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái)處理數(shù)字圖 像數(shù)據(jù)的方法的流程圖。
具體說(shuō)明
這里用具體細(xì)節(jié)來(lái)說(shuō)明本發(fā)明的主題以便于滿足法律要求。然而,此說(shuō)明本 身并非旨在限定本發(fā)明的范圍。確切而言,發(fā)明人已經(jīng)構(gòu)想到該被要求保護(hù)的主題 也可以用其他方式實(shí)施,被實(shí)施為包括類似于本文檔中描述的步驟的不同步驟或步 驟的組合,結(jié)合其他發(fā)明或未來(lái)的技術(shù)來(lái)實(shí)施。除此之外,盡管術(shù)語(yǔ)"步驟"和/ 或"塊"在這里可以用來(lái)蘊(yùn)含所采用的方法的不同要素,但是該術(shù)語(yǔ)不應(yīng)被解釋為 暗示這里公開(kāi)的各種步驟之中或之間有任何特定次序,除非并且除了個(gè)別步驟的次 序被顯示地描述。
本發(fā)明實(shí)施例提供了利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的系統(tǒng)和方法。已經(jīng)簡(jiǎn) 要地描述了本發(fā)明的全貌,下面將描述本發(fā)明的示例性操作環(huán)境。
總地參照附圖,并首先具體參照?qǐng)D1,這里相同的附圖標(biāo)記標(biāo)識(shí)各圖中相同的 組件,圖中示出了一種用于實(shí)現(xiàn)本發(fā)明的示例性操作環(huán)境,并且將其概括地標(biāo)示為 計(jì)算系統(tǒng)環(huán)境100。計(jì)算系統(tǒng)環(huán)境100僅僅是適合的計(jì)算環(huán)境的一個(gè)例子,同時(shí)它 并不旨在對(duì)本發(fā)明的使用范圍或功能集提出任何限定。計(jì)算環(huán)境100也不應(yīng)被解釋 為具有與在該示例性操作環(huán)境100中示出的任何一個(gè)組件或組件的組合有關(guān)的任 何依賴或要求。
本發(fā)明可用許多其他的通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來(lái)運(yùn)作。適合與本發(fā) 明聯(lián)用的公知計(jì)算系統(tǒng)、環(huán)境、和/或配置的例子包括但不限定于,個(gè)人計(jì)算機(jī)、 服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂
盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型機(jī)、包括任何上述系統(tǒng)或 設(shè)備的分布式計(jì)算環(huán)境等。
本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的諸如程序模塊等的計(jì)算機(jī)可執(zhí)行指令的一般化 上下文中描述。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、 程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)施,在此環(huán) 境中,任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行。在分布式計(jì)算環(huán)境中,程 序模塊可以位于包括有記憶存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)兩者中。
參照?qǐng)D1,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算設(shè) 備。計(jì)算機(jī)110的組件可以包括,但不限定于,處理單元120、系統(tǒng)存儲(chǔ)器130、 以及將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合到處理單元120的系統(tǒng)總線121。 系統(tǒng)總線121可以是數(shù)種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器 控制器、外圍總線、以及采用不同種類的總線架構(gòu)中的任何一種的局部總線。作為 例子而非限定,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、微通道架構(gòu)(MCA) 總線、增強(qiáng)型工業(yè)標(biāo)準(zhǔn)架構(gòu)(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、 以及也稱為夾層總線的外圍組件互連(PCI)總線。
計(jì)算機(jī)110 —般包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是任何能被 計(jì)算機(jī)IIO訪問(wèn)的可用介質(zhì),并且包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng) 介質(zhì)。作為例子而非限定,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。 計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)的用于存儲(chǔ)例如像計(jì)算機(jī)可讀指令,數(shù) 據(jù)指令,程序模塊或其他數(shù)據(jù)等的信息的易失性和非易失性的、可移動(dòng)和不可移動(dòng) 介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限定于,RAM、 ROM、 EEPROM、閃存或其他 存儲(chǔ)器技術(shù),CDROM,數(shù)字多功能盤(pán)(DVD)或其他光盤(pán)存儲(chǔ),磁帶盒、磁帶、 磁盤(pán)存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或可以用于存儲(chǔ)想要的信息而且能被計(jì)算機(jī)110訪問(wèn) 的其他任何介質(zhì)。通信介質(zhì)一般具體表現(xiàn)為計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模式 或像載波或其他傳輸機(jī)制等的已調(diào)制數(shù)據(jù)信號(hào)中的其它數(shù)據(jù),并且包括任何信息傳 送介質(zhì)。術(shù)語(yǔ)"已調(diào)制數(shù)據(jù)信號(hào)"是指其特征中有一個(gè)或多個(gè)被以在信號(hào)內(nèi)編碼信 息的方式設(shè)置或改變的信號(hào)。作為例子,而非限制,通信介質(zhì)包括例如像有線網(wǎng)絡(luò) 或直接有線連接等的有線介質(zhì),以及例如像聲波、RF、紅外等的無(wú)線介質(zhì)及其他 無(wú)線介質(zhì)。上述任何介質(zhì)的組合也包含在計(jì)算機(jī)可讀介質(zhì)范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的例如像只讀存儲(chǔ)器 (ROM) 131和隨機(jī)存取器(RAM) 132等的計(jì)算機(jī)存儲(chǔ)介質(zhì)。包含有助于在例如在啟動(dòng)期間在計(jì)算機(jī)110內(nèi)部各元件之間傳遞信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS) 133 —般被儲(chǔ)存在ROM 131中。RAM 132 —般包含可以被處理單元 120立即訪問(wèn)和/或當(dāng)前正由其操作的數(shù)據(jù)和/或程序模塊。作為例子,而非限制, 圖l示出了操作系統(tǒng)134、應(yīng)用程序135、其他程序模式136、以及程序數(shù)據(jù)137。
計(jì)算機(jī)110還可以包括其它可移動(dòng)的/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)存 儲(chǔ)介質(zhì)。僅作為例子,圖1示出了從不可移動(dòng)的非易失性磁性介質(zhì)讀取或向其寫(xiě)入 的硬盤(pán)驅(qū)動(dòng)器141、從可移動(dòng)的非易失性磁盤(pán)152讀取或向其寫(xiě)入的磁盤(pán)驅(qū)動(dòng)器 151、以及從例如CD-ROM或其他光學(xué)介質(zhì)等的可移動(dòng)非易失性光盤(pán)156讀取或向 其寫(xiě)入的光盤(pán)驅(qū)動(dòng)器155。其他可在示例性操作環(huán)境中使用的可移動(dòng)/不可移動(dòng)、易 失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限定于,磁帶盒、閃存卡、數(shù)字多功能 盤(pán)(DVD)、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤(pán)驅(qū)動(dòng)器141 一般經(jīng)由 不可移動(dòng)存儲(chǔ)器接口例如接口 140連接到系統(tǒng)總線121,并且磁盤(pán)驅(qū)動(dòng)器151和光 盤(pán)驅(qū)動(dòng)器155 —般通過(guò)可移動(dòng)存儲(chǔ)器接口例如像接口 150連接到系統(tǒng)總線121。
上面討論的并在圖1中示出的各驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算 機(jī)110提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模式以及其他數(shù)據(jù)的存儲(chǔ)。圖1中, 例如,硬盤(pán)驅(qū)動(dòng)器141被示為存儲(chǔ)了操作系統(tǒng)114、應(yīng)用程序145、其他程序模式 146以及程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其他 程序模式136和程序數(shù)據(jù)137相同或不同。這里給予操作系統(tǒng)144、應(yīng)用程序145、 其他程序模式146和程序數(shù)據(jù)147不同的附圖標(biāo)記以說(shuō)明最低限度它們是不同的拷 貝。用戶可通過(guò)輸入設(shè)備例如鍵盤(pán)162和定點(diǎn)設(shè)備161 —般指鼠標(biāo)、跟蹤球或觸摸 板來(lái)向計(jì)算機(jī)110中輸入指令和信息。其他輸入設(shè)備(未示出)可以包括麥克風(fēng)、 操縱桿、游戲墊、衛(wèi)星天碟、掃描儀等。這些以及其他輸入設(shè)備常常通過(guò)耦合到系 統(tǒng)總線的用戶輸入接口 160連接到處理單元120,但是也可以通過(guò)其他接口和總線 結(jié)構(gòu)連接,例如并行端口,游戲端口或通用串行總線(USB)。監(jiān)視器191或其他 類型的顯示設(shè)備也可以經(jīng)由接口例如視頻接口 190連接到系統(tǒng)總線121。除了監(jiān)視 器191之外,計(jì)算機(jī)還可以包括其他外圍輸出設(shè)備,例如像揚(yáng)聲器197和打印機(jī) 196,它們可以通過(guò)輸出外圍接口 195連接。
利用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)例如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接,計(jì)算機(jī)110 可以在連網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng) 絡(luò)PC、對(duì)等設(shè)備或其他普通的網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括許多或所有上述有關(guān)計(jì)算 機(jī)110描述的元件,盡管圖1中僅僅示出了存儲(chǔ)器設(shè)備181。圖l中描述的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但是也可以包括其他網(wǎng)絡(luò)。這 樣的網(wǎng)絡(luò)化環(huán)境常見(jiàn)于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)中。
當(dāng)在LAN網(wǎng)絡(luò)化環(huán)境中使用時(shí),計(jì)算機(jī)110通過(guò)網(wǎng)絡(luò)接口或適配器170連接 到LAN 171。當(dāng)在WAN網(wǎng)絡(luò)化環(huán)境中使用時(shí),計(jì)算機(jī)110—般包括調(diào)制解調(diào)器 172或其他用于在例如英特網(wǎng)等的WAN 173上建立通信的手段??梢允莾?nèi)置的或 外置的調(diào)制解調(diào)器172可以經(jīng)由網(wǎng)絡(luò)接口 170或其他合適的機(jī)構(gòu)被連接到系統(tǒng)總線 121。在連網(wǎng)環(huán)境中,關(guān)于計(jì)算機(jī)IIO描述的程序模塊或其部分可以被存儲(chǔ)在遠(yuǎn)程 存儲(chǔ)器存儲(chǔ)設(shè)備中。作為例子而非限制,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留于存儲(chǔ) 器設(shè)備181上。將可認(rèn)識(shí)到的是,示出的網(wǎng)絡(luò)連接是示例性的,也可以采用在計(jì)算 機(jī)之間建立通信鏈路的其它手段。
盡管沒(méi)有示出計(jì)算機(jī)110的其他內(nèi)部組件,但是本領(lǐng)域普通技術(shù)人員會(huì)意識(shí) 到此類組件和相互連接是公知的。因此,無(wú)需結(jié)合本發(fā)明公開(kāi)關(guān)于計(jì)算機(jī)110的內(nèi) 部構(gòu)造的更多細(xì)節(jié)。
當(dāng)計(jì)算機(jī)IIO被開(kāi)機(jī)或復(fù)位時(shí),存儲(chǔ)在ROM 131中的BIOS 133指令處理單 元121從硬盤(pán)驅(qū)動(dòng)器141將操作系統(tǒng)或必要的部分加載到RAM 132中。 一旦標(biāo)示 為操作系統(tǒng)144的操作系統(tǒng)的拷貝部分被加載到RAM 132中,處理單元120便執(zhí) 行操作系統(tǒng)代碼并且使得與操作系統(tǒng)134的用戶界面相關(guān)聯(lián)的可視元件被顯示在 監(jiān)視器191上。 一般,當(dāng)用戶打開(kāi)應(yīng)用程序145時(shí),從硬盤(pán)驅(qū)動(dòng)器141讀取程序代 碼以及相關(guān)數(shù)據(jù),并將必要部分拷貝到RAM132中,在這里拷貝的部分由附圖標(biāo) 記135標(biāo)示。
如前面所提及的,本發(fā)明的實(shí)施例提供在數(shù)字圖像處理中利用視頻卡或GPU 的加速能力的系統(tǒng)和方法。這樣的方法和系統(tǒng)可以采用,例如,圖1中的視頻接口 190。本領(lǐng)域普通技術(shù)人員會(huì)理解和意識(shí)到"數(shù)字圖像",作為這里采用的術(shù)語(yǔ), 指的是包括靜態(tài)和/或動(dòng)態(tài)數(shù)字圖像的任何數(shù)字圖像數(shù)據(jù),并且其任何或所有組合 或變形都被構(gòu)想為落在本發(fā)明的范圍之內(nèi)。利用這里描述的系統(tǒng)和方法,就能以被 加速的速度,即比CPU自身能夠做到的更快的速度以各種不同的方法來(lái)變換像素 數(shù)據(jù)。
本發(fā)明的實(shí)施例另外將非破壞性編輯與GPU加速集成。這里所采用的術(shù)語(yǔ)"非 破壞性編輯"或"非破壞性處理"指的是在請(qǐng)求之際僅那些被請(qǐng)求繪制的圖像數(shù)據(jù) 將被繪制,即,不將數(shù)據(jù)平化或保存到中間步驟。換句話說(shuō),每當(dāng)圖像被繪制時(shí), 繪制都是應(yīng)請(qǐng)求從未變更過(guò)的原始加載的圖像數(shù)據(jù)開(kāi)始發(fā)生的。
現(xiàn)有的應(yīng)用程序已經(jīng)嘗試不同程度地結(jié)合CPU處理進(jìn)行各種非破壞性處理。 然而,這并沒(méi)有被完全實(shí)現(xiàn),因?yàn)镃PU處理慢到足以使性能不能匹配那個(gè)時(shí)候流 行的相對(duì)小的圖像上的平化模型的性能。然而更近期一些,非常大的(兆像素)的 照片圖像就越來(lái)越受歡迎,從而使得非破壞性編輯模式更具吸引力。
結(jié)合非破壞性編輯使用GPU,如本發(fā)明實(shí)施例所構(gòu)想的,使得圖像處理的性能比傳統(tǒng)的基于CPU的平化模型高得多——往往高幾個(gè)數(shù)量級(jí)。實(shí)際上,考慮到 GPU相對(duì)較小的存儲(chǔ)器占用(平化是高度存儲(chǔ)器密集的)以及將圖像數(shù)據(jù)從GPU 讀取到CPU存儲(chǔ)器可用的帶寬有限這一前提,平化模型不適合GPU。
結(jié)合GPU的非破壞性編輯允許僅將應(yīng)請(qǐng)求繪制所需要的位加載到GPU中。 因此,避免了需要確保所有原始像素對(duì)于每次編輯均需要在全分辨率下被處理的需 要。
根據(jù)本發(fā)明實(shí)施例的方法和系統(tǒng)將GPU加速能力集成到CPU數(shù)字圖像處理 模型中。即,GPU被集成到數(shù)字圖像處理模型架構(gòu)中,這與純粹作為特別特征等 外圍地提供形成對(duì)比。以這種方式,CPU和GPU處理被統(tǒng)一,以便在數(shù)字圖像處 理中工作的用戶(例如,程序員或開(kāi)發(fā)員)能夠以目標(biāo)設(shè)備來(lái)相互可交換地使用這 兩種模態(tài)的效力或能力,而不必例如單獨(dú)選擇CPU處理或GPU處理。
應(yīng)當(dāng)注意的是,雖然被集成到系統(tǒng)架構(gòu)中,但是GPU的使用作為可任選組件 提供。因此,如果繪制設(shè)備包括有能力的視頻卡,則系統(tǒng)可以根據(jù)需要或希望來(lái)調(diào) 用它的加速功能。然而,如果系統(tǒng)不包括有能力的視頻卡,則它仍然可被用于數(shù)字 圖像處理。
本發(fā)明的方法和系統(tǒng)提供利用GPU、 CPU、或這兩者的某種組合來(lái)創(chuàng)建效果 圖并將其串起的功能集。根據(jù)本發(fā)明實(shí)施例的該數(shù)字圖像處理模型架構(gòu)由在此稱為效果的元素構(gòu)成。效果,作為這里使用的術(shù)語(yǔ),是一基本的圖像處理類。即,效果 基本上是像素算子。它們?nèi)∪刖彌_和像素?cái)?shù)據(jù),操縱數(shù)據(jù),并輸出經(jīng)修改的像素。 例如,銳化效果取入圖像像素,銳化像素邊緣,并輸出比所取入的圖像像素更銳化 的圖像。在另一個(gè)例子中,曝光效果取入圖像像素?cái)?shù)據(jù),調(diào)整像素的色平衡,并輸 出從所取入的修改了的色平衡的圖像。因此效果的主要功能是處理像素。
不同的效果,例如,蒙蔽,混合,旋轉(zhuǎn)等,可以被定義來(lái)實(shí)現(xiàn)各種不同的圖 像處理算法。如以下更加充分地描述的,允許用戶將預(yù)定義的效果串起以實(shí)現(xiàn)想要 的結(jié)果。如果想要的話,用戶也可以定義新的效果來(lái)實(shí)現(xiàn)感興趣的圖像處理算法。 效果能處理任意數(shù)目的輸入圖像并產(chǎn)生任意數(shù)目的輸出圖像。輸入和輸出的數(shù)目在構(gòu)造的時(shí)間就被確定了,并且不重新創(chuàng)建該效果就不能被更改。每個(gè)輸入或輸出的 意義由效果本身定義。大部分情況下,意義是依賴于次序的。
僅作為例子,圖2示出了具有三個(gè)輸入和兩個(gè)輸出的混合效果的示意圖。這 種特定的混合效果混合其首兩個(gè)輸入(輸入0和輸入1),用向其第三輸入(輸入 2)供應(yīng)的遮罩來(lái)調(diào)制。在這個(gè)例子中,第一輸出(輸出0)產(chǎn)生彩色圖像,而第 二輸出(輸出1)產(chǎn)生灰色色調(diào)的圖像。許多效果僅產(chǎn)生一個(gè)輸出。
在某種程度上,效果起到類似集成電路的作用,因?yàn)橛脩舯仨毾攘私饷總€(gè)效 果要做什么才能把它們串在一起。像集成電路,串在一起的效果的集合能夠?qū)崿F(xiàn)超 過(guò)各部分的總和的復(fù)合結(jié)果。
當(dāng)效果被串在一起,它們形成效果圖。效果圖,像這里用到的術(shù)語(yǔ),是一種有向無(wú)環(huán)圖(DAG)。它是"有向的"因?yàn)樗械倪B接暗示著數(shù)據(jù)流的方向(從 一個(gè)效果的輸出到下一個(gè)的輸入)。它是"無(wú)環(huán)的"因?yàn)椴辉试S循環(huán),即,貫穿圖 中沒(méi)有任何路徑使一效果的輸出返回作為它的一個(gè)輸入。它是"圖"而不是"樹(shù)" 因?yàn)樾Ч妮敵瞿軌蝠佒炼鄠€(gè)效果的輸入。效果圖將多個(gè)效果連接到一起來(lái)實(shí)現(xiàn)從 多個(gè)較簡(jiǎn)單的構(gòu)件塊構(gòu)建起的復(fù)合輸出。
參照?qǐng)D3,示出了一示例性的效果圖300的示意圖,其按遮罩的指示選擇性地 模糊輸入圖像的若干區(qū)域。注意,圖像效果對(duì)象310是如何向模糊效果對(duì)象312 和混合效果對(duì)象314兩者供應(yīng)圖像數(shù)據(jù)的。這在樹(shù)結(jié)構(gòu)中是不可能的。另外,在效 果圖300中不存在循環(huán)。g卩,例如混合效果對(duì)象314的輸出不是其他效果對(duì)象(圖 像效果對(duì)象310,模糊效果對(duì)象314,或遮罩效果對(duì)象316)的輸入。當(dāng)效果圖被 繪制和/或被改變時(shí),本發(fā)明的模型自動(dòng)地檢測(cè)循環(huán)以防止無(wú)限循環(huán)。
當(dāng)一效果被調(diào)用來(lái)進(jìn)行繪制時(shí),某些有意思的事情發(fā)生在每個(gè)效果上。第一, 每個(gè)效果利用現(xiàn)有的高速緩存的緩沖來(lái)確定請(qǐng)求是否能被滿足。雖然下面將會(huì)討論 高速緩存策略,但是目前構(gòu)想如果該工作的輸出已存在于適合的高速緩存中則不需 要做任何工作就足夠了。如果該請(qǐng)求能被現(xiàn)有的高速緩存的緩沖部分地(這經(jīng)常會(huì) 發(fā)生,例如,當(dāng)用戶掃視整個(gè)圖像或重新設(shè)置窗口的大小時(shí)),則重疊的像素被從 高速緩存拷貝到新的圖像緩沖中,接著其余的像素被繪制并拷貝到新緩沖的合適部 分中。
效果可利用兩種不同的方法來(lái)繪制 一種是操作CPU (軟件繪制)的必要繪 制方法, 一種是操作GPU (硬件繪制)的可任選繪制方法,每個(gè)效果確定其應(yīng)以 在硬件(GPU)還是軟件(CPU)中來(lái)繪制。這種選擇可以由用戶來(lái)委任(存在與
每個(gè)效果相關(guān)聯(lián)的唯僅軟件繪制超馳),由應(yīng)用程序委任,和/或由當(dāng)前上下文(上 下文中的唯軟件繪制超馳允許客戶或圖中較高位的效果強(qiáng)制子圖的軟件繪制)。如 果沒(méi)有委任軟件超馳,則基類將會(huì)試圖在硬件中繪制效果并且,如果可能,包含被 請(qǐng)求的結(jié)果的圖像緩沖將被返回。如果效果不能在硬件中繪制,則將發(fā)生軟件繪制。
注意,也存在會(huì)影響繪制方法被調(diào)用的動(dòng)態(tài)條件。例如,效果可能調(diào)用硬件 繪制,但是捕捉到內(nèi)存不足的異常,嘗試分配的臨時(shí)緩沖超過(guò)了視頻卡的可用存儲(chǔ) 空間。默認(rèn)響應(yīng)是讓該效果調(diào)用軟件繪制(CPU)來(lái)得到其所需要的結(jié)果。g卩,該 模型在用盡GPU存儲(chǔ)空間的情況下能退讓到CPU。以這種方式,可以基于資源可 用性來(lái)使性能最優(yōu)化。
圖像緩沖呈現(xiàn)儲(chǔ)存在系統(tǒng)存儲(chǔ)器(CPU存儲(chǔ)器)、視頻存儲(chǔ)器(GPU存儲(chǔ)器)、
或其兩者中的圖像(像素),并貫穿效果圖從一個(gè)效果傳到另一個(gè)。數(shù)據(jù)的實(shí)際位 置對(duì)用戶來(lái)說(shuō)一般不重要,因?yàn)橛脩艨梢院?jiǎn)單地在她/他想要處理數(shù)據(jù)的位置上請(qǐng) 求想要處理的數(shù)據(jù),并且如有需要,圖像緩沖將自動(dòng)地把數(shù)據(jù)拷貝到那個(gè)位置。艮p, 圖像緩沖隱藏了像素?cái)?shù)據(jù)被存儲(chǔ)在何處的詳情,并自動(dòng)地將其在合適的位置上以供 效果使用。
圖像緩沖是被效果用來(lái)讀和寫(xiě)圖像數(shù)據(jù)的主類。圖像緩沖的最大空間與用戶 可能想要繪制的圖像的尺寸相比一般非常小。例如,在一個(gè)實(shí)施例中,在任一維度
上,由硬件限制規(guī)定的最大寬度或高度不可以超過(guò)2K像素。 一特定的效果圖甚至 在一通中不能繪制2K個(gè)像素。最大尺寸取決于圖中所包含的特定效果。例如,大 半徑的模糊效果必須讀取的像素要比其寫(xiě)入的像素多得多,因此它能產(chǎn)生的最大的 緩沖空間減少了其過(guò)采樣其輸入的量。
當(dāng)提出繪制請(qǐng)求時(shí)用戶不能容易地預(yù)見(jiàn)這些限制。由此,用戶僅僅請(qǐng)求他們 所需要的。然而,有可能被返回的緩沖與原來(lái)請(qǐng)求的相比大小不同。
圖像緩沖的一個(gè)實(shí)例保持被分配的且不能被回收的存儲(chǔ)空間。圖像緩沖適用 于保持正被一效果活動(dòng)地讀取或?qū)懭氲膱D像數(shù)據(jù)。
有時(shí),效果可能想要高速緩存各通繪制之間圖像數(shù)據(jù)。然而,此數(shù)據(jù)如果是 被保持在圖像緩沖中則不能被回收。如果當(dāng)效果圖的其余部分被繪制時(shí)視頻存儲(chǔ)器 短缺,則引擎必須返回到軟件繪制,除非它能回收足夠的資源。
圖像高速緩存對(duì)象是高速緩存圖像數(shù)據(jù)的替換途徑。該圖像高速緩存對(duì)象允 許效果保持對(duì)它在隨后的繪制期間想要再次使用的圖像數(shù)據(jù)的引用,但是它在不得 己的情況下也可重新生成此圖像數(shù)據(jù)。通過(guò)保持圖像緩沖器對(duì)象并釋放圖像緩沖對(duì)象,效果允許內(nèi)存在視頻存儲(chǔ)空間緊張的情況下被回收。目的是為了允許其他效果 能使用硬件(GPU)加速,而不是在低存儲(chǔ)空間的情景中返回到軟件(CPU)繪制。 用戶從任何她/他想在稍后讀取的圖像緩沖獲得圖像高速緩存實(shí)例。隨后,圖像緩 沖可以被釋放,同時(shí)圖像高速緩存繼續(xù)被保持。這保持了對(duì)圖像數(shù)據(jù)的引用并且允 許在必要情況下回收其內(nèi)容。
將效果組織成圖,與樹(shù)相比而言,在繪制期間帶來(lái)了一些挑戰(zhàn)。例如,構(gòu)想
諸如圖4的示意圖中示出的效果圖。在所示的效果圖400中,存在四種讓圖像數(shù)據(jù) 從底部圖像效果對(duì)象410流到頂部混合效果對(duì)象即混合效果B 418的輸出的途徑。 第一,圖像數(shù)據(jù)可以從圖像效果對(duì)象410流到混合效果對(duì)象A414,到混合效果對(duì) 象B418。第二,圖像數(shù)據(jù)可以從圖像效果對(duì)象410流到水平效果對(duì)象412,到混 合效果對(duì)象A414,到混合效果對(duì)象B418。第三,圖像數(shù)據(jù)可以從圖像效果對(duì)象 410流到水平效果對(duì)象412,到混合效果對(duì)象A414,到模糊效果對(duì)象416,到混合 效果對(duì)象B418。第四,圖像數(shù)據(jù)可以從圖像效果對(duì)象416流到混合效果對(duì)象A414, 到模糊效果對(duì)象416,到混合效果對(duì)象B418。
雖然貫穿效果圖的四條通路看起來(lái)并不是不可管理的,但是其組合的可能性 是指數(shù)式的。如果將再多幾個(gè)效果與附加的混合效果耦合,則貫穿該圖唯一性路徑 的數(shù)目會(huì)增加到數(shù)百或數(shù)千。樸素的繪制模型必須在圖的底部附近多次繪制效果, 每次產(chǎn)生相同的輸出。這種指數(shù)式增長(zhǎng)和相同效果的重復(fù)繪制導(dǎo)致效率極其低下并 且速度很慢的數(shù)字圖像處理。
本發(fā)明實(shí)施例的模型通過(guò)在每個(gè)效果處包括一自動(dòng)緩沖高速緩存來(lái)一定程度 地——即便不是全部——減輕這種過(guò)度的繪制。例如,如果圖4的效果圖中的混合 效果對(duì)象A 414保持一高速緩存,則它可以簡(jiǎn)單地在隨后每一次被要求繪制時(shí)返回 此高速緩存,而不是對(duì)水平效果412和圖像效果410多作出兩次請(qǐng)求來(lái)繪制其輸入。 在這個(gè)例子中,圖像效果對(duì)象410僅被請(qǐng)求輸出兩次,而不是四次。
更特別的是,為了利用效果圖從原始圖像得到最終輸出,沿著路徑的每個(gè)效 果必須被詢問(wèn)其輸出。然而,效果在其輸入緩沖被繪制之前不能繪制其輸出。由此, 在被請(qǐng)求輸出之際,每個(gè)效果詢問(wèn)它的輸入(即,詢問(wèn)它的輸入效果的圖像緩沖以 便它能對(duì)其進(jìn)行操作)。然而,效果的輸入在它們各自的輸入緩沖被繪制之前不能 繪制它們的輸出,并且因此必須詢問(wèn)它自己的輸入。這種詢問(wèn)過(guò)程從效果圖的頂部 (這里最終的輸出被繪制) 一直繼續(xù)到輸入(例如,原始圖像、JPEG等)被繪制 的底部。另外,此過(guò)程必須通過(guò)一次走貫穿效果曲線的一條可能的路徑來(lái)完成每個(gè)詢問(wèn)。例如,在如上所述的利用圖4的效果圖的例子中,雖然混合效果對(duì)象B418
僅具有兩個(gè)輸入,但是那些輸入中的每一個(gè)必須沿著兩條不同的路徑詢問(wèn)其輸入才 能繪制其輸出。每個(gè)效果為每一條可能的路徑產(chǎn)生一個(gè)圖像緩沖并為最終的效果
(在這個(gè)例子中,是混合效果對(duì)象B418)提供輸出最終輸出所需的輸入之一。
然而,當(dāng)高速緩存被效果圖內(nèi)的中間效果(例如,水平效果對(duì)象412、混合效 果對(duì)象A414、以及模糊效果對(duì)象416)利用時(shí),每個(gè)中間效果可保持或高速緩存 在效果圖最近之前被繪制的時(shí)間期間計(jì)算出的詢問(wèn)結(jié)果。以這種方式,當(dāng)詢問(wèn)在效 果圖的頂部被發(fā)起時(shí), 一旦到達(dá)正被檢測(cè)的兩條路徑之間的共同的中間效果,就不 必一直往回詢問(wèn)到效果圖的底部。即,詢問(wèn)僅需要返回到被檢査的路徑之間的共同 的第一效果。定位到效果圖的兩條路徑之間的這一共同的效果并在這一點(diǎn)處高速緩 存或保持信息減輕了如上所述的可能為指數(shù)式的計(jì)算量。
為了確定高速緩存在貫穿效果圖的初始通期間應(yīng)保持哪些效果(并且為防止 在不會(huì)再被詢問(wèn)的效果處的不必要的高速緩存),在繪制開(kāi)始之前執(zhí)行圖的一通預(yù) 繪制。該通預(yù)繪制在對(duì)像素執(zhí)行任何實(shí)際的計(jì)算之前標(biāo)識(shí)出在繪制期間效果圖的什 么區(qū)域?qū)⒁辉儐?wèn)并標(biāo)識(shí)出那個(gè)區(qū)域中將要被請(qǐng)求多次的那些部分,以及可預(yù)期的 詢問(wèn)實(shí)例的數(shù)量。接著,在繪制之際,被標(biāo)識(shí)為請(qǐng)求多次詢問(wèn)的任何效果可以在相 關(guān)聯(lián)的圖像緩沖中高速緩存被詢問(wèn)的信息,直到它己經(jīng)調(diào)用最大次數(shù)。此時(shí),圖像 緩沖可以被釋放,因?yàn)榘谄渲械男畔⒉粫?huì)被再次請(qǐng)求。
在圖4所示的例子中,混合效果對(duì)象414被詢問(wèn)具有兩個(gè)不同大小的圖像緩 沖,因?yàn)榛旌闲Ч麑?duì)象416讀取的像素比它寫(xiě)入的更多。這種情形中,幸運(yùn)的是較 大的那個(gè)圖像緩沖首先被請(qǐng)求,并且第二次請(qǐng)求可被滿足而沒(méi)有進(jìn)一步的繪制。然 而,如果較大的圖像緩沖請(qǐng)求在較小的圖像緩沖請(qǐng)求之后才到來(lái),則該請(qǐng)求將不會(huì) 這么輕易地實(shí)現(xiàn)。
為了避免當(dāng)?shù)絹?lái)的繪制請(qǐng)求大小遞增時(shí)不恰當(dāng)?shù)膱?zhí)行,本發(fā)明的模型提供一 通預(yù)繪制的執(zhí)行。預(yù)繪制通以上已關(guān)于標(biāo)識(shí)出效果圖中將受到對(duì)相同信息多次詢問(wèn) 的部分來(lái)討論。在預(yù)繪制通期間,每個(gè)效果還累積包含相似繪制請(qǐng)求的外接矩形。 因此,在隨后的繪制期間,效果可以產(chǎn)生比當(dāng)前請(qǐng)求所必須的要大的輸出緩沖,這 是出于使用同一高速緩存來(lái)無(wú)額外成本地滿足此后的請(qǐng)求的預(yù)期。
這些圖像高速緩存避免了一個(gè)問(wèn)題,但是引起了另一個(gè)問(wèn)題,因?yàn)榇罅恳曨l 存儲(chǔ)空間開(kāi)始被保留來(lái)保持高速緩存緩沖,其中的一些可能從來(lái)不會(huì)再次被使用。 簡(jiǎn)單的解決辦法是每當(dāng)作出將導(dǎo)致存儲(chǔ)空間不足的異常被返回的分配高速緩存緩沖的嘗試時(shí)就在最近使用時(shí)間最遠(yuǎn)的基礎(chǔ)上回收高速緩存緩沖。但是這意味著視頻 存儲(chǔ)器頻繁地在全容量下被運(yùn)行(這對(duì)于該視頻存儲(chǔ)器的任何其他任何用戶而言都 是不合乎需要的),并且這將在幾乎每次分配上都招致異常處理的開(kāi)支。
參照?qǐng)D5,示出了為每個(gè)效果顯示計(jì)數(shù)的效果圖的示意圖,并且將其總地標(biāo)為 500。每個(gè)效果具有一個(gè)與其輸出中的每一個(gè)相關(guān)聯(lián)的計(jì)數(shù)器,其計(jì)數(shù)有多少個(gè)連 接器被連接到該輸出。每一次利用效果的輸出緩沖來(lái)完成該效果時(shí),它將調(diào)用對(duì)應(yīng) 的輸入效果來(lái)釋放輸出緩沖,并且對(duì)應(yīng)于該輸出的計(jì)數(shù)器被遞減。當(dāng)它到達(dá)零時(shí), 該效果假定在當(dāng)前一通繪制期間將不會(huì)再接收到對(duì)該請(qǐng)求緩沖的其他請(qǐng)求,所以效 果釋放它的輸出高速緩存。圖像緩沖僅在單通繪制期間被保持,因?yàn)楸3秩魏味嘤?br>
必要的信息都是不合需要的,這是因?yàn)橐曨l卡(GPU)存儲(chǔ)空間有限。
甚至當(dāng)效果具有高速緩存時(shí),它也仍必須告訴其輸入效果釋放它們的輸出緩 沖高速緩存,盡管它需要它們并不是為了進(jìn)行繪制。這是確保效果計(jì)數(shù)器被正確地 調(diào)整所必須的(并且因此,高速緩存被正確地釋放)。
在完成繪制之后,頂部效果是圖中唯一保持高速緩存的。實(shí)際上,正如下面 將更全面地討論的,存在用戶可能想要保持其他高速緩存來(lái)加速交互式的繪制的其 他原因。這里提供本示例僅為示出高速緩存是如何被用于防止指數(shù)式繪制。
為了加速交互式繪制,為效果圖中在各通繪制之間不會(huì)變換的一些部分保持 高速緩存是有用的。用戶構(gòu)建項(xiàng)目的一般方式是一次一層或一個(gè)效果(層將在下面 更全面地討論)。例如,用戶將會(huì)添加效果來(lái)調(diào)整圖像的曝光并且接著添加另一個(gè) 效果來(lái)調(diào)整圖像的溫度,以及接著添加第三種效果來(lái)銳化圖像。由于這種一步接一 步的效果添加,用戶一般一次僅調(diào)整最近添加的效果,例如,用戶將在添加溫度效 果之前完成整個(gè)曝光調(diào)整。然而, 一次以上的曝光調(diào)整可能是有必要的,每次調(diào)整 需要一通繪制。
為了適應(yīng)這種典型的項(xiàng)目情景并避免不必要地繪制效果圖中自前通繪制以來(lái) 沒(méi)有變化的那些部分,效果基類包括一"臟標(biāo)志",該標(biāo)志在效果自上一通繪制以 來(lái)有變化時(shí)才被設(shè)置。在預(yù)繪制圖遍歷(預(yù)繪制通)期間,臟值被向上傳播貫穿效 果圖,從而在臟的效果和圖的根之間的任何路徑上設(shè)置高速緩存。
臟值被用來(lái)為圖中不在變化的部分保持高速緩存。假定任何臟的效果在下一 通繪制中也很可能是臟的。這是當(dāng)用戶調(diào)整參數(shù)值或要不然一次修改一個(gè)效果時(shí)的 情形。
例如,假設(shè)用戶在圖6的示意圖中所示的效果圖中與模糊效果相關(guān)聯(lián)的遮罩上畫(huà)圖。在預(yù)繪制通期間,頂部的混合效果,即混合效果B618偵測(cè)到它具有兩個(gè)不是臟的輸入效果(混合效果A614和模糊效果616)以及臟的第三輸入效果(遮 罩效果620)。無(wú)論何時(shí)效果檢測(cè)到其各輸入之間有這種臟值差異,它都假定遮罩 效果620是將要在下一通繪制上被修改的唯一輸入,并且指令非臟的輸入效果保持 它們的高速緩存。在所示的情形中,混合效果B618將指令模糊效果616和混合效 果A614保持到它們的高速緩存并將指令遮罩效果620釋放它的高速緩存。(注意, 圖像效果610和水平效果612在下一通繪制上將不會(huì)被詢問(wèn),因?yàn)樗鼈優(yōu)榛旌闲Ч?A614提供輸入。)這種可選的高速緩存可以被稱為"交叉繪制高速緩存",并且 在加速的交互式繪制意義上的性能提高是顯著的,因?yàn)閮H有混合效果B 618和遮罩 效果620需要為每一通繪制做實(shí)際的工作。
如前面所提到的,考慮到大多數(shù)用戶一次一層或一個(gè)效果地構(gòu)建他們的項(xiàng)目, 并且他們通常調(diào)整他們添加的最后一層或最后一個(gè)效果一一其一般在效果圖的頂 部,交叉繪制高速緩存的益處是特別有意義的。在本發(fā)明實(shí)施例的動(dòng)態(tài)繪制模型中, 用戶能自由地在任何時(shí)候改變?nèi)魏螌踊蛐Ч?。在采用交叉繪制高速緩存的情況下, 效果圖頂部附近的調(diào)整將快于底部附近的調(diào)整。
注意,在采用交叉繪制高速緩存的情況下,高速緩存被跨特定數(shù)字圖像數(shù)據(jù) (即,單個(gè)圖像)的各繪制操作地保持,而不是像關(guān)于為避免處理操作的指數(shù)增長(zhǎng) 而高速緩存的情形中那樣僅在單通繪制期間被保持。
效果圖中"層"的概念已經(jīng)在這里提到過(guò)多次。在本發(fā)明實(shí)施例的效果圖模 型中,效果是"原子的"圖像處理元素。層以針對(duì)感興趣的情景的有用方式來(lái)組合 效果。層構(gòu)造效果圖,但不是直接地包含在處理或繪制它們的過(guò)程中。
為了理解為什么層是有用的,考慮一種調(diào)整層模型。構(gòu)想了各種不同類型的 調(diào)整被支持,但是它們?nèi)慷贾С终谡趾突旌夏P?。這是通過(guò)將遮罩和混合功能集 分離成單獨(dú)的效果、并接著將多個(gè)簡(jiǎn)單效果串在一起以實(shí)現(xiàn)想要實(shí)現(xiàn)的復(fù)合結(jié)果來(lái) 完成的。然而,當(dāng)存在重復(fù)的編輯單元時(shí),用戶不得不一遍又一遍地將相同的效果 串在一起,并且很難發(fā)展局部化的智能來(lái)對(duì)圖進(jìn)行優(yōu)化。例如,如果遮罩是空的則 遮罩效果可以被忽略,并且如果這里不存在混合模式也不存在遮罩則可以忽略混合 效果。
可以認(rèn)為層是簡(jiǎn)化標(biāo)準(zhǔn)圖像編輯管線的創(chuàng)建的智能宏。事實(shí)上,管線的概念 是由層引入的。 一層取單個(gè)圖像輸入并產(chǎn)生單個(gè)輸出。當(dāng)然,層內(nèi)的效果能被組織 成任意復(fù)合的子圖。
層取任何效果并為由可選遮罩控制的任意的混合模式提供支持。在一個(gè)例子 中,這看起來(lái)像圖7中所示的示意圖,層一般被概括地標(biāo)示為附圖標(biāo)記700。每個(gè) 層擁有其自己的效果并動(dòng)態(tài)地(即,在運(yùn)行時(shí))將它們串在一起以創(chuàng)建其在效果圖
中的部分。它能向圖提供智能的動(dòng)態(tài)優(yōu)化。例如,由于層在其效果變化時(shí)接收到事 件,因此如果它注意到混合效果710的混合參數(shù)已經(jīng)改變?yōu)槠渥钚≈?,那么它?huì)將
混合效果和遮罩效果712自它構(gòu)建的效果圖中排除。
圖7的效果圖示出了混合效果710、遮罩效果712、以及主效果714能夠被串
在一起的最常用的方法。然而,層支持這三個(gè)效果間更復(fù)雜的關(guān)系。在一些情形中, 遮罩效果可以基于層的輸入圖像自動(dòng)地生成遮罩?jǐn)?shù)據(jù)。該主效果可以依賴于也可以
不依賴于輸入圖像數(shù)據(jù)。在一些情形中,該主效果需要訪問(wèn)遮罩?jǐn)?shù)據(jù)。
全連通的層可如圖8的示意圖中所示。當(dāng)然,層可以比圖8中所示的更復(fù)雜。 層能夠取代附圖中示出的任何效果,其中多個(gè)效果被任意地串起。
一種輸出單通道圖像緩沖的效果能夠起到遮罩效果的作用。遮罩可以是基于 恒定像素的遮罩(即,單通道圖像效果)或基于恒定矢量的遮罩(即,將基于矢量 的數(shù)據(jù)光柵化成單通道輸出緩沖的遮罩)。另外,在一些情況下,可以從輸入數(shù)據(jù) 動(dòng)態(tài)地生成遮罩。通常,這是由用戶動(dòng)態(tài)選擇滿足一些準(zhǔn)則——例如,特殊的顏色 范圍——的像素來(lái)實(shí)現(xiàn)的。
例如,參照?qǐng)D8的遮罩效果,假設(shè)用戶想要使得自管線而上的特定圖像中的 陰影亮化。因此,她/他向效果圖添加曝光層并在該層上放置遮罩,以便遮罩僅位 于圖像的陰影區(qū)域。通常,遮罩是基于像素選擇被畫(huà)上或貼入的,并且因此它們是 靜態(tài)的。然而,根據(jù)本發(fā)明的實(shí)施例,通過(guò)包括允許用戶例如選擇天空來(lái)進(jìn)行暗化 等的指令,就可使像素?cái)?shù)據(jù)和遮罩成為動(dòng)態(tài)的。這是通過(guò)用戶動(dòng)態(tài)選擇滿足天空的 特定顏色范圍的準(zhǔn)則的像素來(lái)實(shí)現(xiàn)的。隨后,無(wú)論何時(shí)改變管線(例如,通過(guò)添 加旋轉(zhuǎn)層),遮罩都被自動(dòng)地重新計(jì)算而不是不得不由用戶重新畫(huà)上。
在自動(dòng)校正的情況下,例如動(dòng)態(tài)遮罩可在GPU中進(jìn)行,這是非常強(qiáng)制性的情 景,因?yàn)檎谡謱⒃谂c輸入圖像相同的分辨率下生成。與恒定的遮罩不同,矢量的光 柵化或圖像采樣的內(nèi)插是不需要的。
動(dòng)態(tài)遮罩的主要優(yōu)勢(shì)之一在于動(dòng)態(tài)遮罩允許用戶對(duì)管線進(jìn)行改變并且使得遮 罩在適合的場(chǎng)合自適應(yīng)于那些變化。紅眼就是一個(gè)例子。紅眼可以通過(guò)利用遮罩在 降低飽和度效果層上定位到瞳孔以降低瞳孔區(qū)域飽和度來(lái)校正。如果底下的圖像被 移動(dòng)的話(例如被平移、旋轉(zhuǎn)或比例縮放),則靜態(tài)地設(shè)置遮罩(算法地利用對(duì)紅色像素的選擇或手動(dòng)進(jìn)行)會(huì)失敗。然而動(dòng)態(tài)遮罩可以在圖像中重新檢測(cè)到紅色瞳 孔所在的位置并重新設(shè)置遮罩。
層類預(yù)期混合效果具有三個(gè)輸入(兩個(gè)要混合的圖像加上一個(gè)遮罩)。每個(gè) 混合算法由一單獨(dú)的效果子類表示。 一般會(huì)有足夠共同代碼來(lái)保證共同的基類。當(dāng) 用戶改變層的混合模式時(shí),先前的混合效果便被丟棄,并且新的混合效果在效果圖 重建時(shí)取代其位置。
如果沒(méi)有遮罩效果被連接到混合效果,就不需要混合效果(該層的輸出僅僅 是主效果的輸出);即假設(shè)完全不透明的遮罩。
"單輸入單輸出"層模式顯著地簡(jiǎn)化了構(gòu)建效果圖的過(guò)程。層另外的優(yōu)點(diǎn)在 用戶想要保存他們已經(jīng)創(chuàng)建的管線的配置時(shí)體現(xiàn)出來(lái)。在采用效果圖的情況下,保 存實(shí)際上是一項(xiàng)難以完成的任務(wù)。每個(gè)效果將不得不被要求自我串行化(即,保存 其設(shè)置等),并且,利用該信息,效果圖將不得不被繕寫(xiě)為例如XML。層模型使 得這更簡(jiǎn)化,因?yàn)槔L制引擎自己知道圖包含多個(gè)層并且能夠描述它們中的每一個(gè)。 層接著被請(qǐng)求來(lái)描繪它們自己。因?yàn)槊恳粚泳哂衅涓髯詢?nèi)部構(gòu)建的圖,所以信息不 需要被存儲(chǔ)。
層串行化超越效果串行化的另外一個(gè)優(yōu)點(diǎn)是層在樹(shù)中而效果在可能為(并且 通常是)DAG的圖中??梢詧?zhí)行樹(shù)的貪婪法深度優(yōu)先遞歸串行化(例如,在每一 個(gè)節(jié)點(diǎn)處,效果能詢問(wèn)其子節(jié)點(diǎn)要它們描述自己并接著描述它自己)。在DAG中, 這是指數(shù)式運(yùn)行的,出于與以上有關(guān)高速緩存討論的所有原因相同的原因,要防止 繪制在效果DAG中呈指數(shù)式增長(zhǎng)。由此,在記錄層的層面上解決此問(wèn)題要比在效 果層面上解決要清楚得多。
在根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)數(shù)字處理圖像模型中,在品質(zhì)和執(zhí)行兩者的意 義上而言,何處以及何時(shí)變換數(shù)據(jù)是相當(dāng)重要的。為了理解品質(zhì)所關(guān)心的,假設(shè)用 戶希望利用常規(guī)的圖像處理模型來(lái)旋轉(zhuǎn)圖像。 一旦它確定圖像位于想要的取向,繪 制引擎就必須在新旋轉(zhuǎn)到的值上重新采樣該圖像并從該數(shù)據(jù)產(chǎn)生新的一組像素。如 果用戶接著再次旋轉(zhuǎn)該圖像,則常規(guī)的繪制引擎不會(huì)記住在前次旋轉(zhuǎn)之前圖像是從 什么位置開(kāi)始的。由此,它僅僅是再次旋轉(zhuǎn)圖像(不知道它之前已經(jīng)被旋轉(zhuǎn)過(guò)), 并且在完成之際,重新采樣該圖像并生成新的圖像。隨著更多次的旋轉(zhuǎn)校正被執(zhí)行, 這種處理能夠繼續(xù)進(jìn)行,每一次數(shù)據(jù)都被重新采樣并且新圖像被創(chuàng)建。這種方法的 挑戰(zhàn)在于每一次它重新采樣時(shí),數(shù)據(jù)將會(huì)退化。
然而,在根據(jù)本發(fā)明實(shí)施例的動(dòng)態(tài)數(shù)字處理圖像模型中,所有調(diào)整都是動(dòng)態(tài)的。因此,當(dāng)用戶旋轉(zhuǎn)圖像時(shí),繪制引擎記下它已經(jīng)被旋轉(zhuǎn)的累積量。即,每一次 它被請(qǐng)求作旋轉(zhuǎn)修改時(shí),它就返回到原是數(shù)據(jù)并應(yīng)用旋轉(zhuǎn)。因此,當(dāng)圖像在旋轉(zhuǎn)修 改之后被重新生成時(shí),僅從原始圖像數(shù)據(jù)對(duì)其重新采樣一次。這顯著地減少了圖像 必須忍受的退化量。
此外,此行為可以被保留,即便是當(dāng)每一次添加一些旋轉(zhuǎn)時(shí)在項(xiàng)目的不同層 面上存在不同的變換。貫穿整個(gè)效果圖的所有變換的累積產(chǎn)物被合計(jì)并且僅應(yīng)用一 次。這種應(yīng)用程序一般在管線的底層附近執(zhí)行,因?yàn)樵诶L制引擎中有一種累積所有 變換并將它們盡可能在管線中下推的機(jī)制。通過(guò)這種方式,變換的執(zhí)行不超過(guò)必要 的次數(shù),并且只對(duì)產(chǎn)生準(zhǔn)確繪制所需的最小數(shù)目的像素執(zhí)行變換。
應(yīng)當(dāng)注意的是,存在幾種會(huì)阻止變換被推進(jìn)貫穿效果圖的事物。例如,可能 會(huì)遇到一不了解如何對(duì)已經(jīng)變換過(guò)的像素進(jìn)行操作的效果,因此該特定效果必須在 未經(jīng)變換的圖像上操作,該變換僅在該效果被應(yīng)用之后才被應(yīng)用。
為了適應(yīng)如此的情況,如下面更全面描述地,預(yù)繪制通期間,每個(gè)效果通知 引擎其可處理什么種類的變換以及不能處理什么種類的變換。
像之前所述的,變換何時(shí)發(fā)生從執(zhí)行角度來(lái)看也是很重要。在效果圖管線中, 處理盡可能少的數(shù)據(jù)是最高效率的。假設(shè)用戶已經(jīng)加載了非常大的圖像(例如,十億像素)并且想要開(kāi)始編輯該圖像。不是在該圖像的分辨率下操作(例如,不是對(duì) 十億像素進(jìn)行操作),本發(fā)明實(shí)施例的動(dòng)態(tài)繪制模型代之以在用戶實(shí)際瀏覽的分辨 率下,例如,在顯示設(shè)備用于輸出該圖像的大約兩百萬(wàn)像素下進(jìn)行操作。在管線中 盡可能早的時(shí)刻就迫使圖像分辨率下降以便處理該圖像的每個(gè)效果在此之后能處 理減小了相當(dāng)程度的數(shù)據(jù)的分辨率是合乎需要的。由此,效果能夠以快得多的速度 并使用顯著較少的GPU或CPU圖像存儲(chǔ)空間來(lái)對(duì)圖像進(jìn)行操作。應(yīng)當(dāng)注意的是, 對(duì)數(shù)據(jù)應(yīng)用了比例因數(shù)來(lái)允許此結(jié)果發(fā)生。然而,就像之前關(guān)于品質(zhì)因素所討論那 樣,可能有不能處理比例縮放的效果,即,不知道如何處理經(jīng)比例縮放的數(shù)據(jù)的效 果。因此,在預(yù)繪制通期間,每個(gè)效果在其不能處理這種類型的變換的情況下將通 知引擎,并且比例縮放在該效果已經(jīng)處理了未經(jīng)比例縮放的數(shù)據(jù)之前不會(huì)發(fā)生。
進(jìn)一步需要注意的是,在管線中盡可能下推變換的效果會(huì)導(dǎo)致在繪制引擎確 定一特定效果實(shí)際上能在效果圖中更下方的另一個(gè)變換位置處被應(yīng)用則其將不在 用戶原指定的位置上發(fā)生。
僅作為例子,想象用戶已經(jīng)用模糊效果(用五個(gè)像素的半徑來(lái)模糊)、接著 是下降采樣或比例縮放效果(以十為因數(shù))產(chǎn)生了一效果圖。用戶將預(yù)期模糊半徑
被應(yīng)用,接著圖像被比例縮放。然而實(shí)際上,因?yàn)橄陆挡蓸拥男Ч且环N變換,因 此如果它能在圖中被下推,則它將先被應(yīng)用于采樣,接著模糊將被應(yīng)用于分辨率較 低的圖像。注意,在此實(shí)例中,模糊效果將不得不被修改到例如1/2像素的模糊以 便使總效果從用戶的(瀏覽)角度上來(lái)看相同。如果模糊效果向繪制引擎生命其不 能處理對(duì)經(jīng)比例縮放的圖像的模糊,則該比例縮放效果將不會(huì)在管線中被下推到其 下方。
現(xiàn)在轉(zhuǎn)到圖9,圖解了示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法900的流程圖。開(kāi)始,如框910所示,接收到多個(gè)效果對(duì)象。效果對(duì)象已在上文中作了詳盡的討論,并且僅作為例子可以包括混合效果對(duì)象、遮罩效 果對(duì)象、模糊效果對(duì)象等。 一旦這多個(gè)效果對(duì)象已經(jīng)被接收到,效果圖便利用這多個(gè)效果對(duì)象中的至少一部分來(lái)穿線成一個(gè)效果圖,如框912所示。效果圖可根據(jù)需 要和/或希望利用CPU存儲(chǔ)器、GPU存儲(chǔ)器、以及CPU存儲(chǔ)器和GPU存儲(chǔ)器的組 合來(lái)繪制。
隨后,如框914所示,接收到要被處理的數(shù)字圖像數(shù)據(jù)。接著利用效果圖來(lái) 處理該數(shù)字圖像數(shù)據(jù),如框916所示。在一個(gè)實(shí)施例中,處理數(shù)字圖像數(shù)據(jù)可以包 括非破壞性地處理所接收的數(shù)字圖像數(shù)據(jù)的至少一部分。下一步,經(jīng)處理的數(shù)字圖 像數(shù)據(jù)可以與至少一個(gè)圖像緩沖相關(guān)聯(lián)地被存儲(chǔ)在CPU存儲(chǔ)器和GPU存儲(chǔ)器中的 至少一個(gè)中。這在框918示出。
應(yīng)當(dāng)注意的是,根據(jù)本發(fā)明實(shí)施例的圖像緩沖能在GPU與CPU之間自動(dòng)傳 遞而不需要用戶的介入。另外,根據(jù)本發(fā)明實(shí)施例的圖像緩沖能在第一像素?cái)?shù)據(jù)格 式與第二像素?cái)?shù)據(jù)格式自動(dòng)地轉(zhuǎn)換而不需要用戶的介入。
參照?qǐng)D10,圖解了示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái) 處理數(shù)字圖像數(shù)據(jù)的方法1000的流程圖,該數(shù)字圖像數(shù)據(jù)是從效果圖的底部向效 果圖的頂部來(lái)處理的。開(kāi)始,如框1010所示,接收到具有位于發(fā)出兩條分歧路徑 的交叉點(diǎn)處的效果對(duì)象的垂直取向的效果圖。隨后或同時(shí)地,接收到要利用效果圖 來(lái)處理的數(shù)字圖像數(shù)據(jù),如框1012所示。接下來(lái),如框1014所示,對(duì)效果圖自底 部向頂部的第一通處理沿著這兩條分歧路徑中的第一條被執(zhí)行。
在處理期間,數(shù)字圖像數(shù)據(jù)的至少一部分被高速緩存到與效果對(duì)象的輸出相 關(guān)聯(lián)的圖像緩沖中。這在框1016示出。隨后,執(zhí)行效果圖的第二通處理,該第二 通自與效果對(duì)象相關(guān)聯(lián)的圖像緩沖延伸,如框1018所示。
參照?qǐng)D11,圖解了示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法1100的流程圖,該數(shù)字圖像數(shù)據(jù)是從效果圖的底部向效 果圖的頂部來(lái)處理的。開(kāi)始,如框1110所示,接收到垂直取向的效果圖。該效果 圖包含至少第一和第二效果對(duì)象。隨后或同時(shí)地,接收到要利用該效果圖來(lái)處理的 數(shù)字圖像數(shù)據(jù),如框1112所示。隨后,對(duì)包括第一和第二效果對(duì)象的效果圖的至
少一部分進(jìn)行第一通處理,如框1114所示。接下來(lái),如框1116所示,數(shù)字圖像數(shù)
據(jù)的至少一部分被高速緩存在與第一效果對(duì)象輸出相關(guān)聯(lián)的圖像緩沖中,如框
1116所示的。
隨后,檢測(cè)到一個(gè)或多個(gè)與第二效果對(duì)象相關(guān)聯(lián)的用戶修改,如框1118所示。 接下來(lái),如框1120所示,執(zhí)行效果圖的第二通處理,第二通處理從與效果對(duì)象的 輸出相關(guān)聯(lián)的圖像緩沖延伸。
現(xiàn)在轉(zhuǎn)到圖12,圖解了示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù) 字圖像數(shù)據(jù)的方法1200的流程圖。開(kāi)始,如框1210所示,接收到效果圖。該效果 圖包括多個(gè)效果對(duì)象,每一個(gè)具有與之相關(guān)聯(lián)的用于存儲(chǔ)數(shù)字圖像數(shù)據(jù)的圖像緩 沖。隨后或同時(shí)地,如框1212所示,接收到要利用該效果圖來(lái)處理的數(shù)字圖像數(shù) 據(jù)。接下來(lái),執(zhí)行效果圖的一通預(yù)繪制,如框1214所示。隨后,利用效果圖處理 數(shù)字圖像數(shù)據(jù),如框1216所示。
參照?qǐng)D13,圖解了示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用效果圖來(lái)處理數(shù)字圖 像數(shù)據(jù)的方法1300的流程圖。開(kāi)始,如框1310所示,接收到效果圖。該效果圖包 括多個(gè)效果對(duì)象,每一個(gè)具有與之相關(guān)聯(lián)的用于存儲(chǔ)數(shù)字圖像數(shù)據(jù)的圖像緩沖。隨 后或同時(shí)地,接收到要利用該效果圖來(lái)處理的數(shù)字圖像數(shù)據(jù),如框1312所示。接 下來(lái),確定與效果圖相關(guān)聯(lián)的GPU中是否有足夠的存儲(chǔ)空間可用來(lái)處理該數(shù)字圖 像數(shù)據(jù)。這在框1314示出。如果與效果圖相關(guān)聯(lián)的GPU中有足夠存儲(chǔ)空間可用來(lái) 處理該數(shù)字圖像數(shù)據(jù),則利用GPU來(lái)處理該數(shù)字圖像數(shù)據(jù),如框1316所示。然而, 如果與效果圖相關(guān)聯(lián)的GPU中沒(méi)有足夠的存儲(chǔ)空間可用來(lái)處理該數(shù)字圖像數(shù)據(jù), 則至少部分地利用與該效果圖相關(guān)聯(lián)的CPU來(lái)處理該數(shù)字圖像數(shù)據(jù)。這在框1318 示出。
現(xiàn)在轉(zhuǎn)到圖14,圖解了根據(jù)本發(fā)明的一個(gè)實(shí)施例的創(chuàng)建用于處理數(shù)字圖像數(shù) 據(jù)的效果圖的方法1400的流程圖。開(kāi)始,如框1410所示,提供了一個(gè)或多個(gè)效果 層,每一效果層具有一個(gè)與之相關(guān)聯(lián)的包括多個(gè)邏輯效果的邏輯效果子圖。隨后, 接收到關(guān)于數(shù)字圖像數(shù)據(jù)的處理的輸入,如框1412所示。僅作為例子,這樣的輸 入可以包括包含在層中的主效果的類型、應(yīng)用于層界面的設(shè)置(例如,不透明度等于100%)、以及其他設(shè)置和屬性。隨后,如框1414所示,在數(shù)字圖像數(shù)據(jù)處理 之際接收到的輸入對(duì)這些邏輯效果中的每一個(gè)的影響被確定。接下來(lái),根據(jù)被確定
的影響來(lái)創(chuàng)建物理效果子圖,如框1416所示。接著利用物理效果子圖來(lái)繪制圖像, 如框1418所示。
參照?qǐng)D15,圖解了根據(jù)本發(fā)明的實(shí)施例的利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的 方法的流程圖。開(kāi)始,如框1510所示,接收到具有至少一個(gè)遮罩效果對(duì)象的效果 圖,該遮罩效果對(duì)象與一效果層相關(guān)聯(lián)。隨后或同時(shí)地,接收到數(shù)字圖像數(shù)據(jù),如 框1512所示。接下來(lái),如框1514所示,有關(guān)對(duì)接收到的數(shù)字圖像數(shù)據(jù)中滿足某種 準(zhǔn)則至少一部分選擇的輸入被接收。隨后,如框1516所示,該至少一個(gè)遮罩效果 對(duì)象被應(yīng)用于所接收到的數(shù)字圖像數(shù)據(jù)。
在一個(gè)實(shí)施例中,權(quán)利要求15的方法可以包括如圖16中所示的進(jìn)一步的處 理步驟。開(kāi)始,如框1610所示,接收到有關(guān)數(shù)字圖像數(shù)據(jù)的修改的輸入。隨后, 根據(jù)接收到的輸入修改數(shù)字圖像數(shù)據(jù)以創(chuàng)建經(jīng)修改的數(shù)字圖像數(shù)據(jù),如框1612所 示。接下來(lái),如框1614所示,該至少一個(gè)遮罩效果對(duì)象被應(yīng)用到該經(jīng)修改的數(shù)字 圖像數(shù)據(jù)并且該至少一個(gè)遮罩效果對(duì)象被自動(dòng)地修改以滿足該準(zhǔn)則。
參照?qǐng)D17,圖解了根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái)處理 數(shù)字圖像數(shù)據(jù)的方法1700流程圖,該數(shù)字圖像數(shù)據(jù)是從效果圖的底部向效果圖的 頂部來(lái)處理的。開(kāi)始,如框1710所示,接收到垂直取向的效果圖,該效果圖具有 位于其中的第一垂直位置上的第一變換效果對(duì)象。隨后,如框1712所示,確定該 第一變換效果對(duì)象是否可以在比第一垂直位置更接近效果圖底部的第二垂直位置 上被應(yīng)用于數(shù)字圖像數(shù)據(jù)。如果確定該第一變換效果對(duì)象不可以在第二垂直位置上 被應(yīng)用于數(shù)字圖像數(shù)據(jù),就在第一垂直位置上應(yīng)用該第一變換效果對(duì)象,如框1714 所示。
但是,如果確定該第一變換效果對(duì)象可以在第二垂直位置上被應(yīng)用于數(shù)字圖 像數(shù)據(jù),則接著確定第二垂直位置上是否存在變換效果對(duì)象。這由框1716所示。 如果在第二垂直位置上不存在變換效果對(duì)象,就在第二垂直位置而不是在第一垂直 位置上應(yīng)用該第一變換效果對(duì)象,如框1718所示。然而,如果確定在第二垂直位 置上存在變換效果對(duì)象,就在第二垂直位置上累加地應(yīng)用第一和第二變換效果對(duì) 象,如框1720所示。
現(xiàn)在轉(zhuǎn)到圖18,圖解了根據(jù)本發(fā)明的一個(gè)實(shí)施例的利用垂直取向的效果圖來(lái) 處理數(shù)字圖像數(shù)據(jù)的方法1800的流程圖。開(kāi)始,如框1810所示,接收到具有初始
變換值的數(shù)字圖像數(shù)據(jù)。隨后或同時(shí)地,接收到具有至少一個(gè)變換效果對(duì)象的效果 圖,如框1812所示。接下來(lái),在變換效果對(duì)象處所接收到的數(shù)字圖像數(shù)據(jù)被從初
始變換值變換到第一經(jīng)變換的變換值,如框1814所示。隨后,在變換效果對(duì)象處 數(shù)字圖像數(shù)據(jù)被從初始變換值變換到第二經(jīng)變換的變換值,如框1816所示。
鑒于以上內(nèi)容,本發(fā)明的實(shí)施例針對(duì)一種用于編輯數(shù)字圖像數(shù)據(jù)的系統(tǒng)。該 系統(tǒng)包括具有與之相關(guān)聯(lián)的GPU存儲(chǔ)器的圖形處理單元(GPU),以及利用GPU 存儲(chǔ)器來(lái)非破壞性地編輯數(shù)字圖像數(shù)據(jù)的至少一部分的編輯組件。在一個(gè)實(shí)施例
中,該編輯組件能利用GPU存儲(chǔ)器以及GPU存儲(chǔ)器與CPU存儲(chǔ)器的組合中的一 種來(lái)非破壞性地編輯接收到的數(shù)字圖像數(shù)據(jù)的至少一部分。
該系統(tǒng)可以進(jìn)一步包括用于接收多個(gè)被串在一起形成效果圖的效果對(duì)象的效 果圖接收組件,效果圖能被用于編輯數(shù)字圖像數(shù)據(jù)。另外,該系統(tǒng)可以進(jìn)一步包括 用于接收要被編輯的數(shù)字圖像數(shù)據(jù)的數(shù)據(jù)接收組件。
在另一個(gè)實(shí)施例中,本發(fā)明針對(duì)一種利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法。 該方法包括接收多個(gè)效果對(duì)象并將這多個(gè)的效果對(duì)象中的至少一部分串在一起稱 為效果圖,其中該效果圖能利用CPU存儲(chǔ)器和GPU存儲(chǔ)器中的至少一個(gè)來(lái)被串起。 在一個(gè)實(shí)施例中,處理接收到的數(shù)字圖像數(shù)據(jù)可以包括非破壞性地處理數(shù)字圖像數(shù) 據(jù)的至少一部分。該方法可以進(jìn)一步包括接收要被處理的數(shù)字圖像數(shù)據(jù)和/或根據(jù) 需要利用效果圖來(lái)處理接收到的數(shù)字圖像數(shù)據(jù)。再進(jìn)一步地,該方法可以包括將數(shù) 字圖像數(shù)據(jù)與圖像緩沖相關(guān)聯(lián)地存儲(chǔ)在CPU存儲(chǔ)器和GPU存儲(chǔ)器中的至少一個(gè) 里。
在另一實(shí)施例中,本發(fā)明針對(duì)一種用于處理數(shù)字圖像數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包 括用于接收要被處理的數(shù)字圖像數(shù)據(jù)的數(shù)據(jù)接收組件、用于獲取要在處理所接收到 的數(shù)字圖像數(shù)據(jù)時(shí)使用的包括多個(gè)效果對(duì)象的效果圖的效果圖獲取組件、以及用于 利用效果圖以及CPU存儲(chǔ)器和GPU存儲(chǔ)器中的至少一個(gè)來(lái)處理數(shù)字圖像數(shù)據(jù)的處 理組件。在一個(gè)實(shí)施例中,效果圖獲取組件能將這多個(gè)效果對(duì)象中的至少一部分串 在一起以創(chuàng)建效果圖。在另一個(gè)實(shí)施例中,處理組件能利用效果圖以及GPU存儲(chǔ) 器和GPU存儲(chǔ)器與CPU存儲(chǔ)器的組合中的至少一個(gè)來(lái)非破壞性處理數(shù)字圖像數(shù)據(jù) 的至少一部分。如果希望的話,該系統(tǒng)可以進(jìn)一步包括用于將數(shù)字圖像數(shù)據(jù)存儲(chǔ)到 CPU存儲(chǔ)器和GPU存儲(chǔ)器中的至少一個(gè)的存儲(chǔ)組件。
在另一實(shí)施例中,本發(fā)明一種利用垂直取向的效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的 方法,該數(shù)字圖像數(shù)據(jù)是從效果圖的底部向效果圖的頂部來(lái)處理的。該方法包括接收到垂直取向的效果圖,其中該效果圖包括位于發(fā)出兩條分歧路徑的交叉點(diǎn)上的效 果對(duì)象,接收要利用效果圖來(lái)處理的數(shù)字圖像數(shù)據(jù),在效果圖中沿著這兩條分歧路 徑中的第一條從底部向頂部地來(lái)執(zhí)行效果圖的第一通處理,以及在處理期間將數(shù)字 圖像數(shù)據(jù)的至少一部分高速緩存在與效果對(duì)象的輸出相關(guān)聯(lián)的圖像緩沖中。
在另一個(gè)實(shí)施例中,本發(fā)明針對(duì)利用垂直取向的效果圖來(lái)處理數(shù)字圖像數(shù)據(jù) 的方法,該數(shù)字圖像數(shù)據(jù)是從效果圖的底部向效果圖的頂部來(lái)處理的。該方法包括 接收垂直取向的效果圖,其中效果圖至少包括第一效果對(duì)象和第二效果對(duì)象,第二 效果對(duì)象比第一效果對(duì)象更接近于效果圖的頂部,接收要利用效果圖來(lái)處理的數(shù)字 圖像數(shù)據(jù),對(duì)包括第一和第二效果對(duì)象的效果圖的至少一部分上執(zhí)行第一通處理, 以及將該數(shù)字圖像數(shù)據(jù)的至少一部分高速緩存在與第一效果對(duì)象的輸出相關(guān)聯(lián)的 圖像緩沖中。該方法可以進(jìn)一步包括檢測(cè)與第二效果對(duì)象相關(guān)聯(lián)的用戶修改。
在另一個(gè)實(shí)施例中,本發(fā)明針對(duì)利用垂直取向的效果圖來(lái)處理數(shù)字圖像數(shù)據(jù) 的系統(tǒng),該數(shù)字圖像數(shù)據(jù)是從效果圖的底部向效果圖的頂部來(lái)處理的。該系統(tǒng)包括 用于接收垂直取向的效果圖的第一接收組件,其中該效果圖包括位于發(fā)出兩條分歧路徑的交叉點(diǎn)上的效果對(duì)象。該系統(tǒng)進(jìn)一步包括用于接收要利用效果圖來(lái)處理的數(shù) 字圖像數(shù)據(jù)的第二接收組件,用于在效果圖中從其底部向頂部執(zhí)行一通處理的第一 處理組件,用于在處理期間將數(shù)字圖像數(shù)據(jù)的至少一部分高速緩存在與效果對(duì)象的 輸出相關(guān)聯(lián)的緩沖中的高速緩存組件,以及用于根據(jù)兩條分歧路徑中的一條來(lái)執(zhí)行 效果圖的第二通處理的第二處理組件,其中第二通處理從與效果對(duì)象的輸出相關(guān)聯(lián) 的緩沖延伸。
在另一個(gè)實(shí)施例中,本發(fā)明涉及一種利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法。 該方法包括接收效果圖,其中效果圖包括多個(gè)效果對(duì)象,其中每一個(gè)具有與之相關(guān) 聯(lián)的用于存儲(chǔ)數(shù)字圖像數(shù)據(jù)的圖像緩沖,接收要利用效果圖來(lái)處理的數(shù)字圖像數(shù) 據(jù),以及在處理數(shù)字圖像數(shù)據(jù)之前執(zhí)行效果圖的一通預(yù)繪制。
在又一個(gè)實(shí)施例中,本發(fā)明涉及一種利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法。 該方法包括接收效果圖,其中接收到的效果圖包括多個(gè)效果對(duì)象,其中每一個(gè)具有 與之相關(guān)聯(lián)的用于存儲(chǔ)數(shù)字圖像數(shù)據(jù)的圖像緩沖,接收要利用效果圖來(lái)處理的數(shù)字 圖像數(shù)據(jù),并且確定與效果圖相關(guān)聯(lián)的圖形處理單元(GPU)中是否有足夠存儲(chǔ)空 間可用來(lái)處理該數(shù)字圖像數(shù)據(jù)。
仍然進(jìn)一步地,本發(fā)明的一個(gè)實(shí)施例涉及一種利用效果圖來(lái)處理數(shù)字圖像數(shù) 據(jù)的方法。該方法包括接收效果圖,其中效果圖包括多個(gè)效果對(duì)象,其中每一個(gè)具有一與之相關(guān)聯(lián)的用于存儲(chǔ)數(shù)字圖像數(shù)據(jù)的圖像緩沖,接收要利用效果圖來(lái)處理的 數(shù)字圖像數(shù)據(jù),以及確定與這多個(gè)效果對(duì)象相關(guān)聯(lián)的圖像緩沖中是否有一個(gè)或多個(gè) 在數(shù)字圖像數(shù)據(jù)處理期間要被高速緩存。
在另一個(gè)實(shí)施例中,本發(fā)明涉及一種創(chuàng)建用于數(shù)字圖像數(shù)據(jù)的處理的效果圖 的方法。該方法包括提供一個(gè)或多個(gè)效果層,每個(gè)效果層具有與之相關(guān)聯(lián)的包含多 個(gè)邏輯效果的邏輯效果子圖,接收有關(guān)數(shù)字圖像數(shù)據(jù)的處理的輸入,確定在數(shù)字圖 像數(shù)據(jù)處理之際接收到的輸入對(duì)每個(gè)邏輯效果的影響,并且根據(jù)所確定的影響來(lái)創(chuàng) 建物理效果子圖。
在另一個(gè)實(shí)施例中,本發(fā)明涉及一種利用效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法。 該方法包括接收效果圖,該效果圖具有至少一個(gè)與一效果層相關(guān)聯(lián)的遮罩效果對(duì) 象,接收數(shù)字圖像數(shù)據(jù),接收關(guān)于對(duì)數(shù)字圖像數(shù)據(jù)中滿足某個(gè)準(zhǔn)則的至少一部分的 選擇的輸入,并且將該至少一個(gè)遮罩效果對(duì)象應(yīng)用于接收到的數(shù)字圖像數(shù)據(jù)。
在又一個(gè)實(shí)施例中,本發(fā)明涉及一種用于處理數(shù)字圖像數(shù)據(jù)的系統(tǒng)。該系統(tǒng) 包括用于提供一個(gè)或多個(gè)效果層的提供組件,每個(gè)效果層具有與之相關(guān)聯(lián)的包含三 個(gè)或以上邏輯效果的邏輯效果子圖,用于根據(jù)在數(shù)字圖像數(shù)據(jù)的處理之際每個(gè)邏輯 效果的影響將邏輯效果子圖變換為物理效果子圖的變換組件,以及用于利用物理效 果子圖來(lái)繪制圖像的繪制組件。如有需要,該系統(tǒng)可以進(jìn)一步包括用于將所提取的 數(shù)字圖像數(shù)據(jù)轉(zhuǎn)換成分析結(jié)果的變換組件和/或用于將分析結(jié)果轉(zhuǎn)發(fā)到主效果的轉(zhuǎn) 發(fā)組件。
在另一個(gè)實(shí)施例中,本發(fā)明涉及一種利用垂直取向的效果圖來(lái)處理數(shù)字圖像 數(shù)據(jù)的方法,該數(shù)字圖像數(shù)據(jù)是從效果圖的底部向效果圖的頂部來(lái)處理的。該方法 包括接收垂直取向的效果圖,該效果圖具有位于其中的第一垂直位置上的第一變換 效果對(duì)象,并且確定該第一變換效果對(duì)象是否可以在第二垂直位置上被應(yīng)用于數(shù)字 圖像數(shù)據(jù),該第二垂直位置比第一垂直位置更接近效果圖的底部。如果確定該第一 變換效果對(duì)象可以在第二垂直位置上被應(yīng)用于數(shù)字圖像數(shù)據(jù),則該方法可以進(jìn)一步 包括在第二垂直位置上而不是第一垂直位置上應(yīng)用該第一變換對(duì)象。但是如果確定 該第一變換效果對(duì)象不可以在第二垂直位置被應(yīng)用于數(shù)字圖像數(shù)據(jù),則該方法可以 進(jìn)一步包括在第一垂直位置上應(yīng)用該第一變換效果對(duì)象。
在另一個(gè)實(shí)施例中,本發(fā)明涉及一種利用垂直取向的效果圖來(lái)處理數(shù)字圖像 數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括用于接收垂直取向的效果圖的接收組件,該效果圖具有位 于第一垂直位置上的第一變換效果對(duì)象,用于確定該第一變換效果對(duì)象是否可以在第二垂直位置上被應(yīng)用于數(shù)字圖像數(shù)據(jù)的確定組件,該第二垂直位置比第一垂直位 置更接近效果圖底部,以及用于在確定該第一變換效果對(duì)象可以在第二垂直位置上 被應(yīng)用于數(shù)字圖像數(shù)據(jù)的情況下在第二垂直位置上而不是第一垂直位置上應(yīng)用該 第一變換對(duì)象的應(yīng)用組件。
在一進(jìn)一步的實(shí)施例中,本發(fā)明涉及一種利用垂直取向的效果圖來(lái)處理數(shù)字 圖像數(shù)據(jù)的方法。該方法包括接收具有初始變換值的數(shù)字圖像數(shù)據(jù),接收效果圖, 該效果圖具有至少一個(gè)變換效果對(duì)象,在至少一個(gè)變換效果對(duì)象處將接收到的數(shù)字 圖像數(shù)據(jù)從初始變換值變換到第一經(jīng)變換的變換值,以及在至少一個(gè)變換效果對(duì)象 處將接收到的數(shù)字圖像數(shù)據(jù)從初始變換值變換到第二經(jīng)變換的變換值。。
本發(fā)明的各實(shí)施例進(jìn)一步涉及一個(gè)或多個(gè)具有用于執(zhí)行這里所描述的方法的 計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),以及被編程為執(zhí)行這些方法的計(jì)算機(jī)。
已經(jīng)有關(guān)特定實(shí)施例來(lái)描述了本發(fā)明,其在任何方面均旨在說(shuō)明而不是限制。 本發(fā)明涉及而沒(méi)有背離其范圍的替換實(shí)施例對(duì)本領(lǐng)域普通技術(shù)人員而言是顯而易 見(jiàn)的。
根據(jù)前述內(nèi)容,連同其他明顯的以及系統(tǒng)和方法固有的優(yōu)點(diǎn)一起,將看到本 發(fā)明能很好地適應(yīng)于實(shí)現(xiàn)所有前面提及的結(jié)果和目標(biāo)。可以理解,某些特征和再組 合都是有用的,并且可以不參照其他特征和再組合來(lái)使用。這都是已構(gòu)想的并落在 權(quán)利要求范圍中的。
權(quán)利要求
1、一種利用垂直取向的效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法,所述數(shù)字圖像數(shù)據(jù)是自所述效果圖的底部向所述效果圖的頂部來(lái)處理的,所述方法包括接收所述垂直取向的效果圖,所述效果圖具有位于其中的第一垂直位置上的第一變換效果對(duì)象;以及確定所述第一變換效果對(duì)象是否可以在第二垂直位置上被應(yīng)用于所述數(shù)字圖像數(shù)據(jù),所述第二垂直位置比所述第一垂直位置更接近于所述效果圖的底部。
2、 如權(quán)利要求1所述的方法,其中如果確定所述第一變換效果對(duì)象可以在所述第二垂直位置上被應(yīng)用于所述數(shù)字圖像數(shù)據(jù),則所述方法進(jìn)一步包括在所述第二垂直位置上而不是在所述第一垂直位置上應(yīng)用所述第一變換對(duì)象。
3、 如權(quán)利要求l所述的方法,其中如果確定所述第一變換效果對(duì)象不可以在所述第二垂直位置上被應(yīng)用于所述數(shù)字圖像數(shù)據(jù),則所述方法進(jìn)一步包括在所述第一垂直位置上應(yīng)用所述第一變換效果對(duì)象。
4、 如權(quán)利要求1所述的方法,其中有一第二變換效果對(duì)象位于所述第二垂直位置上。
5、 如權(quán)利要求4所述的方法,其中如果確定所述第一變換效果對(duì)象可以在所述第二垂直位置上被應(yīng)用于所述數(shù)字圖像數(shù)據(jù),則所述方法進(jìn)一步包括在所述第二垂直位置上累加地應(yīng)用所述第一和第二變換效果對(duì)象。
6、 如權(quán)利要求l所述的方法,其中所述效果圖包括一比所述第一垂直位置更接近于該效果圖的底部并且比所述第二垂直位置更接近于該效果圖的頂部的效果對(duì)象,并且其中確定所述第一變換效果對(duì)象是否可以在所述第二垂直位置上被應(yīng)用 于所述數(shù)字圖像數(shù)據(jù)包括接收有關(guān)所述一效果對(duì)象是否能處理已根據(jù)所述第一變 換效果對(duì)象變換了的數(shù)字圖像數(shù)據(jù)的輸入。
7、 如權(quán)利要求6所述的方法,其中接收有關(guān)所述一效果對(duì)象是否能處理已根據(jù)所述第一變換效果對(duì)象變換了的數(shù)字圖像數(shù)據(jù)的輸入包括接收來(lái)自所述一效果對(duì)象的輸入。
8、 如權(quán)利要求6所述的方法,其中所述第一變換效果對(duì)象包括至少兩個(gè)部分,并且其中接收有關(guān)所述一效果對(duì)象是否能處理已根據(jù)所述第一變換效果對(duì)象變換了的數(shù)字圖像數(shù)據(jù)的輸入包括接收有關(guān)所述一效果對(duì)象是否能處理已根據(jù)所述至少兩個(gè)部分中的每一個(gè)變換了的數(shù)字圖像數(shù)據(jù)的輸入。
9、 如權(quán)利要求8所述的方法,其中如果接收到指示所述一效果對(duì)象能處理己根據(jù)少于所述至少兩個(gè)部分中的所有部分變換了的數(shù)字圖像數(shù)據(jù),則該方法進(jìn)一步 包括在所述第二垂直位置處而不是在所述第一垂直位置處僅應(yīng)用所述變換對(duì)象中 根據(jù)其變換了的數(shù)字圖像數(shù)據(jù)能被所述一效果對(duì)象處理的那些部分。
10、 一個(gè)或多個(gè)具有用于執(zhí)行如權(quán)利要求1所述的方法的計(jì)算機(jī)可執(zhí)行指令 的計(jì)算機(jī)可讀介質(zhì)。
11、 一種被編程為執(zhí)行如權(quán)利要求1所述的方法的計(jì)算機(jī)。
12、 一種利用垂直取向的效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括 用于接收所述垂直取向的效果圖的接收組件,所述效果圖具有位于其中的第一垂直位置上的第一變換效果對(duì)象;用于確定所述第一變換效果對(duì)象是否可以在第二垂直位置上被應(yīng)用于所述數(shù) 字圖像數(shù)據(jù)的確定組件,所述第二垂直位置比所述第一垂直位置更接近于所述效果 圖的底部;以及用于在確定所述第一變換效果對(duì)象可以在所述第二垂直位置處被應(yīng)用于所述 數(shù)字圖像數(shù)據(jù)的情況下在所述第二垂直位置上而不是在所述第一垂直位置上應(yīng)用 所述第一變換效果對(duì)象的應(yīng)用組件。
13、 如權(quán)利要求12所述的系統(tǒng),其中所述效果圖包括一比所述第一垂直位置 更接近于所述效果圖的底部并且比所述第二垂直位置更接近于所述效果圖的頂部 的效果對(duì)象,并且其中所述系統(tǒng)進(jìn)一步包括用于從所述一效果對(duì)象接收有關(guān)該效果 對(duì)象是否能處理已根據(jù)所述第一變換效果對(duì)象變換了的數(shù)字圖像數(shù)據(jù)的輸入接收 組件。
14、 如權(quán)利要求12所述的系統(tǒng),其中有一第二變換效果對(duì)象位于所述第二垂 直位置上,并且其中所述系統(tǒng)進(jìn)一步包括用于累積所述第一和第二變換效果對(duì)象的 累積組件。
15、 一種利用垂直取向的效果圖來(lái)處理數(shù)字圖像數(shù)據(jù)的方法,所述方法包括; 接收具有初始變換值的數(shù)字圖像數(shù)據(jù);接收所述效果圖,所述效果圖具有至少一個(gè)變換效果對(duì)象; 在所述至少一個(gè)變換效果對(duì)象處將所接收到的數(shù)字圖像數(shù)據(jù)從所述初始變換 值變換到第一經(jīng)變換的變換值;以及在所述至少一個(gè)變換效果對(duì)象處將所接收到的數(shù)字圖像數(shù)據(jù)從所述初始變換值變換到第二經(jīng)變換的變換值。
16、 如權(quán)利要求15所述的方法,進(jìn)一步包括接收指示所述第一和第二變換值 的輸入。
17、 如權(quán)利要求15所述的方法,進(jìn)一步包括在將所接收到的數(shù)字圖像數(shù)據(jù)從所述初始變換值變換到第一經(jīng)變換的變換值 之后重新采樣所接收到的數(shù)字圖像數(shù)據(jù);以及創(chuàng)建具有所述第一變換值的經(jīng)修改的數(shù)字圖像數(shù)據(jù)。
18、 如權(quán)利要求15所述的方法,進(jìn)一步包括在將所接收到的數(shù)字圖像數(shù)據(jù)從所述初始變換值變換到所述第二經(jīng)變換的變換值之后重新釆樣所接收到的數(shù)字圖像數(shù)據(jù);以及創(chuàng)建具有所述第二變換值的經(jīng)修改的數(shù)字圖像數(shù)據(jù)。
19、 如權(quán)利要求15所述的方法,進(jìn)一步包括將所述第二變換值計(jì)算為至少部 分地包括所述初始變換值與所述第一變換值之差的累加值。
20、 一個(gè)或多個(gè)具有用于執(zhí)行如權(quán)利要求15所述的方法的計(jì)算機(jī)可執(zhí)行指令 的計(jì)算機(jī)可讀介質(zhì)。
全文摘要
提供了利用垂直取向的效果圖來(lái)處理——例如非破壞性處理——數(shù)字圖像數(shù)據(jù)的方法和系統(tǒng)。在非破壞性處理中,在品質(zhì)和性能兩者意義上來(lái)說(shuō),在何處以及何時(shí)數(shù)據(jù)被變換是相當(dāng)重要的。變換在垂直取向的效果圖中越往下處發(fā)生越好。由此,提供用于將變換在效果圖中下推到最低可能點(diǎn)并在該點(diǎn)而不是在它們?cè)环胖玫奈恢锰帒?yīng)用它們的方法。還提供用于執(zhí)行這里所公開(kāi)的方法的系統(tǒng)。
文檔編號(hào)G06K9/36GK101203864SQ200680022378
公開(kāi)日2008年6月18日 申請(qǐng)日期2006年6月7日 優(yōu)先權(quán)日2005年6月24日
發(fā)明者D·A·理查德, D·M·瑪什, D·德曼多勒克斯, J·徐, S·J·懷特 申請(qǐng)人:微軟公司