背景技術(shù):
計算裝置和顯示裝置繼續(xù)變得更小或重量更輕,從而允許較小封裝中的較強(qiáng)大處理。具有強(qiáng)大能力的輕量裝置允許技術(shù)變得與用戶的每日生活更結(jié)合。舉例來說,過去的桌上型計算機(jī)的電力和顯示能力現(xiàn)在可在蜂窩電話、膝上型計算機(jī)、平板計算機(jī)中以及甚至可穿戴計算裝置(例如手腕安裝的裝置(例如智能手表)和頭戴式裝置)中找到。
此類裝置所顯示的視覺內(nèi)容,例如圖形用戶接口和視頻游戲的內(nèi)容,可由圖形處理單元(gpu)產(chǎn)生。gpu可將二維(2d)或三維(3d)對象轉(zhuǎn)換成可顯示的二維(2d)像素表示。為了產(chǎn)生內(nèi)容來顯示,gpu可執(zhí)行各種操作或命令來處理圖像。
技術(shù)實現(xiàn)要素:
本發(fā)明呈現(xiàn)用于確定對圖形圖像產(chǎn)生的參數(shù)修改且基于所述經(jīng)修改的參數(shù)來產(chǎn)生經(jīng)校正的圖形圖像的系統(tǒng)、技術(shù)方法和設(shè)備。更具體地說,本文所述的技術(shù)可使計算裝置能夠向用戶提供到以及接收來自用戶的反饋,以便確定可用以產(chǎn)生考慮用戶的視力缺陷的圖形圖像的修改值,從而產(chǎn)生并不具有完美視力的用戶看起來較尖銳且較聚焦的圖形圖像。
在本發(fā)明的一個實例中,一種圖形處理方法包含:通過計算裝置,輸出多個測試圖形圖像以供顯示;通過所述計算裝置,接收指示來自所述多個測試圖形圖像的至少一個測試圖形圖像的計算裝置的用戶的感知的輸入;通過所述計算裝置且至少部分地基于所述接收到的輸入,確定至少一個參數(shù)修改值;以及通過所述計算裝置,至少部分地基于所述至少一個參數(shù)修改值來產(chǎn)生經(jīng)校正的圖形圖像。
在本發(fā)明的另一實例中,一種經(jīng)配置以用于圖形處理的設(shè)備包含:存儲器,其經(jīng)配置以存儲圖形數(shù)據(jù);以及一或多個處理器,其與所述存儲器通信,所述一或多個處理器經(jīng)配置以:輸出多個測試圖形圖像以供顯示;接收指示來自所述多個測試圖形圖像的至少一個測試圖形圖像的計算裝置的用戶的感知的輸入;至少部分地基于所述接收到的輸入,確定至少一個參數(shù)修改值;以及至少部分地基于所述至少一個參數(shù)修改值來產(chǎn)生經(jīng)校正的圖形圖像。
在另一實例中,本發(fā)明描述一種存儲指令的計算機(jī)可讀存儲媒體,所述指令在被執(zhí)行時,致使經(jīng)配置以用于圖形處理的裝置的一或多個處理器:輸出多個測試圖形圖像以供顯示;接收指示來自所述多個測試圖形圖像的至少一個測試圖形圖像的計算裝置的用戶的感知的輸入;且至少部分地基于所述接收到的輸入,確定至少一個參數(shù)修改值;以及至少部分地基于所述至少一個參數(shù)修改值來產(chǎn)生經(jīng)校正的圖形圖像。
在另一實例中,本發(fā)明描述一種經(jīng)配置以處理圖形的設(shè)備,所述指令包含:用于輸出多個測試圖形圖像以供顯示的裝置;用于接收指示來自所述多個測試圖形圖像的至少一個測試圖形圖像的計算裝置的用戶的感知的輸入的裝置;用于至少部分地基于所述接收到的輸入來確定至少一個參數(shù)修改值的裝置;以及用于至少部分地基于所述至少一個參數(shù)修改值來產(chǎn)生經(jīng)校正的圖形圖像的裝置。
附圖和以下描述中陳述一或多個實例的細(xì)節(jié)。其它特征、目標(biāo)和優(yōu)點將從所述描述和圖式以及所附權(quán)利要求書顯而易見。
附圖說明
圖1是說明包含經(jīng)配置以實施本發(fā)明的技術(shù)的計算裝置的實例計算環(huán)境的概念圖。
圖2是說明圖1中所示的實例計算裝置的進(jìn)一步細(xì)節(jié)的框圖。
圖3是說明經(jīng)配置以實施本發(fā)明的技術(shù)的實例處理單元的框圖。
圖4是說明實施本發(fā)明的一或多種技術(shù)的實例過程的框圖。
圖5是說明實施本發(fā)明的一或多種技術(shù)的實例過程的框圖。
圖6是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置和圖形圖像的框圖。
圖7是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置和圖形圖像的框圖。
圖8是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置和圖形圖像的框圖。
圖9是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置和圖形圖像的框圖。
圖10是說明經(jīng)配置以實施本發(fā)明的技術(shù)的計算裝置的實例操作的流程圖。
具體實施方式
對于不具有完美視力的用戶,例如使用隱形眼鏡、眼鏡或其它視力校正工具的那些用戶,檢視向一些顯示裝置顯示的內(nèi)容可為不合意的體驗。舉例來說,戴眼鏡可使得某些可穿戴裝置(例如頭戴式顯示裝置)的使用對于一些用戶來說幾乎是不可能的。在不戴校正鏡片的情況下,向頭戴式顯示裝置顯示的內(nèi)容對于用戶來說可能看起來不像其應(yīng)該的那樣清晰。不能清楚地看見所顯示的內(nèi)容可使用戶體驗降級。
本發(fā)明的技術(shù)可通過處理內(nèi)容以考慮用戶的視力缺陷,來實現(xiàn)在具有小于完美視力的用戶看來較尖銳且較清楚的內(nèi)容的顯示。就是說,本文所述的技術(shù)可通過實現(xiàn)補(bǔ)償用戶的視力問題的內(nèi)容的較準(zhǔn)確顯示,來減少對外部視力校正的需要。通過減少對眼鏡、隱形眼鏡或其它視力校正工具的需要,本發(fā)明的技術(shù)可允許具有小于完美視力的用戶更容易且舒適地與各種類型的計算裝置和顯示裝置交互,從而改進(jìn)用戶體驗。
圖1是說明包含經(jīng)配置以實施本發(fā)明的技術(shù)的計算裝置2的實例計算環(huán)境的概念圖。在圖1的實例中,計算裝置2是用戶(例如用戶4)可安裝在用戶的頭部上來使用的可穿戴計算裝置。在其它實例中,計算裝置2可在可穿戴顯示器外部。計算裝置2可具有護(hù)目鏡形狀因子、護(hù)罩形狀因子、眼鏡形狀因子,或以其它方式可用于檢視向計算裝置2的一或多個顯示器顯示的內(nèi)容。在其它實例中,計算裝置2可為另一類型的可佩戴裝置(例如手腕安裝的計算裝置等)、個人計算機(jī)、桌上型計算機(jī)、膝上型計算機(jī)、平板計算機(jī)、計算機(jī)工作站、視頻游戲平臺或控制臺、移動電話(例如蜂窩式或衛(wèi)星電話)、陸線電話、因特網(wǎng)電話、手持式裝置(例如便攜式視頻游戲裝置或個人數(shù)字助理(pda))、個人音樂播放器、視頻播放器、顯示裝置、電視機(jī)、電視機(jī)頂盒、服務(wù)器、中間網(wǎng)絡(luò)裝置、主機(jī)計算機(jī)、任何移動裝置,或任何其它類型的處理和/或顯示圖形數(shù)據(jù)的裝置。
在圖1的實例中,計算裝置2可包含可向其顯示圖形內(nèi)容(例如一或多個圖形圖像)的一或多個顯示器。顯示器或顯示裝置的實例可包含監(jiān)視器、電視機(jī)、投影裝置、液晶顯示器(lcd)、等離子顯示面板、發(fā)光二極管(led)陣列,例如有機(jī)led(oled)顯示器、陰極射線管(crt)顯示器、電子紙張、表面?zhèn)鲗?dǎo)電子發(fā)射式顯示器(sed)、激光電視機(jī)顯示器、納米晶體顯示器或另一類型的顯示單元。計算裝置2的每一顯示器可由用戶4的眼睛檢視。也就是說,計算裝置2可包含兩個顯示器,其經(jīng)配置以使得當(dāng)恰當(dāng)?shù)卮┐骱褪褂脮r,計算裝置2的左顯示器對用戶4的左眼可見,且計算裝置2的右顯示器對用戶4的右眼可見。在其它實例中,計算裝置2可包含單個顯示器、三個顯示器,或更多。在一些實例中,計算裝置2可不包含顯示器。也就是說,在一些實例中,計算裝置2可操作以產(chǎn)生將向計算裝置2外部的一或多個顯示裝置顯示的內(nèi)容。在一些此類實例中,計算裝置2可操作以存儲所產(chǎn)生的內(nèi)容,和/或?qū)⑺a(chǎn)生的內(nèi)容發(fā)送到以操作方式耦合到計算裝置2(例如經(jīng)由一或多個有線和/或無線連接)的一或多個顯示裝置。
在圖1的實例中,用戶4可具有小于完美的視力。舉例來說,用戶4可遭受近視(即,近視眼)。為了考慮用戶的視力,在圖1的實例中,用戶4可定期佩戴眼鏡。許多形式的不完美視力(例如近視或檢視眼、遠(yuǎn)視或遠(yuǎn)視眼、散光和/或其它視力缺陷)可歸因于進(jìn)入用戶眼睛的光的焦點在用戶的視網(wǎng)膜之外的點處出現(xiàn)而導(dǎo)致視力模糊、散焦和/或不成比例。也就是說,進(jìn)入眼睛的光(例如通過用戶眼睛的元件)在錯誤位置處對焦。舉例來說,近視是在視網(wǎng)膜之前聚焦的光的結(jié)果。例如眼鏡、隱形眼鏡和單片眼鏡的視力校正工具可通過修改進(jìn)入眼睛的光的方向來補(bǔ)償各種視覺缺陷,使得經(jīng)修改的光聚焦在視網(wǎng)膜處。因此,使用眼鏡通??墒褂脩?能夠比在沒有用戶的眼鏡的情況下更清楚地看到。
然而,戴眼鏡可使可穿戴計算裝置或顯示裝置(例如計算裝置2)難以使用或用起來不舒服。在圖1的實例中,舉例來說,用戶4可不能夠?qū)⒂嬎阊b置2佩戴在用戶的眼鏡之上。因此,為了使用計算裝置2,用戶4可移除眼鏡。在一些實例中,用戶可不能夠或不愿意佩戴隱形眼鏡或其它視力校正工具。舉例來說,一些用戶的視力可較少受影響,且用戶可選擇在無視力校正的情況下生活。不管原因如何,具有不完美的視力的用戶可希望使用計算裝置或顯示裝置,而不使用視力校正工具。然而,在不具有視力校正工具的情況下,向用戶顯示的內(nèi)容可看起來模糊或離焦。
圖形圖像6a說明當(dāng)用戶不戴任何視力校正工具時,對于具有小于完美的視力的用戶來說,所顯示的圖形圖像可看起來如何的一個實例。舉例來說,圖形圖像6a可由計算裝置2向左顯示器顯示,對用戶4的左眼可見。當(dāng)用戶4在左顯示器處檢視圖形圖像6a時,用戶的左眼可能無法恰當(dāng)?shù)鼐劢箯淖箫@示器接收到的光。因此,圖形圖像6a可看起來模糊且離焦。也就是說,雖然圖形圖像在左顯示器處可能一清二楚,但用戶4的左眼可能無法將從顯示器接收到的光聚焦到用戶的左眼的視網(wǎng)膜上,且因此一清二楚的圖像對于用戶4來說可能看起來模糊。
根據(jù)本文所述的技術(shù),計算裝置2可經(jīng)配置以確定其中修改將依次顯示以補(bǔ)償用戶4的特定視力缺陷的內(nèi)容的一或多種方式。也就是說,計算裝置2可確定如何處理內(nèi)容以考慮用戶4的視力中的缺陷(例如近視、遠(yuǎn)視、散光和/或其它條件),且從而向用戶4提供在用戶4看起來更鮮艷且更清楚的圖像。
為了恰當(dāng)?shù)乜紤]用戶的視力缺陷,計算裝置2可允許用戶提供指示用戶的視力問題的反饋或輸入。在圖1的實例中,舉例來說,計算裝置2可提供圖形用戶接口(gui)或物理控制,用戶4可與之交互,以便提供指示用戶4的視力缺陷的信息。在各種實例中,計算裝置2可允許用戶輸入每一眼睛的不同信息、一個或兩個眼睛的兩個或更多個軸的不同信息(例如用于第一軸的第一值和用于第二軸的第二值)、顯示器的不同部分(例如區(qū))的不同信息,或以其它方式提供指示用戶的特定視力條件的精確信息。
在一些實例中,計算裝置2可經(jīng)配置以明確地接收用戶視力校正值(例如校正性鏡片處方)。舉例來說,計算裝置2可經(jīng)配置以接收屈光度、焦距或其它單位的放大值(例如用于校正近視和遠(yuǎn)視)。計算裝置2可另外或替代地經(jīng)配置以接收與一或多個放大值相關(guān)聯(lián)的角度值(例如用于校正散光)。所述角度值可以度、弧度、經(jīng)線或其它單位指定。在一些實例中,計算裝置2可使用一或多個近似值表來基于接收到的用戶視力校正值確定參數(shù)修改值。舉例來說,計算裝置2可使用近似值表,其指定(針對特定等級的近視)將應(yīng)用于圖形圖像的任何模糊等級的對應(yīng)增加(或減小)。
在一些實例中,計算裝置2可提供用戶接口,例如圖形用戶接口(gui),以輔助用戶提供關(guān)于其視力缺陷的信息。用戶可能夠經(jīng)由所述用戶接口與計算裝置2交互,且提供輸入(例如反饋)。舉例來說,計算裝置2可輸出一或多個簡單圖形圖像,以向用戶4顯示。計算裝置2可接收指示用戶4如何感知所顯示的圖形圖像的信息(例如由用戶4輸入)。在各種實例中,所接收的信息可為所述圖像是否可接受(例如“是”或“否”)的簡單指示、當(dāng)前顯示的圖形圖像比先前顯示的圖形圖像好還是壞的指示、感知為不正確的所顯示的圖形圖像的位置或區(qū)的指示,或關(guān)于用戶4對圖形圖像的感知的其它信息。
計算裝置2可在產(chǎn)生圖形圖像以供顯示時,使用從接收到的反饋導(dǎo)出的信息。舉例來說,計算裝置2可在產(chǎn)生圖形圖像時修改頂點和/或像素/片段著色器所使用的值,和/或?qū)λa(chǎn)生的圖形圖像執(zhí)行后處理,從而使所述圖像變形,使得當(dāng)向顯示器顯示時,內(nèi)容在用戶看起來更聚焦。也就是說,使用基于接收到的用戶輸入而修改的參數(shù)產(chǎn)生的圖形圖像對于具有完美視力的那些用戶來說可看起來變形,但通過以某一方式且在根據(jù)特定用戶的視力缺陷的程度使圖形圖像變形,所述圖形圖像可在特定用戶看起來更聚焦和/或更清楚。
在一些實例中,本文所述的圖像處理技術(shù)可利用光線追蹤原理,來提供經(jīng)視力校正的圖像。舉例來說,將向顯示裝置顯示的每一圖形圖像可表示為穿過焦點或焦平面(例如顯示表面)的光的光線。光的這些光線可向下量化為所述顯示器的每像素光線。通過為光的所述光線再協(xié)商路徑,可使將顯示的內(nèi)容變形,以便基于用戶提供的輸入來確定給定像素的新端位置。換句話說,代替檢視區(qū)(例如顯示器的屏幕)處的固定焦平面,應(yīng)用本文所述的技術(shù)可基于接收到的處方信息來移動所述平面,從而使圖形圖像對具有不完美視力的用戶更“聚焦”。
圖形圖像6b說明當(dāng)用戶4不戴任何視力校正工具時,使用本文所述的技術(shù)來修改且由計算裝置2顯示的圖形圖像可在用戶4看起來如何的一個實例。舉例來說,圖形圖像6b可由計算裝置2向左顯示器顯示,對用戶4的左眼可見。當(dāng)用戶4在左顯示器處檢視圖形圖像6b時,用戶的左眼可繼續(xù)不恰當(dāng)?shù)鼐劢箯淖箫@示器接收到的光。然而,因為基于用戶4的輸入(例如指示用戶4的左眼受近視影響的程度)來修改圖形圖像,所以從示出圖形圖像6b的顯示器接收到的光可較好地聚焦在用戶4的左眼的視網(wǎng)膜處。因此,圖形圖像6b可看起來較不模糊且對用戶4更聚焦。也就是說,用戶4的左眼仍可能無法將接收到的光聚焦到用戶左眼的視網(wǎng)膜上,但因為處理所述圖形圖像以考慮此不可能性,所以圖形圖像6b可在用戶4看起來更清楚且更尖銳。
換句話說,本發(fā)明的技術(shù)可輔助用戶“調(diào)諧”本文所述的技術(shù)的應(yīng)用程序,以確定正確參數(shù)值來在圖像處理期間使用。舉例來說,計算裝置2可提供“驗光師模式”,其中可促使用戶回答一系列問題(例如“哪個較好:選項1還是選項2?”),以便確定參數(shù)值。因此,計算裝置2可使用戶能夠準(zhǔn)確地指定如何更好地處理考慮用戶的視力缺陷的圖像,甚至在用戶并不知道其眼鏡處方或特定視力問題時。
因此,在一些實例中,計算裝置2可經(jīng)配置以處理圖形圖像,以考慮用戶的視力,而用戶不必輸入任何處方值。換句話說,在各種實例中,計算裝置2可提供驗光師模式,以確定恰當(dāng)?shù)膮?shù)值以矯正用戶的視力(例如先前未接收到所述用戶的處方值的任何指示),或使參數(shù)值完美(例如為了證實和/或改進(jìn)指定的處方值)。
在各種實例中,本發(fā)明的技術(shù)可用以調(diào)適向單個顯示裝置且向多個顯示裝置顯示的內(nèi)容。舉例來說,雖然在圖1的實例中描述為應(yīng)用于向計算裝置2的左顯示器顯示的內(nèi)容,但本文所述的技術(shù)可另外或替代地應(yīng)用于向計算裝置2的右顯示器顯示的內(nèi)容。此外,在一些實例中,本文所述的技術(shù)可適用于立體聲內(nèi)容。立體聲內(nèi)容可為以立體聲方式顯示的內(nèi)容(例如模擬三維環(huán)境)。立體聲內(nèi)容可顯示為到單個顯示裝置(例如“3dtv”)的兩組內(nèi)容,或顯示為到第一顯示器(例如對用戶的左眼可見)的第一組內(nèi)容,以及到第二顯示器(例如對用戶的右眼可見)的第二組內(nèi)容。在一些實例中,本文所述的處理技術(shù)可獨立地應(yīng)用于每一組內(nèi)容,以補(bǔ)償用戶的眼睛中的每一者中的不同視力疾病。在圖1的實例中,舉例來說,用戶4可在用戶的左眼中比在用戶的右眼中近視。因此,計算裝置2可將較強(qiáng)處理應(yīng)用于向計算裝置2的左顯示器顯示的內(nèi)容,且將較弱處理應(yīng)用于向計算裝置2的右顯示器顯示的內(nèi)容。
圖2是說明如圖1中所示的計算裝置2的進(jìn)一步細(xì)節(jié)的框圖。也就是說,在圖2的實例中,計算裝置2可經(jīng)配置以:獲得指示用戶視力缺陷的信息;基于所述所獲得的信息來確定參數(shù)修改值;且處理將顯示的圖形圖像,使得所顯示的內(nèi)容在并不具有完美視力的用戶看起來聚焦。如圖2的實例中所說明,計算裝置2可包含用戶輸入接口24、中央處理單元(cpu)26、存儲器控制器28、系統(tǒng)存儲器30、圖形處理單元(gpu)32、圖形存儲器34、顯示接口36、顯示器38以及總線40和42。雖然在圖2的實例中將gpu32和圖形存儲器34示出為單獨組件,但在一些實例中,圖形存儲器34可與gpu32在“芯片上”。在一些實例中,圖2中示出的所有硬件元件可在芯片上(例如在芯片上系統(tǒng)(soc)設(shè)計中)。
用戶輸入接口24、cpu26、存儲器控制器28、gpu32和顯示接口36可使用總線40彼此通信。存儲器控制器28和系統(tǒng)存儲器30也可使用總線42彼此通信??偩€40、42可為多種總線結(jié)構(gòu)或其它通信鏈路中的任一者,例如第三代總線(例如超傳輸總線或無線帶總線)、第二代總線(例如高級圖形端口總線、外圍部件互連標(biāo)準(zhǔn)(pci)快速總線、高級可擴(kuò)展接口(axi)總線),或能夠傳送信息的任何其它類型的總線或互連。應(yīng)注意,圖2的實例中所示的組件、總線和通信接口的特定配置僅為示范性的,且可使用具有相同或不同組件的計算裝置和/或其它圖形處理系統(tǒng)的其它配置來實施本發(fā)明的技術(shù)。
在圖2的實例中,cpu26可包括控制計算裝置2的操作的通用或?qū)S锰幚砥?。用戶可將輸入提供到計算裝置2以致使cpu26執(zhí)行一或多個軟件應(yīng)用程序。在cpu26上執(zhí)行的軟件應(yīng)用程序可包含(例如)操作系統(tǒng)、字處理器應(yīng)用程序、電子郵件應(yīng)用程序、電子表格應(yīng)用程序、媒體播放器應(yīng)用程序、視頻游戲應(yīng)用程序、圖形用戶接口應(yīng)用程序或任何其它程序。另外,cpu26可執(zhí)行用于控制gpu32的操作的gpu驅(qū)動器27。在一些實例中,用戶可經(jīng)由一或多個輸入裝置(未圖示)(例如,鍵盤、鼠標(biāo)、麥克風(fēng)、觸摸墊或經(jīng)由用戶輸入接口24耦合到計算裝置2的另一輸入裝置)將輸入提供到計算裝置2。
在cpu26上執(zhí)行的軟件應(yīng)用程序可包含一或多個圖形渲染指令,其指令cpu26致使圖形圖像的渲染以向顯示器38顯示。在一些實例中,所述指令可符合圖形應(yīng)用編程接口(api),例如開放圖形庫
在圖2的實例中,存儲器控制器28可促進(jìn)進(jìn)入系統(tǒng)存儲器30和從系統(tǒng)存儲器30出來的數(shù)據(jù)的傳送。舉例來說,存儲器控制器28可接收存儲器讀取和寫入命令,且服務(wù)關(guān)于存儲器系統(tǒng)30的此類命令,以便為計算裝置2中的組件提供存儲器服務(wù)。存儲器控制器28經(jīng)由存儲器總線42通信地耦合到系統(tǒng)存儲器30。盡管在圖2中說明為與cpu26和系統(tǒng)存儲器30兩者分開的處理模塊,但在一些實例中,存儲器控制器28的功能性中的一些或全部可在cpu26和系統(tǒng)存儲器30中的一者或兩者上實施。
在圖2的實例中,系統(tǒng)存儲器30可存儲可存取以由cpu26執(zhí)行的程序模塊和/或指令和/或由在cpu26上執(zhí)行的程序使用的數(shù)據(jù)。舉例來說,系統(tǒng)存儲器30可存儲窗口管理器應(yīng)用程序,其由cpu26使用以在顯示器38上呈現(xiàn)圖形用戶接口(gui)。另外,系統(tǒng)存儲器30可存儲用戶應(yīng)用程序以及與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序表面數(shù)據(jù)。系統(tǒng)存儲器30可另外存儲由計算裝置2的其它組件使用和/或產(chǎn)生的信息。舉例來說,系統(tǒng)存儲器30可充當(dāng)用于gpu32的裝置存儲器,且可存儲將在gpu32上操作的數(shù)據(jù)以及由gpu32執(zhí)行的操作而產(chǎn)生的數(shù)據(jù)。在各種實例中,系統(tǒng)存儲器30可存儲紋理緩沖器、深度緩沖器、模板緩沖器、頂點緩沖器、幀緩沖器等的任何組合。系統(tǒng)存儲器30可包含一或多個易失性或非易失性存儲器或存儲裝置,例如隨機(jī)存取存儲器(ram)、靜態(tài)ram(sram)、動態(tài)ram(dram)、只讀存儲器(rom)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、快閃存儲器、磁性數(shù)據(jù)媒體或光學(xué)存儲媒體。
在圖2的實例中,gpu32可經(jīng)配置以執(zhí)行圖形操作以將一或多個圖形基元渲染到顯示器38。因此,當(dāng)在cpu26上執(zhí)行的軟件應(yīng)用程序中的一者要求圖形處理時,cpu26可向gpu32提供圖形命令和圖形數(shù)據(jù)以用于向顯示器38渲染。所述圖形數(shù)據(jù)可包含繪圖命令、狀態(tài)信息、基元信息、紋理信息或其它數(shù)據(jù)。在一些實例中,gpu32可內(nèi)置有高度并行結(jié)構(gòu),所述高度并行結(jié)構(gòu)提供比cpu26更高效的復(fù)雜圖形相關(guān)操作的處理。舉例來說,gpu32可包含經(jīng)配置以并行方式對多個頂點或像素操作的多個處理元件。與使用cpu26激昂圖像直接繪制到顯示器38相比,高度并行結(jié)構(gòu)可允許gpu32更快速地將圖形圖像(例如gui和二維(2d)和/或三維(3d)圖形場景)繪制到顯示器38。
在一些實例中,gpu32可集成到計算裝置2的母板中。在其它實例中,gpu32可存在于圖形卡上,所述圖形卡安裝在計算裝置2的母板中的端口中或可以其它方式并入經(jīng)配置以與計算裝置2互操作的外圍裝置內(nèi)。gpu32可包含一或多個處理器,例如一或多個微處理器、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)、數(shù)字信號處理器(dsp)或其它等效的集成或離散邏輯電路。
如圖2的實例中示出,gpu32可直接耦合到圖形存儲器34。因此,gpu32可在無需使用總線40的情況下從圖形存儲器34讀取數(shù)據(jù)且將數(shù)據(jù)寫入到圖形存儲器34。換句話說,gpu32可使用本地存儲裝置而非芯片外存儲器來在本地處理數(shù)據(jù)。這可通過消除gpu32經(jīng)由總線40讀取和寫入數(shù)據(jù)的需要來允許gpu32以更高效的方式操作,其中經(jīng)由總線操作可經(jīng)歷繁重的總線業(yè)務(wù)。然而,在一些實例中,gpu32可不包含單獨的存儲器,而是經(jīng)由總線40利用系統(tǒng)存儲器30。圖形存儲器34可包含一或多個易失性或非易失性存儲器或存儲裝置,例如隨機(jī)存取存儲器(ram)、靜態(tài)ram(sram)、動態(tài)ram(dram)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、快閃存儲器、磁性數(shù)據(jù)媒體或光學(xué)存儲媒體。
cpu26和/或gpu32可將經(jīng)渲染的圖形圖像作為圖像數(shù)據(jù)存儲在幀緩沖器35中。幀緩沖器35可為獨立存儲器或可分配在系統(tǒng)存儲器30內(nèi)。顯示接口36可從幀緩沖器35檢索所述圖像數(shù)據(jù),且配置顯示器38以顯示由經(jīng)渲染的圖像數(shù)據(jù)表示的圖形圖像。在一些實例中,顯示接口36可包含數(shù)/模轉(zhuǎn)換器(dac),其經(jīng)配置以將從幀緩沖器35檢索的數(shù)字值轉(zhuǎn)換為可由顯示器38消耗的模擬信號。在其它實例中,顯示接口36可將數(shù)字值直接傳遞到顯示器38以用于處理。顯示器38可包含監(jiān)視器、電視機(jī)、投影裝置、液晶顯示器(lcd)、等離子顯示面板、發(fā)光二極管(led)陣列(例如有機(jī)led(oled)顯示器)、陰極射線管(crt)顯示器、電子紙張、表面?zhèn)鲗?dǎo)電子發(fā)射顯示器(sed)、激光電視顯示器、納米晶體顯示器或另一類型的顯示單元。如圖2的實例中示出,在一些實例中,顯示器38可集成在計算裝置2內(nèi)。舉例來說,顯示器38可為移動電話或頭戴式計算裝置的屏幕。或者,在一些實例中,顯示器38可為經(jīng)由有線或無線通信鏈路耦合到計算裝置2的獨立裝置。舉例來說,顯示器38可為經(jīng)由電纜或無線鏈路連接到個人計算機(jī)或其它計算裝置的計算機(jī)監(jiān)視器或平板顯示器。
根據(jù)本發(fā)明的一個實例,cpu26和/或gpu驅(qū)動器27可經(jīng)配置以產(chǎn)生用于渲染圖形圖像的渲染命令。gpu32可經(jīng)配置以執(zhí)行所述渲染命令,且至少部分地基于指示用戶視力缺陷的輸入來渲染經(jīng)校正的圖形圖像。在一些實例中,gpu32可經(jīng)配置以渲染所述經(jīng)校正的圖形圖像,作為執(zhí)行渲染命令的一部分。也就是說,所述渲染命令的至少一部分可致使gpu32使用基于所述接收到的輸入而修改的參數(shù)來渲染所述圖形圖像。在一些實例中,gpu32可經(jīng)配置以通過對圖形圖像進(jìn)行后處理來渲染所述經(jīng)校正的圖形圖像。也就是說,所述渲染命令可致使gpu32使用經(jīng)修改的參數(shù)來應(yīng)用后處理,以產(chǎn)生所述經(jīng)校正的圖形圖像。換句話說,在各種實例中,作為渲染過程的一部分和/或在圖形圖像的后處理期間,gpu32可渲染經(jīng)校正的圖形圖像。
圖3是說明經(jīng)配置以實施本發(fā)明的技術(shù)的處理單元(例如圖2的cpu26、gpu32和系統(tǒng)存儲器30)的一個實例的框圖。在圖3的實例中,cpu26可包含至少一個軟件應(yīng)用程序44、圖形api46和gpu驅(qū)動器27,其中的每一者可為cpu26上執(zhí)行的一或多個軟件應(yīng)用程序或服務(wù)。gpu32可包含圖形處理管線50,所述圖形處理管線包含一起操作以執(zhí)行圖形處理命令的多個圖形處理級。gpu32可經(jīng)配置以執(zhí)行圖形處理管線50,以至少部分地基于指示用戶視力缺陷的輸入來渲染經(jīng)校正的圖形圖像。舉例來說,在渲染處理期間和/或在后處理步驟期間,gpu32可考慮所述用戶的視力缺陷。如圖3的實例中所示,圖形處理管線50可包含命令引擎52、幾何處理級54、光柵化級56和像素處理管線58。圖形處理管線50中的組件中的每一者可實施為固定功能組件、可編程組件(例如作為在可編程著色器單元上執(zhí)行的著色器程序的一部分),或作為固定功能和可編程組件的組合。可用于cpu26和gpu32的存儲器可包含系統(tǒng)存儲器30和幀緩沖器35。幀緩沖器35可為系統(tǒng)存儲器30的一部分,或可與系統(tǒng)存儲器30分開。幀緩沖器35可存儲經(jīng)渲染的圖像數(shù)據(jù)。
軟件應(yīng)用程序44可為利用gpu32的功能性的任何應(yīng)用程序。舉例來說,軟件應(yīng)用程序44可為gui應(yīng)用程序、操作系統(tǒng)、便攜式映射應(yīng)用程序、用于工程或藝術(shù)應(yīng)用程序的計算機(jī)輔助設(shè)計程序、視頻游戲應(yīng)用程序或使用2d或3d圖形的另一類型的軟件應(yīng)用程序。
軟件應(yīng)用程序44可包含指令gpu32渲染圖形用戶接口(gui)和/或圖形場景的一或多個繪圖指令。舉例來說,繪圖指令可包含界定將由gpu32渲染的一組一或多個圖形基元的指令。在一些實例中,繪圖指令可共同地界定用于gui中的多個開窗表面的全部或部分。在額外實例中,所述繪圖指令可共同地定義圖形場景的全部或部分,所述圖形場景包含在由應(yīng)用程序定義的模型空間或世界空間內(nèi)的一或多個圖形對象。
軟件應(yīng)用程序44可經(jīng)由圖形api46調(diào)用gpu驅(qū)動器27,以將一或多個命令發(fā)布到gpu32,以用于將一或多個圖形基元渲染為可顯示的圖形圖像。舉例來說,軟件應(yīng)用程序44可經(jīng)由圖形api46調(diào)用gpu驅(qū)動器27以將基元定義提供給gpu32。在一些情況下,可將呈繪制基元(例如,三角形、矩形、三角扇、三角帶等)列表形式的基元定義提供給gpu32。基元定義可包含指定與將渲染的基元相關(guān)聯(lián)的一或多個頂點的頂點規(guī)格。所述頂點規(guī)格可包含每一頂點的位置坐標(biāo),且在一些情況下,包含與所述頂點相關(guān)聯(lián)的其它屬性,例如色彩坐標(biāo)、法向量和紋理坐標(biāo)。所述圖元定義還可包含圖元類型信息(例如,三角形、矩形、三角扇、三角帶等)、按比例縮放信息、旋轉(zhuǎn)信息及類似者。
基于由軟件應(yīng)用程序44發(fā)布到gpu驅(qū)動器27的指令,gpu驅(qū)動器27可調(diào)配指定供gpu32執(zhí)行的一或多個操作以便渲染所述圖元的一或多個命令。在gpu32從cpu26接收命令時,圖形處理管線50解碼所述命令且配置圖形處理管線50內(nèi)的一或多個處理元件以執(zhí)行所述命令中指定的操作。在執(zhí)行所述指定操作之后,圖形處理管線50將經(jīng)渲染的數(shù)據(jù)輸出到與顯示裝置(例如顯示器38)相關(guān)聯(lián)的幀緩沖器35。
gpu驅(qū)動器27可進(jìn)一步經(jīng)配置以編譯一或多個著色器程序,且將經(jīng)編譯的著色器程序下載到gpu32內(nèi)所包含的一或多個可編程著色器單元上。所述著色器程序可以任何著色語言編寫。經(jīng)編譯的著色器程序可包含控制gpu32內(nèi)的可編程著色器單元的操作的一或多個指令。舉例來說,著色器程序可包含頂點著色器程序和/或像素著色器程序。頂點著色器程序可控制可編程頂點著色器單元或統(tǒng)一著色器單元的執(zhí)行,且包含指定一或多個每頂點操作的指令。像素著色器程序可包含控制可編程像素著色器單元或統(tǒng)一著色器單元的執(zhí)行的像素著色器程序,且包含指定一或多個每像素操作的指令。根據(jù)本發(fā)明的一些實例實施例,像素著色器程序還可包含選擇性地致使基于源像素的對應(yīng)目的地阿爾法值而檢索源像素的紋理值的指令。
圖形處理管線50可經(jīng)配置以經(jīng)由gpu驅(qū)動器27從cpu26接收一或多個圖形處理命令,并執(zhí)行圖形處理命令來產(chǎn)生可顯示圖形圖像。如上文所論述,圖形處理管線50包含一起操作以執(zhí)行圖形處理命令的多個階段。然而,應(yīng)注意,所述級不需要一定實施在單獨的硬件塊中。舉例來說,幾何處理級54和像素處理管線58的部分可實施為統(tǒng)一著色器單元的部分。
命令引擎52可接收圖形處理命令,且配置圖形處理管線50內(nèi)的其余處理級以執(zhí)行用于進(jìn)行圖形處理命令的各種操作。圖形處理命令可包含(例如)繪圖命令和圖形狀態(tài)命令。繪圖命令可包含指定一或多個頂點(例如3d空間中的對象或圖元)的位置坐標(biāo)的頂點規(guī)格命令,且在一些情況下,與所述頂點中的每一者相關(guān)聯(lián)的其它屬性值,例如色彩坐標(biāo)、法向量、紋理坐標(biāo)和霧坐標(biāo)。所述圖形狀態(tài)命令可包含基元類型命令、變換命令、照明命令等。所述基元類型命令可指定將要渲染的基元的類型和/或頂點如何組合以形成基元。所述變換命令可指定對頂點執(zhí)行的變換的類型。所述照明命令可指定圖形場景內(nèi)的不同光的類型、方向和/或放置。命令引擎52可致使幾何處理級54相對于與一或多個所接收命令相關(guān)聯(lián)的頂點和/或基元執(zhí)行幾何處理。
幾何處理級54可對一或多個頂點執(zhí)行每頂點操作和/或基元設(shè)置操作,以便產(chǎn)生用于光柵化級56的基元數(shù)據(jù)。每一頂點可與一組屬性(例如,位置坐標(biāo)、色彩值、法向量和紋理坐標(biāo))相關(guān)聯(lián)。幾何處理級54根據(jù)各種每頂點操作而修改這些屬性中的一或多者。舉例來說,幾何處理級54可對頂點位置坐標(biāo)執(zhí)行一或多個變換以產(chǎn)生經(jīng)修改的頂點位置坐標(biāo)。幾何處理級54可(例如)將模型化變換、檢視變換、投影變換、模型視圖(modelview)變換、模型視圖投影(modelviewprojection)變換、視口變換以及深度范圍縮放變換中的一或多者應(yīng)用于頂點位置坐標(biāo),以產(chǎn)生經(jīng)修改的頂點位置坐標(biāo)。在一些情況下,頂點位置坐標(biāo)可為模型空間坐標(biāo),且經(jīng)修改的頂點位置坐標(biāo)可為屏幕空間坐標(biāo)??稍谒瞿P突?、檢視、投影和視口變換的應(yīng)用之后獲得屏幕空間坐標(biāo)。在一些情況下,幾何處理級54還可對頂點執(zhí)行每頂點照明操作,以產(chǎn)生頂點的經(jīng)修改的色彩坐標(biāo)。幾何處理級54還可執(zhí)行其它操作,包含(例如)正常變換、正常規(guī)格化操作、檢視量修剪、均勻劃分和/或隱面消除操作。
在一些實例中,幾何處理級54的全部或部分可由在一或多個著色器單元上執(zhí)行的一或多個著色器程序?qū)嵤?。例如,在此些實例中,幾何處理?4可由頂點著色器、幾何著色器或其任何組合實施。在其它實例中,可將幾何處理級54實施為固定功能硬件處理管線或?qū)嵤楣潭üδ苡布c在一或多個著色器單元上執(zhí)行的一或多個著色器程序的組合。
在一些實例中,為了產(chǎn)生為用戶視力缺陷校正的圖形圖像,幾何處理級54可使用經(jīng)修改的變換矩陣來將頂點在虛擬空間中的3d位置變換為所述頂點應(yīng)在經(jīng)渲染圖像中出現(xiàn)的2d坐標(biāo)。也就是說,幾何處理級54可使用由一或多個經(jīng)修改參數(shù)組成的變換矩陣來處理定義一或多個3d對象的數(shù)據(jù),以產(chǎn)生圖形圖像??苫诮邮盏降闹甘居脩粢暳θ毕莸男畔泶_定經(jīng)修改參數(shù)。舉例來說,幾何處理級54可使變換矩陣的一或多個參數(shù)乘以所確定的參數(shù)修改值,和/或使所確定的參數(shù)修改值與一或多個參數(shù)相加,以便創(chuàng)建經(jīng)修改的變換矩陣。通過使用經(jīng)修改的變換矩陣,幾何處理級54的所得輸出可不同于不基于用戶視力缺陷來修改變換矩陣參數(shù)將具有的輸出。
幾何處理級54可產(chǎn)生包含定義將被光柵化的基元的一組一或多個經(jīng)修改的頂點的基元數(shù)據(jù),以及指定頂點如何組合以形成基元的數(shù)據(jù)。所述經(jīng)修改的頂點中的每一者可包含(例如)與所述頂點相關(guān)聯(lián)的經(jīng)修改的頂點位置坐標(biāo)以及經(jīng)處理的頂點屬性值。所述基元數(shù)據(jù)可共同地對應(yīng)于將由圖形處理管線50的其它級光柵化的基元。在概念上,每一頂點可對應(yīng)于基元的其中所述基元的兩個邊緣會合的隅角。幾何處理級54可將基元數(shù)據(jù)提供到光柵化級56以用于進(jìn)一步處理。
光柵化級56經(jīng)配置以從幾何處理級54接收表示將被光柵化的基元的基元數(shù)據(jù),且光柵化所述基元以產(chǎn)生對應(yīng)于光柵化的基元的多個源像素。在一些實例中,光柵化級56可確定哪些屏幕像素位置由將被光柵化的基元覆蓋,且產(chǎn)生用于被確定為由基元覆蓋的每一屏幕像素位置的源像素。光柵化級56可通過使用所屬領(lǐng)域的技術(shù)人員已知的技術(shù)來去確定哪些屏幕像素位置由基元覆蓋,例如邊緣遍歷技術(shù)、評估邊緣等式等。光柵化級56可將所得源像素提供到像素處理管線58以用于進(jìn)一步處理。
光柵化步驟56所產(chǎn)生的源像素可對應(yīng)于屏幕像素位置,例如,目的地像素,且與一或多個色彩屬性相關(guān)聯(lián)。針對特定經(jīng)光柵化的基元所產(chǎn)生的所有源像素可稱為與經(jīng)光柵化的基元相關(guān)聯(lián)。由光柵化級56確定的將由基元覆蓋的像素可在概念上包含表示基元的頂點的像素、表示基元的邊緣的像素以及表示基元的內(nèi)部的像素。
像素處理管線58經(jīng)配置以接收與光柵化的基元或片段相關(guān)聯(lián)的源像素,且對所述源像素執(zhí)行一或多個每像素操作??捎上袼靥幚砉芫€58執(zhí)行的每像素操作包含(例如)阿爾法測試、紋理映射、色彩計算、像素著色、逐像素照明、霧處理、混合、像素所有權(quán)文本、源阿爾法測試、模板測試、深度測試、剪刀測試和/或點刻操作。另外,像素處理管線58可執(zhí)行一或多個像素著色器程序或片段著色器程序以執(zhí)行一或多個每像素或每片段操作。由像素處理管線58產(chǎn)生的所得數(shù)據(jù)可在本文中被稱作目的地像素數(shù)據(jù)且存儲在幀緩沖器35中。目的地像素數(shù)據(jù)可與幀緩沖器35中的具有與經(jīng)處理源像素相同的顯示位置的目的地像素相關(guān)聯(lián)。目的地像素數(shù)據(jù)可包含例如色彩值、目的地阿爾法值、深度值等的數(shù)據(jù)。
幀緩沖器35存儲用于gpu32的目的地像素。每一目的地像素可與唯一的屏幕像素位置相關(guān)聯(lián)。在一些實例中,幀緩沖器35可存儲每一目的地像素的色彩分量和目的地阿爾法值。舉例來說,幀緩沖器35可存儲每一像素的紅色、綠色、藍(lán)色、阿爾法(rgba)分量,其中“rgb”分量對應(yīng)于色彩值,且“a”分量對應(yīng)于目的地阿爾法值。雖然將幀緩沖器35和系統(tǒng)存儲器30說明為單獨的存儲器單元,但在其它實例中,幀緩沖器35可為系統(tǒng)存儲器30的部分。
在一些實例中,圖形處理管線50的一或多個組件可經(jīng)配置以經(jīng)由gpu驅(qū)動器27接收來自cpu26的后處理命令,且執(zhí)行所述后處理命令,以基于指示用戶視力缺陷的輸入來修改圖形圖像。舉例來說,命令引擎52可接收指定圖形圖像(例如存儲在幀緩沖器35處的目的地像素的集合)的命令,且配置圖形處理管線50的其余組件中的一或多者(例如像素處理管線58)來執(zhí)行所述命令。在一些實例中,像素處理管線58的像素著色器和/或片段著色器可將去卷積濾波器、模糊濾波器或其它圖像效應(yīng)應(yīng)用于所述圖形圖像,以考慮用戶視力。可基于指示用戶視力缺陷的輸入來確定用于此類濾波器或效應(yīng)的參數(shù)。因此,與不執(zhí)行后處理的情況相比,像素處理管線58的像素著色器和/或片段著色器的輸出可在用戶看起來更清楚。也就是說,通過對圖形圖像執(zhí)行各種濾波操作和/或其它后處理,像素處理管線58的著色器可提供實際上較損壞(例如模糊)的圖形圖像,但可由具有不完美視力的用戶感知為更正確。
以此方式,gpu32可經(jīng)配置以基于指示用戶視力缺陷的輸入來渲染經(jīng)校正的圖形圖像。在一些實例中,gpu32可利用基于所述輸入修改的參數(shù),作為執(zhí)行渲染命令的一部分。在一些實例中,gpu32可利用基于所述輸入修改的參數(shù),作為對圖形圖像進(jìn)行后處理的一部分。下文在圖4到6中提供關(guān)于此類參數(shù)的使用的進(jìn)一步實例和細(xì)節(jié)。
圖4是說明實施本發(fā)明的一或多種技術(shù)的實例過程的框圖。僅出于說明的目的,下文在圖1到3的上下文內(nèi)描述圖4的實例過程。在圖4的實例中,計算裝置2可經(jīng)配置以使用基于指示用戶的視力缺陷的輸入而修改的參數(shù)來產(chǎn)生圖形圖像。也就是說,計算裝置2可接收指示用戶的視力缺陷的輸入,確定適當(dāng)?shù)膮?shù)修改值,且在圖形圖像的渲染期間,使用根據(jù)所述參數(shù)修改值修改的參數(shù)。
在圖4的實例中,圖形處理管線50可執(zhí)行圖形渲染命令80。圖形渲染命令80可對應(yīng)于對經(jīng)渲染的圖形圖像的請求(例如通過在計算裝置2處執(zhí)行的應(yīng)用程序)。在一些實例中,圖形渲染命令80可包含繪圖命令和圖形狀態(tài)命令。在圖4的實例中,圖形渲染命令80可包含一或多個圖形狀態(tài)命令,以致使所述所請求的渲染考慮用戶的視力缺陷。舉例來說,圖形渲染命令80可包含對圖形處理管線50的一或多個組件(例如幾何處理級54和/或像素處理級58)的api的調(diào)用,從而指示以補(bǔ)償用戶的視力的方式來渲染所請求的圖形圖像。
作為一個實例,圖形渲染命令80可包含將插入到適當(dāng)?shù)膸缀涡螤钐幚碇髦械闹髦噶?。此類著色器指令可由gpu驅(qū)動器27用來插入命令,以使用基于指示用戶的視力缺陷的信息而修改的參數(shù)來渲染對應(yīng)的圖形圖像。作為另一實例,圖形渲染命令80可包含函數(shù)調(diào)用,以對從著色器輸出的位置進(jìn)行后處理。在其中應(yīng)用程序具有簡單著色器,且不想要修改著色器內(nèi)容的情況下,此類函數(shù)調(diào)用可有用。
在圖4的實例中,命令引擎52可接收圖形渲染命令80,且配置圖形處理管線50的一或多個其它組件來執(zhí)行圖形渲染命令80。舉例來說,命令引擎52可配置幾何處理級54以使用經(jīng)修改的參數(shù)來執(zhí)行變換,和/或可配置像素處理管線58,以使用經(jīng)修改的參數(shù)來執(zhí)行濾波。在圖4的實例中,命令引擎52可致使幾何處理級54和像素處理管線58兩者利用經(jīng)修改的參數(shù)。在一些實例中,命令引擎52可致使幾何處理級54或像素處理管線58中的一者使用經(jīng)修改的參數(shù)來執(zhí)行操作。也就是說,在各種實例中,經(jīng)校正的圖形圖像的產(chǎn)生可包含在幾何處理級(例如對頂點或其它幾何對象執(zhí)行操作)期間和/或像素處理級(例如對像素執(zhí)行操作,等)期間使用經(jīng)修改的參數(shù)。
作為處理圖形渲染命令80的一部分,幾何處理級54和/或像素處理管線58可接收或以其它方式獲得參數(shù)修改值84。舉例來說,gpu32可接收來自cpu26的參數(shù)修改值84,或可從系統(tǒng)存儲器30獲得參數(shù)修改值84。參數(shù)修改值84可指定幾何處理級54和/或像素處理管線58可用來修改渲染圖形圖像所涉及的參數(shù)的值。在一些實例中,參數(shù)修改值84可為濾波器的變換矩陣、值、系數(shù)或其它修改符的值、系數(shù)或其它修改符,或如何修改參數(shù)來考慮用戶的視力缺陷的其它指示。
在圖4的實例中,舉例來說,幾何處理級54可經(jīng)配置以使用基于參數(shù)修改值84修改的參數(shù)來執(zhí)行一或多個變換。此類變換可包含將模型空間變換為世界空間,將世界空間變換為相機(jī)空間,和/或?qū)⑾鄼C(jī)空間變換為均質(zhì)空間(或投影空間)。每一變換可利用一組參數(shù)(例如變換矩陣)來將圖像數(shù)據(jù)(例如模型的頂點)從一個空間變換到另一空間。舉例來說,可通過將模型矩陣應(yīng)用于模型的每一頂點來實現(xiàn)將模型空間變換為世界空間。
在一些實例中,模型矩陣可為可用于修改對象的頂點的值以便在空間中移動所述對象的矩陣。所述模型矩陣可由若干基礎(chǔ)矩陣組成,例如平移矩陣t、一或多個旋轉(zhuǎn)矩陣r,以及按比例縮放矩陣s,如下文所示。
如在以上實例中可見,所述模型矩陣的基礎(chǔ)矩陣包含定義將如何修改對象的頂點的參數(shù)值,以便增加或減小所述對象(例如sx、sy和sz參數(shù))的大小,旋轉(zhuǎn)所述對象(例如α參數(shù)),和/或移動所述對象(例如tx、ty和tz參數(shù))。因此,所得模型矩陣可用于在一個變換中按比例縮放、旋轉(zhuǎn)和平移對象的頂點。通過改變基礎(chǔ)矩陣的參數(shù)值,可修改所得模型矩陣,且將與所述參數(shù)值不變的情況不同地變換所述對象。換句話說,參數(shù)修改值84可指示sx、sy、sz、α、tx、ty或tz中的一或多者應(yīng)在變換頂點之前改變,作為渲染圖形圖像的一部分。
以類似方式,可通過將視圖矩陣應(yīng)用于世界空間中的頂點來實現(xiàn)將世界空間變換到相機(jī)空間中。修改視圖矩陣(或組成視圖矩陣的矩陣)的參數(shù)值將修改變換所述世界空間的方式。
可使用投影矩陣來實現(xiàn)將相機(jī)空間變換到均質(zhì)空間(或投影空間)中。下文示出實例投影矩陣p。
修改投影矩陣的參數(shù)也將改變變換相機(jī)空間的方式。舉例來說,如果參數(shù)修改值84指定上文投影矩陣中所示的“附近”值的修改符,那么這將通過修改附近平面的位置以將內(nèi)容變換到均質(zhì)空間,來修改在顯示器上顯示投影的方式。修改上文投影矩陣中所示的“附近”值可對應(yīng)于修改所得圖形圖像中顯示的對象的焦點。也就是說,附近參數(shù)可定義所述圖像的焦平面。
在圖4的實例中,幾何處理級54可通過使用基于參數(shù)修改值84修改的參數(shù)來渲染圖形圖像,來考慮各種用戶視力缺陷。舉例來說,用戶可使用具有兩個顯示器(每只眼睛一個)的頭戴式計算裝置。所述用戶可能有問題而無法用兩只眼睛正確地聚焦在立體聲圖形圖像的相同位置上。在此實例中,計算裝置2可使用本文所述的技術(shù)來確定參數(shù)修改值84,其包含水平轉(zhuǎn)變參數(shù)和/或垂直轉(zhuǎn)變參數(shù)的參數(shù)修改值。幾何處理級54可將參數(shù)修改值84應(yīng)用于水平和/或垂直轉(zhuǎn)變參數(shù)的基礎(chǔ)值,以創(chuàng)建經(jīng)修改的變換矩陣,且從而渲染考慮所述用戶所經(jīng)歷的差焦點的圖形圖像。也就是說,一個或兩個顯示器可顯示修改為針對所述用戶的相應(yīng)眼睛“在中心”的圖形圖像。各種其它參數(shù)修改值可由幾何處理級54使用,包含水平、垂直或深度按比例縮放參數(shù)修改值;水平、垂直或深度轉(zhuǎn)變參數(shù)修改值;旋轉(zhuǎn)參數(shù)修改值;附近平面位置參數(shù)修改值,或其它參數(shù)修改值。
在圖4的實例中,像素處理管線58可經(jīng)配置以使用基于參數(shù)修改值84修改的參數(shù)來執(zhí)行一或多個操作。此類操作可包含各種模糊濾波器、去模糊濾波器(例如去卷積濾波器)或其它濾波器的應(yīng)用。操作還可包含變換的應(yīng)用,例如基于徑向失真、基于鏡頭投影來變換像素的操作(例如校正光學(xué)鏡片的特性的變換),以及其它變換。此類操作可取決于各種參數(shù),例如指示將應(yīng)用的模糊或去卷積的等級、將用于鏡頭投影或鏡頭補(bǔ)償投影的鏡頭的大小,以及可經(jīng)修改以修改所得像素的任何其它值的參數(shù)。
由于使用經(jīng)修改的參數(shù)值來執(zhí)行變換和濾波,因此圖形處理管線50可渲染經(jīng)校正的圖形圖像,例如經(jīng)校正的圖像88。根據(jù)本發(fā)明的技術(shù),經(jīng)校正的圖像88可考慮用戶視力校正的等級,從而向所述用戶提供在用戶看起來較正確的圖形圖像,即使在用戶不具有完美視力且不佩戴例如眼鏡或隱形眼鏡的視力校正工具時。通過將視力校正api暴露于在計算裝置2處執(zhí)行且使用基于指示用戶的視力缺陷的輸入修改的參數(shù)值來渲染圖形圖像的應(yīng)用程序,本文所述的技術(shù)可允許計算裝置2更準(zhǔn)確考慮用戶的視力。
圖5是說明實施本發(fā)明的一或多種技術(shù)的實例過程的框圖。僅出于說明的目的,下文在圖1到3的上下文內(nèi)描述圖4的實例過程。在圖5的實例中,計算裝置2可經(jīng)配置以通過使用基于指示用戶的視力缺陷的輸入修改的參數(shù)來將后處理應(yīng)用于圖形圖像,來產(chǎn)生經(jīng)校正的圖形圖像。也就是說,計算裝置2可接收指示用戶的視力缺陷的輸入,確定適當(dāng)?shù)膮?shù)修改值,且使用基于所述值修改的參數(shù)來對圖形圖像進(jìn)行后處理,以產(chǎn)生經(jīng)校正的圖形圖像。
在圖5的實例中,圖形處理管線50可執(zhí)行圖形渲染命令100。圖形渲染命令100可對應(yīng)于對經(jīng)渲染的圖形圖像的請求(例如通過在計算裝置2處執(zhí)行的應(yīng)用程序)。通過執(zhí)行圖形渲染命令100,圖形處理管線50可渲染未校正的圖像102。
在圖5的實例中,未校正的圖像102可表示并不補(bǔ)償用戶的視力缺陷的圖形圖像。也就是說,如果向顯示裝置顯示,那么未校正的圖像102可在具有完美視力的用戶看起來聚焦,但在不具有完美視力的那些用戶看起來離焦或在其它方面不正確。在一些實例中,在渲染未校正的圖像102之后,gpu32可存儲未校正的圖像102(例如存儲在圖形存儲器34內(nèi))。
在圖5的實例中,gpu32可利用圖形處理管線50的像素處理管線58,來修改未校正的圖像102以考慮用戶的視力疾病。舉例來說,gpu32可致使像素處理管線58基于使用參數(shù)修改值104確定的參數(shù)來執(zhí)行后處理。后處理可包含如上文關(guān)于圖4所描述的像素處理管線58可執(zhí)行的各種操作。也就是說,在圖5的實例中,像素處理管線58可操作以將各種濾波器應(yīng)用于像素數(shù)據(jù),對所述像素數(shù)據(jù)執(zhí)行各種變換(例如補(bǔ)償或應(yīng)用鏡頭投影),以及其它操作。
使用基于參數(shù)修改值104確定的參數(shù)的后處理可產(chǎn)生經(jīng)校正的圖像106。根據(jù)本發(fā)明的技術(shù),經(jīng)校正的圖像106可考慮用戶視力缺陷的等級,從而向所述用戶提供在用戶看起來較正確的圖形圖像,即使在用戶不具有完美視力且不佩戴例如眼鏡或隱形眼鏡的視力校正工具時。通過利用后處理步驟修改經(jīng)渲染的未校正的圖像且產(chǎn)生經(jīng)校正的圖像,本文所述的技術(shù)可使計算裝置能夠校正用戶的視力減損,而無應(yīng)用程序的參與。也就是說,通過經(jīng)由后處理產(chǎn)生經(jīng)校正的圖形圖像,用戶視力校正過程可為應(yīng)用程序不可知的。
圖6是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置2以及圖形圖像160和162的框圖。僅出于說明的目的,下文在圖1到3的上下文內(nèi)描述圖6的實例。
如圖6的實例中示出,計算裝置2可經(jīng)配置以輸出圖形圖像160和162,作為用于獲得指示用戶視力缺陷的反饋的gui的一部分。接收到的反饋可用于確定可用來確定用于渲染在用戶看起來較正確的圖形圖像的參數(shù)修改值。也就是說,在圖6的實例中描述的過程可使計算裝置2的用戶能夠提供計算裝置2可用來確定用于渲染圖形圖像的經(jīng)修改參數(shù)的輸入。在一些實例中,例如當(dāng)計算裝置2包含兩個或更多個顯示器(例如頭戴式耳機(jī)的立體聲顯示器),在圖6的實例中描述的過程可為每一顯示器執(zhí)行。也就是說,計算裝置2可為每一顯示器(例如對應(yīng)于用戶的相應(yīng)眼睛)確定一或多個參數(shù)修改值。在一些實例中,在圖6的實例中描述的過程可在顯示器的一或多個部分上(例如不在顯示器整體上,而是在特定區(qū)或部分上)執(zhí)行。
在圖6的實例中,gpu32可渲染圖形圖像160,以向顯示器38顯示。舉例來說,顯示器38可在用戶對計算裝置2的初始設(shè)置和配置期間,或響應(yīng)于計算裝置2接收指令計算裝置2確定用戶的視力缺陷(例如通過存取計算裝置2所執(zhí)行的設(shè)置配置應(yīng)用程序),輸出圖形圖像160。當(dāng)渲染圖形圖像160時,gpu32可不校正用戶視力缺陷。也就是說,可在不考慮用戶的視力的任何缺陷的情況下,可渲染圖形圖像160。因此,圖形圖像160在具有不完美視力的用戶看起來可能模糊或離焦。
響應(yīng)于向顯示器38顯示圖形圖像160,在圖6的實例中,計算裝置2可接收指令計算裝置2繼續(xù)視力校正確定的用戶輸入。舉例來說,用戶可按壓計算裝置2的按鈕(例如物理按鈕、向觸敏或存在敏感顯示器顯示的用戶接口元件等),按壓以通信方式耦合到計算裝置2的裝置的按鈕,說出話音命令(例如“繼續(xù)”、“好”等),或以其它方式向計算裝置2指示用戶希望繼續(xù)。
在圖6的實例中,響應(yīng)于接收到來自用戶的指令計算裝置2繼續(xù)的輸入,計算裝置2可致使所顯示的圖形圖像以某一方式遞增地改變。舉例來說,gpu32可渲染圖形圖像160的漸進(jìn)版本以用于輸出到顯示器38,同時將遞增地不同的參數(shù)值用于模糊濾波器(例如由像素處理管線58應(yīng)用)。舉例來說,gpu32可使用極小的參數(shù)值來渲染圖形圖像160的第一版本,且顯示器38可顯示所述第一版本。可在短時間(例如5秒、1秒、2秒或其它持續(xù)時間)內(nèi)顯示圖形圖像160的每一版本。
gpu32可使用從用于渲染所述第一版本的參數(shù)值稍微增加的參數(shù)值來渲染圖形圖像160的第二版本,且顯示器38可顯示所述第二版本。舉例來說,如果gpu32使用指示將應(yīng)用的模糊等級(例如按標(biāo)度0到10)的參數(shù)的值0.1來渲染所述第一版本,那么gpu32可使用參數(shù)值0.2來渲染所述第二版本。此遞增增加可繼續(xù),直到gpu32使用所定義的最大參數(shù)值(例如10.0)來渲染圖形圖像160的版本。一旦達(dá)到所定義的最大參數(shù)值,gpu32可開始使用遞增地較小的參數(shù)值來渲染圖形圖像160的版本。以此方式,計算裝置2可顯示循環(huán)通過各種程度的圖像修改的圖形圖像。在一些實例中,計算裝置2可循環(huán)通過每一參數(shù)一次(例如從最小值到最大值)。在一些實例中,計算裝置2可循環(huán)通過每一參數(shù)多次(例如從最小值到最大值,且接著返回到最小值)。
在一些實例中,對于圖形圖像160的每一版本,計算裝置2可循環(huán)通過多于一個參數(shù)。舉例來說,gpu32可渲染圖形圖像160的版本,同時循環(huán)通過對應(yīng)于圖形圖像160的水平軸的按比例縮放的第一參數(shù),且接著同時循環(huán)通過對應(yīng)于圖形圖像160的垂直軸線的按比例縮放的第二參數(shù)。作為另一實例,gpu32可渲染圖形圖像160的版本,同時循環(huán)通過模糊濾波器中所涉及的第一參數(shù),以及去卷積濾波器中所涉及的第二參數(shù)。以此方式,計算裝置2可顯示也循環(huán)通過針對各種程度和/或類型的視力疾患的補(bǔ)償?shù)膱D形圖像。
因為計算裝置2顯示使用漸進(jìn)地增加或減小的參數(shù)值來渲染的圖形圖像160的版本,所以在圖6的實例中,當(dāng)用戶認(rèn)為所顯示的圖形圖像看起來較好(例如較聚焦、較恰當(dāng)?shù)爻杀壤?,或以其它方式改進(jìn))時,計算裝置2可接收來自用戶的輸入。舉例來說,當(dāng)圖形圖像160的當(dāng)前顯示的版本看起來比其它所顯示版本好時,用戶可推按鈕、提供話音輸入,或以其它方式向計算裝置2提供指示。在一些實例中,計算裝置2可接收單個指示。在其它實例中,例如當(dāng)計算裝置2循環(huán)通過值多次時,計算裝置2可接收多個指示,從而提供小范圍的可能參數(shù)值。
在圖6的實例中,計算裝置2可基于所述接收到的指示來確定近似參數(shù)修改值。舉例來說,當(dāng)計算裝置2接收到所顯示的圖形圖像看起來聚焦的單個指示時,計算裝置2可將近似參數(shù)修改值確定為用以渲染在接收到所述指示時顯示的圖形圖像的參數(shù)值。作為另一實例,當(dāng)計算裝置2接收所顯示的圖形圖像看起來聚焦的兩個或更多個指示時,計算裝置2可將近似參數(shù)修改值確定為用以渲染在接收到每一指示時顯示的相應(yīng)圖形圖像的每一值的平均值。在又其它實例中,計算裝置2可將近似參數(shù)修改值確定為具有最對應(yīng)指示的值,或以某一其它方式。換句話說,計算裝置2可基于所述接收到的指示來確定一或多個近似參數(shù)修改值。
gpu32可使用基于近似參數(shù)修改值確定的參數(shù)值來渲染圖形圖像162,且顯示器38可輸出大致經(jīng)校正的圖形圖像以供顯示。其后,計算裝置2可接收指令計算裝置2重復(fù)所述過程的輸入或指令計算裝置2繼續(xù)所述所確定的近似參數(shù)修改值的輸入。舉例來說,計算裝置2可接收指令計算裝置2繼續(xù)基于所述所確定的近似值來確定較確切參數(shù)修改值的輸入(例如按鈕的按壓、話音輸入等)。
以此方式,計算裝置2可使用戶能夠提供指示視力缺陷的信息,且可確定用于渲染圖形圖像的參數(shù)修改值,而用戶不必手動輸入值。舉例來說,當(dāng)用戶并不知道用戶的鏡片處方或具有對各種圖形處理技術(shù)的了解時,這可為有用。另外,雖然顯示器38與用戶的眼睛之間的距離可在確定參數(shù)修改值時分解,但可在圖6的實例過程中使用固定近似值。
圖7是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置2以及圖形圖像180、184和186的框圖。僅出于說明的目的,下文在圖1到3的上下文內(nèi)描述圖7的實例。
如圖7的實例中示出,計算裝置2可經(jīng)配置以輸出圖形圖像180、184和186,作為用于通過經(jīng)由一系列選擇引導(dǎo)用戶選擇看起來較正確的圖像部分來獲得指示用戶視力缺陷的反饋的gui的一部分。接收到的反饋可用于在渲染后續(xù)圖形圖像以便使所述后續(xù)圖形圖像在所述用戶看起來較正確時,確定可考慮的參數(shù)修改值。在一些實例中,在圖7的實例中描述的過程可使計算裝置2的用戶能夠“微調(diào)”參數(shù)修改值。圖7的過程可根據(jù)本文所述的技術(shù),使計算裝置2能夠向用戶提供更清楚、更聚焦的圖形圖像。在一些實例中,例如當(dāng)計算裝置2包含兩個或更多個顯示器(例如立體聲顯示器)時,在圖7的實例中描述的過程可為每一顯示器執(zhí)行。換句話說,計算裝置2可為每一顯示器確定一或多個相應(yīng)參數(shù)修改值。
在一些實例中,計算裝置2可在用戶提供指令計算裝置2在執(zhí)行在圖6的實例中描述的過程之后繼續(xù)的輸入之后,執(zhí)行在圖7的實例中描述的過程。在一些實例中,計算裝置2可響應(yīng)于接收到選擇一或多個近似參數(shù)修改值的輸入(例如話音輸入、所顯示的值的選擇,或輸入的其它途徑),執(zhí)行在圖7的實例中描述的過程。也就是說,在一些實例中,計算裝置2可執(zhí)行圖7中所描述的過程,從先前確定的或接收到的近似參數(shù)修改值獲得確切的參數(shù)修改值。在一些實例中,計算裝置2可基于指令計算裝置2確定參數(shù)修改值的輸入來執(zhí)行在圖7的實例中描述的過程。也就是說,在一些實例中,計算裝置2可確定特定參數(shù)修改值,而不先前確定近似值。
在圖7的實例中,計算裝置2可能已存儲用于模糊濾波器參數(shù)的近似修改值0.3。也就是說,當(dāng)圖形圖像經(jīng)受具有超過正常的額外0.3單元的模糊濾波器時,計算裝置2的用戶可能已提供了輸入,或以其它方式指示他或她將圖像感知為較正確。所述輸入或指示可能已通過用戶輸入值0.3、提供根據(jù)經(jīng)驗指示值0.3(或平均到0.3的值)的輸入,或以其它方式提供可用于確定近似模糊參數(shù)修改值0.3的輸入來提供。
至少部分地基于近似值0.3,在圖7的實例中,gpu32可渲染圖形圖像180,以向顯示器38顯示。圖形圖像180可包含使用不同參數(shù)值渲染的內(nèi)容,用戶可從中選擇“較好”的觀察內(nèi)容。也就是說,gpu32可渲染圖形圖像180的至少兩個部分(例如部分182a和182b)??墒褂貌煌瑓?shù)值來渲染每一部分。舉例來說,可使用參數(shù)值0.25來渲染部分182a,而可使用參數(shù)值0.35來渲染部分182b。因此,所述內(nèi)容的一個部分在用戶看起來比其它部分正確。
在圖7的實例中,在顯示圖形圖像180之后,計算裝置2可接收指示部分182a的選擇的輸入(例如話音輸入、觸摸式輸入、使用物理按鈕或鍵的輸入,或其它輸入)。也就是說,用戶可指示他或她認(rèn)為部分182a看起來比部分182b好或聚焦。
基于部分182a的接收到的選擇,在圖7的實例中,gpu32可渲染圖形圖像184。圖形圖像184包含部分186a和186b??墒褂脜?shù)值0.25來渲染部分186a,而可使用值0.3來渲染部分186b。也就是說,因為用戶指示了第一圖形圖像的基于參數(shù)值0.25渲染的部分看起來比第一圖形圖像的使用0.35渲染的部分好,所以在圖7的實例中,計算裝置2可使用值0.25和0.3來渲染第二圖像的部分(例如186a和186b),以確定用戶的視力是否需要較少校正,或最佳校正是否使用介于0.25與0.3之間的參數(shù)修改值。
在圖7的實例中,計算裝置2可接收指示部分186b的選擇的輸入。也就是說,用戶可指示使用值0.3渲染的內(nèi)容看起來比使用值0.25渲染的內(nèi)容準(zhǔn)確。基于所述接收到的輸入,計算裝置2可確定用戶的視力可能將得益于更接近0.3而不是0.25的參數(shù)值。
在接收到輸入選擇部分186b之后,計算裝置2可渲染和顯示具有使用0.275和0.3渲染的部分的另一圖形圖像(未圖示)。計算裝置2可接收所述部分(例如使用0.275渲染的部分)中的一者的選擇?;谒鲞x擇,計算裝置2可渲染和顯示具有使用0.275和0.288渲染的部分的另一圖形圖像(未圖示)。計算裝置2可繼續(xù)以類似方式來使用戶的選擇縮小到確切參數(shù)值,從而輸出圖形圖像的使用不同參數(shù)值渲染的兩個部分,接收所述部分中的一者的輸入選擇,且輸出具有使用新參數(shù)值渲染的部分的后續(xù)圖形圖像。
在一些實例中,此過程可繼續(xù),直到用戶指示圖形圖像的任一部分都看起來不比其它部分準(zhǔn)確。在一些實例中,此過程可繼續(xù),直到用戶已在三個連續(xù)圖形圖像中在兩個值之間來回,或以其它方式到達(dá)其中參數(shù)值的任何差異可忽略的(例如1、0.05、0.001或其它值)的點。換句話說,在各種實例中,圖7的過程可一次向用戶呈現(xiàn)兩個圖像,基于參數(shù)的不同值來渲染每一圖像。所述參數(shù)可繼續(xù)改變連續(xù)圖像中的值,直到用戶停止將圖像唯一地識別為“較好”。在一些實例中,上文所述的過程可另外或替代地使用其它參數(shù)(例如用以考慮其它視力問題的用于位置轉(zhuǎn)變的參數(shù)、去卷積濾波器的參數(shù)等)的不同值來執(zhí)行。在一些實例中,所述過程可另外或替代地使用識別用戶的視力缺陷的其它方法來執(zhí)行。
在用戶已指示所顯示的圖形圖像的兩個部分之間看起來不存在差異或以其它方式提供致使計算裝置2確定確切參數(shù)修改值的輸入之后,gpu32可渲染圖形圖像188,以向顯示器38顯示??墒褂盟鏊_定的確切參數(shù)修改值來渲染圖形圖像188。因此,圖形圖像188可在用戶看起來較正確。其后,計算裝置2可在執(zhí)行本文所述的技術(shù)時使用所述所確定的確切參數(shù)修改值來產(chǎn)生經(jīng)校正的圖形圖像。
圖8是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置2以及圖形圖像190、192和194的框圖。僅出于說明的目的,下文在圖1到3的上下文內(nèi)描述圖8的實例。
如圖8的實例中示出,計算裝置2可經(jīng)配置以輸出圖形圖像192、194和196,作為gui的用于獲得指示用戶的視力缺陷的反饋的部分。計算裝置2可利用所述接收到的反饋來確定參數(shù)修改值。計算裝置2和/或其它計算裝置可使用所述所確定的參數(shù)修改值來確定可在圖像渲染期間使用的參數(shù)值,以產(chǎn)生考慮用戶的視力缺陷的圖形圖像。
如圖8的實例中示出,圖形圖像192、194和196包含若干對象。這些對象可表示一組訓(xùn)練數(shù)據(jù),其可輔助用戶來提供指示用戶的視力問題的反饋。為了獲得有用的反饋,可預(yù)先告知用戶所述訓(xùn)練數(shù)據(jù)的性質(zhì)。也就是說,計算裝置2(或計算裝置2的手冊、啟動引導(dǎo)或任何其它材料)可告知用戶存在于訓(xùn)練數(shù)據(jù)中的對象(例如形狀、位置和/或其它信息),使得所述用戶知道他或她假設(shè)看見什么。在圖8的實例中,舉例來說,可告知用戶他或她假設(shè)看見3個同心圓,所述同心圓中的兩個完全可見,且一個垂直延伸離開屏幕;以及越過所述圓的中心的兩個相等長度的直線,一個水平且一個垂直。雖然圖8中使用簡單的2d對象,但在其它實例中,訓(xùn)練數(shù)據(jù)可為任何數(shù)目的2d和/或3d圖像或視頻。舉例來說,在一些實例中,所述訓(xùn)練數(shù)據(jù)可包含在3d球體上繪制的2d同心圓。在一些實例中,可個別地向用戶的每只眼睛示出訓(xùn)練數(shù)據(jù)。舉例來說,可與向用戶的右眼示出的訓(xùn)練數(shù)據(jù)獨立地向用戶的左眼示出訓(xùn)練數(shù)據(jù)。
在圖8的實例中,gpu32可渲染圖形圖像192,以向顯示器38顯示。舉例來說,顯示器38可在計算裝置2的初始設(shè)置和配置期間,輸出圖形圖像192??稍诓豢紤]用戶的視力的任何缺陷的情況下,可渲染圖形圖像192。因此,圖形圖像192可以一或多種方式在具有不完美視力的用戶看起來不正確。如在圖8的實例中所見,舉例來說,用戶可具有散光或其它視力疾病,其致使水平軸與垂直軸不同地對焦。因此,雖然圖形圖像192可顯示三個同心圓以及兩個相等長度線,但用戶可感知三個橢圓形以及兩條不等長度的線。換句話說,盡管使用未經(jīng)修改的變換矩陣來渲染表示三個圓和兩條線的數(shù)據(jù),但所得圖形圖像可在用戶看起來沿水平軸具有比沿垂直軸線大的比例縮放因子。
為了確定修改圖像渲染以考慮用戶的視力缺陷的方式,計算裝置2可致使所顯示的圖形圖像以各種方式遞增地改變,且獲得來自用戶的關(guān)于所顯示的圖像的反饋。所述反饋可指示用戶對所顯示的圖像的感知。舉例來說,gpu32可渲染圖形圖像192的漸進(jìn)版本,以用于輸出到顯示器38,同時將遞增地不同參數(shù)值用于一或多個變換矩陣的各種參數(shù)。計算裝置2可接收指示如由用戶感知的圖像是否對應(yīng)于訓(xùn)練數(shù)據(jù)的描述的輸入。
圖8的實例可表示計算裝置2可遞增地改變圖形圖像192的一種方法。在圖8的實例中,gpu32可將漸進(jìn)地不同值用于變換矩陣的水平按比例縮放參數(shù)。如果使用水平按比例縮放參數(shù)值0來渲染圖形圖像192,那么例如gpu32可用水平按比例縮放參數(shù)值-0.2來渲染后續(xù)圖像(例如圖形圖像194),且輸出所述圖像來顯示。之后,gpu32可用水平按比例縮放參數(shù)值-0.4、-0.6、-0.8等等來渲染較多圖形圖像(未圖示)。
在給定訓(xùn)練數(shù)據(jù)的先前描述的情況下,在檢視所顯示的圖像中的一或多者后,用戶可即刻提供指示所顯示圖像是否與用戶期望看見的圖像對準(zhǔn)的輸入。舉例來說,用戶可提供指示所顯示的圖形圖像比先前顯示的圖形圖像“好”還是“壞”;當(dāng)前正修改的參數(shù)應(yīng)較大、較小還是原來就是正確的的輸入,或指示用戶對所述圖像的感知的其它輸入??梢匀舾煞绞街械娜我徽咛峁┯脩糨斎耄缈陬^輸入、按鈕或gui元件的按壓或其它輸入。
在圖8的實例中,此過程可繼續(xù),其中計算裝置2輸出連續(xù)圖像,且用戶提供反饋輸入。在一些實例中,用戶對所顯示的圖形圖像的感知可最終與用戶的期望匹配。舉例來說,gpu32可渲染圖形圖像196以供顯示??墒褂盟桨幢壤s放參數(shù)值-0.4來渲染圖形圖像196。
如圖8中所見,基于訓(xùn)練數(shù)據(jù)的描述,圖形圖像196中(用戶的感知中)的對象可與用戶的期望匹配。計算裝置2可接收指示用戶對用以渲染圖形圖像196的水平按比例縮放參數(shù)值的滿足的用戶輸入?;诖溯斎?,計算裝置2可確定所述參數(shù)的修改值。也就是說,基于指示導(dǎo)致用戶感知正確圖像的水平按比例縮放參數(shù)值的用戶輸入,計算裝置2可確定用于后續(xù)水平按比例縮放參數(shù)值的修改值。在圖8的實例中,舉例來說,計算裝置2可確定參數(shù)修改值-0.6。
之后,gpu32可基于所述參數(shù)修改值來修改初始參數(shù)值,以便確定用于渲染圖形圖像的參數(shù)值。舉例來說,如果用于待呈現(xiàn)的對象的初始水平按比例縮放參數(shù)值為0.2,那么gpu32可將參數(shù)修改值-0.6與初始參數(shù)值0.2相加,從而得出參數(shù)值-0.4。gpu32接著可在對象的渲染期間使用所得參數(shù)值-0.4。
雖然相對于水平按比例縮放參數(shù)來描述,但在圖8的實例中描述的過程可針對如本文所述的各種其它參數(shù)值類似地執(zhí)行。舉例來說,可針對垂直按比例縮放參數(shù)、總按比例縮放參數(shù)、垂直和/或水平轉(zhuǎn)變參數(shù)、旋轉(zhuǎn)參數(shù)和其它參數(shù)來執(zhí)行所述過程。在一些實例中,計算裝置2可首先確定與圖形圖像的形狀方面有關(guān)的參數(shù)。計算裝置2可接下來基于后續(xù)用戶反饋確定所述對象的焦點。在一些實例中,例如在其中計算裝置2包含多個顯示器(例如立體聲顯示器)的實例中,計算裝置2也可確定與由所顯示的圖形圖像產(chǎn)生的所感知深度方面有關(guān)的參數(shù)。舉例來說,計算裝置2可渲染并顯示圖形圖像的各種立體聲版本,直到所述用戶指示圖形圖像中的對象恰當(dāng)?shù)乜雌饋硎侨S的。
圖9是說明根據(jù)本發(fā)明的技術(shù)的用于獲得指示用戶視力缺陷的信息的實例計算裝置2和圖形圖像的框圖。僅出于說明的目的,下文在圖1到3的上下文內(nèi)描述圖9的實例。
如圖9的實例中所示,計算裝置2可經(jīng)配置以輸出圖形圖像,例如圖形圖像200、202和204,以便獲得指示用戶的視力缺陷的反饋,和/或糾正用戶的視力缺陷。在一些實例中,用戶的視力缺陷可能不是統(tǒng)一的。也就是說,用戶可具有導(dǎo)致用戶在超過其它區(qū)域中的檢視的一些區(qū)域中的視力失真的各種視力問題。為了補(bǔ)償此類缺陷,本發(fā)明的技術(shù)可以不均勻方式應(yīng)用于顯示器的各種部分,從而提供在無其它區(qū)域中的過度校正的情況下所需的較強(qiáng)和/或不同校正。
圖形圖像200提供具有不同區(qū)201a和201b的經(jīng)校正的圖形圖像的一個實例。在圖9的實例中,gpu32可基于第一組一或多個參數(shù)值來渲染區(qū)201a,且基于第二組一或多個參數(shù)值來渲染區(qū)201b。在各種實例中,所述組參數(shù)值中的一者或兩者可包含基于使用本文所述的技術(shù)來確定的參數(shù)修改值的參數(shù)值。舉例來說,可使用第一模糊參數(shù)值來渲染區(qū)201a,同時使用第二模糊參數(shù)值來渲染區(qū)201b。
圖形圖像202提供具有不同區(qū)203a到203d的經(jīng)校正的圖形圖像的另一實例。在圖9的實例中,gpu32可使用不同組參數(shù)值來渲染區(qū)203a到203d中的每一者。圖形圖像204提供具有不同區(qū)205a和205b的經(jīng)校正的圖形圖像的第三實例。gpu32可使用與用于渲染區(qū)205b的參數(shù)值集合不同的參數(shù)值集合來渲染區(qū)205a。
本發(fā)明的技術(shù)可用于使用針對具有任何大小或形狀的任何數(shù)目的區(qū)的不同參數(shù)值來渲染圖形圖像。舉例來說,可確定不同參數(shù)修改值,且應(yīng)用于大量同心圓區(qū)的中的每一者。作為另一實例,可確定不同參數(shù)修改值,且應(yīng)用于單個圖像中的大量不同正方形區(qū)??筛鶕?jù)本文所述的技術(shù)來使用各種其它形狀和大小的區(qū)。
圖10是說明經(jīng)配置以實施本發(fā)明的技術(shù)的計算裝置的實例操作的流程圖。僅出于說明的目的,下文在圖1到3的上下文內(nèi)描述圖10的實例操作。
在圖10的實例中,計算裝置2可輸出多個測試圖形圖像以供顯示。可基于相應(yīng)組的一或多個參數(shù)測試值來產(chǎn)生(例如通過gpu32)來自所述多個測試圖形圖像的每一測試圖形圖像。舉例來說,gpu32可基于第一組參數(shù)測試值來產(chǎn)生第一測試圖形圖像,基于第二組參數(shù)測試值來產(chǎn)生第二測試圖形圖像,等等。在一些實例中,所述多個測試圖形圖像中的每一者可依次地輸出以供計算裝置2顯示,而在其它實例中,同時可輸出所述多個測試圖形圖像中的兩個或更多個以供顯示。
在圖10的實例中,計算裝置2可接收指示用戶對至少一個測試圖形圖像的感知的輸入(302)。舉例來說,當(dāng)顯示特定測試圖形圖像時,計算裝置2可接收按鈕按壓或話音輸入,可接收指示所述特定測試圖形圖像的輸入(例如當(dāng)同時顯示多于一個測試圖形圖像時),或接收指示用戶對至少一個測試圖形圖像的感知的其它輸入。在一些實例中,計算裝置2可接收單個輸入。在其它實例中,計算裝置2可接收多于一個輸入。
在圖10的實例中,計算裝置2可至少部分地基于所述接收到的輸入來確定至少一個參數(shù)修改值(304)。舉例來說,當(dāng)接收到與單個特定測試圖形圖像相關(guān)聯(lián)的單個輸入時,計算裝置2可確定參數(shù)修改值將和與所述特定測試圖形圖像相關(guān)聯(lián)的參數(shù)測試值相同。當(dāng)接收到多個輸入(例如與多個測試圖形圖像相關(guān)聯(lián))時,計算裝置2可通過求與所述多個測試圖形圖像相關(guān)聯(lián)的參數(shù)測試值求平均值或以某些其它方式基于與所述多個測試圖形圖像相關(guān)聯(lián)的參數(shù)測試值,來確定參數(shù)修改值。
在圖10的實例中,計算裝置2可基于所述至少一個參數(shù)修改值來產(chǎn)生經(jīng)校正的圖形圖像(306)。在一些實例中,計算裝置2(例如gpu32)可使用基于至少一個參數(shù)修改值確定的經(jīng)修改的變換矩陣來渲染經(jīng)校正的圖形圖像。在一些實例中,計算裝置2(例如gpu32)可另外或替代地使用基于至少一個參數(shù)修改值確定的參數(shù)值來對經(jīng)渲染的圖形圖像進(jìn)行后處理,以產(chǎn)生經(jīng)校正的圖形圖像。
在一或多個實例中,上文所描述的功能可以硬件、軟件、固件或其任何組合實施。如果以軟件實施,那么功能可作為一或多個指令或代碼存儲在包括非暫時性計算機(jī)可讀媒體的制品上。計算機(jī)可讀媒體可包含計算機(jī)數(shù)據(jù)存儲媒體。數(shù)據(jù)存儲媒體可為可由一或多個計算機(jī)或一或多個處理器存取以檢索用于實施本發(fā)明中描述的技術(shù)的指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。作為實例而非限制,此類計算機(jī)可讀媒體可包括ram、rom、eeprom、cd-rom或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器或可用來運載或存儲呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所要程序代碼且可由計算機(jī)存取的任何其它媒體。如本文中所使用,磁盤和光盤包含壓縮光盤(cd)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(dvd)、軟性磁盤和藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤利用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上各項的組合也應(yīng)包含在計算機(jī)可讀媒體的范圍內(nèi)。
代碼可由一或多個處理器執(zhí)行,所述一或多個處理器例如一或多個dsp、通用微處理器、asic、fpga,或其它等效集成或離散邏輯電路。另外,在一些方面中,可在專用硬件和/或軟件模塊內(nèi)提供本文中所描述的功能性。而且,所述技術(shù)可完全實施于一或多個電路或邏輯元件中。
本發(fā)明的技術(shù)可在廣泛多種裝置或設(shè)備中實施,包含無線手持機(jī)、集成電路(ic)或一組ic(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元是為了強(qiáng)調(diào)經(jīng)配置以執(zhí)行所公開的技術(shù)的裝置的功能方面,但未必需要由不同硬件單元實現(xiàn)。實際上,如上文所描述,各種單元可以結(jié)合合適的軟件和/或固件組合在編碼解碼器硬件單元中,或者通過互操作硬件單元的集合來提供,所述硬件單元包含如上文所描述的一或多個處理器。
已描述了各種實例。這些和其它實例在所附權(quán)利要求書的范圍內(nèi)。