專利名稱:獨立地處理顯示數(shù)據(jù)的平面的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù),更具體地,涉及視頻數(shù)據(jù)處理技術(shù)。
背景技術(shù):
一般認為,諸如視頻游戲中呈現(xiàn)的圖形之類的視頻內(nèi)容項目,當以比較高的分辨率并以比較高的刷新速率顯示時,具有較高的質(zhì)量。然而,當設(shè)備硬件費力地處理復(fù)雜化的呈現(xiàn)時,刷新速率可能會受到損失。盡管為了維護所需要的刷新速率可能會損失分辨率,但是,以較低的分辨率呈現(xiàn)可能會導(dǎo)致令人不快的視覺體驗,如果內(nèi)容看起來顯著退化(例如,像素化)。相比之下,諸如文本覆蓋和圖形用戶界面(⑶I)元件之類的其他視頻內(nèi)容項目,則已知在以較低的分辨率呈現(xiàn)時質(zhì)量會退化。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容是為了以精簡的形式介紹將在以下具體實施方式
中進一步描述的一些概念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護的主題的范圍。此外,所要求保護的主題不限于解決在本發(fā)明的任一部分中提及的任何或所有缺點的實現(xiàn)。根據(jù)本公開的一個方面,提供了輸出視頻流的方法。該方法包括從存儲器中檢索顯示數(shù)據(jù)的具有第一組顯示參數(shù)的第一平面,并對顯示數(shù)據(jù)的第一平面進行后處理,以調(diào)整第一組顯示參數(shù)。該方法還包括從存儲器中檢索顯示數(shù)據(jù)的具有第二組顯示參數(shù)的第二平面,并獨立于顯示數(shù)據(jù)的第一平面,對顯示數(shù)據(jù)的第二平面進行后處理。該方法還包括將顯示數(shù)據(jù)的第一平面與顯示數(shù)據(jù)的第二平面混合,以形成混合的顯示數(shù)據(jù),并輸出混合的顯示數(shù)據(jù)。
圖1概要地示出了根據(jù)本公開的實施例的視頻輸出。圖2示出了輸出視頻流的方法的流程圖。圖3概要地示出了幀緩沖器的并排包裝的示例。圖4概要地示出了幀緩沖器的過/欠包裝的示例。圖5概要地示出了從左眼的角度和右眼的角度創(chuàng)建三維顯示數(shù)據(jù)的示例。圖6概要地示出了在幀緩沖存儲器構(gòu)建區(qū)域以支持顯示不可知的呈現(xiàn)的示例。圖7概要地示出了用于視頻輸出的示例顯示管線。圖8概要地示出了根據(jù)本公開的實施例的計算設(shè)備。詳細描述如上面介紹的,在某些情況下,為了對于已呈現(xiàn)的內(nèi)容維護所需要的更新速率可能會損失分辨率,同時維護高顯示器刷新速率,以便避免閃爍。作為示例,可以以稍微低的分辨率呈現(xiàn)視頻,以降低有效像素率,這可使設(shè)備的圖形處理單元(GPU)以更快的刷新速
3率呈現(xiàn)。然而,當降低分辨率時,不同類型的內(nèi)容與其他類型的內(nèi)容相比可能受影響的程度顯著地多或少。例如,顯示快速移動的游戲內(nèi)容(例如,戰(zhàn)爭場景)的視頻游戲,當分辨率被降低以維護所希望的刷新速率時,可能不會產(chǎn)生顯著的可視偽像,而具有諸如文本、聊天窗口等等之類的詳細的和相對靜態(tài)的內(nèi)容的平視顯示系統(tǒng)(HUD)在較低的分辨率時可能變得顯著地像素化。傳統(tǒng)上,可以使用硬件縮放器來允許開發(fā)人員呈現(xiàn)到所希望的分辨率,然后,系統(tǒng)軟件可以將已呈現(xiàn)的數(shù)據(jù)提供到與正在向其輸出視頻的顯示器相關(guān)聯(lián)的分辨率。然而,這樣的硬件縮放器不能隔離呈現(xiàn)分辨率,以便區(qū)分諸如例如主顯示器的內(nèi)容HUD的內(nèi)容之類的內(nèi)容。如此處所描述的獨立地處理顯示數(shù)據(jù)的平面提供了獨立縮放內(nèi)容的不同的部分的分辨率。例如,由于可以獨立地縮放視頻內(nèi)容的某些部分,可以與HUD數(shù)據(jù)獨立地縮放顯示數(shù)據(jù)的主要集合。進一步,通過以顯示器不可知的格式存儲顯示數(shù)據(jù),然后,為顯示器專用的呈現(xiàn)而打包幀緩沖器,支持將視頻輸出到具有各種規(guī)范的各種顯示器,包括被配置成提供視頻的三維顯示(3D顯示)的顯示器?,F(xiàn)在轉(zhuǎn)向圖1,圖1示出了計算設(shè)備20,包括諸如提供應(yīng)用程序24(例如,駕駛游戲)的操作系統(tǒng)之類的系統(tǒng)22。計算設(shè)備20可以是被配置成輸出立體和/或非立體視頻內(nèi)容的任何合適的計算設(shè)備,包括,但不僅限于,游戲控制臺、個人計算機、移動設(shè)備、等等。應(yīng)用程序M可包括各種組件,如主顯示器以及通常與主顯示器的內(nèi)容相關(guān)聯(lián)的應(yīng)用程序所生成的外圍設(shè)備。在所描繪的示例中,應(yīng)用程序M包括駕駛游戲,該游戲具有顯示從駕駛員的角度來看的路的視圖的主顯示26。應(yīng)用程序M還包括HUD元素,其中包括顯示駕駛員沿著跑道的進度的地圖28,以及駕駛員的競爭對手的進度。應(yīng)用程序HUD還包括顯示駕駛員的汽車的速度的速度計顯示30??梢岳斫?,此示例在插圖中只是示意的,不應(yīng)在限制性的意義上考慮。計算設(shè)備20進一步被配置成提供附加的系統(tǒng)生成的內(nèi)容,如系統(tǒng)生成的主顯示和/或系統(tǒng)生成的HUD。系統(tǒng)生成的內(nèi)容的示例包括,但不僅限于,系統(tǒng)消息、通知、語音聊天、視頻聊天、文本聊天等等。圖1描繪了示例系統(tǒng)生成的主顯示32,以及系統(tǒng)生成的HUD 34,包括與在駕駛員和競爭對手之間進行的文本聊天相關(guān)聯(lián)的文本。圖1進一步示出了輸出到各種顯示器36的計算設(shè)備20。顯示器36的示例包括計算機監(jiān)視器、電視機、3D顯示器等等。如此,每一個顯示器都可以具有關(guān)于內(nèi)容如何顯示在顯示器上的不同規(guī)范。例如,顯示器可以具有指出可以顯示在每一個維度的不同的像素的數(shù)量的顯示器分辨率。作為另一個示例,顯示器可以具有指出顯示器硬件每秒鐘繪制數(shù)據(jù)的次數(shù)的刷新速率。作為另一個示例,顯示器可以具有指出物理圖像寬度與圖像高度的比率的縱橫比。此外,各種顯示器還可以使用不同的接口來接收用于顯示的內(nèi)容。示例包括,但不僅限于,Composite/kparate視頻(S-video)、分量視頻、視頻圖形陣列(VGA)、VGA、數(shù)字視頻接口(DVI)、高清晰度多媒體接口(HDMI)、DisplayPort等等。如通篇比較詳細地描述的,計算設(shè)備20被配置成向每一個顯示器輸出視頻內(nèi)容, 其中,內(nèi)容是為該顯示器配置的。如此,內(nèi)容開發(fā)人員不必知曉顯示器規(guī)范,并可以開發(fā)呈現(xiàn)給被類似地配置的緩沖器的應(yīng)用程序。例如,計算設(shè)備20可以被配置成獲取顯示數(shù)據(jù)
4(例如,由圖形核和/或其他系統(tǒng)組件所產(chǎn)生的),并在幀緩沖存儲器中以顯示器不可知的格式構(gòu)建數(shù)據(jù)。然后,計算設(shè)備20可以基于與該計算設(shè)備向其輸出的顯示器相關(guān)聯(lián)的顯示參數(shù),來動態(tài)地將數(shù)據(jù)打包到幀緩沖器中,如參考圖2比較詳細地描述的。如此,如在圖1中所描繪的,計算設(shè)備20可以將視頻輸出38a驅(qū)動到顯示器40,將視頻輸出3 驅(qū)動到顯示器42,并將視頻輸出38c驅(qū)動到顯示器44。顯示器40、42,以及 44中的一個到三個可以被同時驅(qū)動。視頻輸出具有相同幀率、分辨率,以及幀打包;然而, 應(yīng)用程序M可以使用獨立于由顯示器預(yù)期的特定打包和格式化的選取的幀緩沖器打包和格式來呈現(xiàn)。此外,諸如由計算設(shè)備20所提供的視頻輸出38a、38b和/或38c之類的視頻輸出被配置成獨立地減輕主顯示和覆蓋(例如,HUD)的存儲器資源。如此,可以獨立地并動態(tài)地調(diào)整每一個的呈現(xiàn)分辨率,以符合標準顯示器刷新速率。如此,作為示例,游戲內(nèi)容(例如,戰(zhàn)爭場景)可以被縮放到較低的分辨率而HUD可以維持在較高分辨率時。以此方式,可以維護刷新速率,觀眾的用戶體驗很少會被影響和/或中斷。如上面介紹的,顯示器36中的一個或多個可以進一步被配置成提供用于三維查看的內(nèi)容。傳統(tǒng)上,呈現(xiàn)給3D顯示器具有挑戰(zhàn)性,因為不同的3D顯示器可以使用不同的技術(shù)來提供內(nèi)容的3D視圖。作為示例,顯示器可以使用立體視覺技術(shù),該技術(shù)呈現(xiàn)同一場景的兩個視圖,其中,其中一個視圖是針對用戶的左眼的(例如,左幀),另一個視圖是針對用戶的右眼的(例如,右?guī)?。如此,可以在平板顯示器表面上模仿深度。如此,各種立體3D(S3D)顯示器和非立體顯示器可以指定用于接收兩個視圖(例如,左幀和右?guī)?的不同指令。作為示例,顯示器可以被配置成接收幀緩沖器中并排打包的視圖。在這樣的情況下,對于每一個輸出幀,一個視圖被定位在幀的左半部,另一個視圖被定位在幀的右半部。作為另一個示例,顯示器可以被配置成接收幀緩沖器中的過/欠打包的視圖。在這樣的情況下,對于每一個輸出幀,一個視圖被定位在幀的上半部分,另一個視圖被定位在幀的下半部分部。這樣的指令可以被包括在提供給計算設(shè)備的規(guī)范內(nèi)。然后,計算設(shè)備20被配置成轉(zhuǎn)換應(yīng)用程序前置緩沖器,并使用如此處所描述的視頻輸出體系結(jié)構(gòu), 通過公共的視頻接口將數(shù)據(jù)輸出到顯示設(shè)備。計算設(shè)備20可以被配置成通過例如取得由圖形核和/或其他系統(tǒng)組件所產(chǎn)生的幀緩沖器,并執(zhí)行后處理和混合操作,以格式化用于顯示的緩沖器,來向顯示器36輸出視頻,如參考圖2比較詳細地描述的。此外,計算設(shè)備20的顯示器輸出管線可以被配置成獲取與3D顯示器相關(guān)聯(lián)的并排和/或左右打包的緩沖器/平面,并應(yīng)用單獨地確定的像素和行偏移和填充/間隔,以便驅(qū)動顯示器的所請求的輸入。如此,如此處所描述的獨立地處理顯示數(shù)據(jù)的平面可以以一致的并排格式將3D 源數(shù)據(jù)呈現(xiàn)到存儲器中的同一個緩沖器(例如,左/右或圖像/深度),以便只維護一個緩沖器分配和指針。此外,計算設(shè)備20可以進一步被配置成通過向每一個眼睛呈現(xiàn)源的不同移位的版本來使用2D源用于3D輸出,從而提供了節(jié)省存儲器的能力,如參考圖2-6比較詳細地描述的。如此,2D源的顯示分辨率(例如,4096x2160)和3D源對于每一個眼睛的顯示分辨率 (例如,2048x2160)可以得到支持。以此方式,應(yīng)用程序不必知道顯示器的特定的接口格式。如此,使得內(nèi)容與輸出標準、3D標準等等中的變化無關(guān)?,F(xiàn)在轉(zhuǎn)向圖2,圖2示出了輸出視頻流的方法50。在52,方法50包括從存儲器中檢索具有第一組顯示參數(shù)的顯示數(shù)據(jù)的第一平面??梢岳斫?,如此處所使用的“平面”是指 2D存儲器緩沖器的平面(例如,層),因此不同于傳統(tǒng)意義上關(guān)于2D圖像的平面的平面。平面可以與應(yīng)用程序生成的顯示數(shù)據(jù)或系統(tǒng)生成的顯示數(shù)據(jù)相對應(yīng)(例如,由其提供源),例如,來自由圖形核和/或其他系統(tǒng)組件所產(chǎn)生的幀緩沖器。此外,平面可以與諸如主源、HUD 源等等之類的各種源相關(guān)聯(lián),因此,第一平面可以是任何這樣的合適的平面。例如,第一平面可以是應(yīng)用程序主平面,包括用于顯示主應(yīng)用程序內(nèi)容的應(yīng)用程序所生成的主要應(yīng)用程序顯示表面(例如,駕駛游戲的主畫面)。作為另一個示例,第一平面可以是系統(tǒng)主平面,包括計算系統(tǒng)的系統(tǒng)生成的主要系統(tǒng)顯示器表面(例如,顯示系統(tǒng)消息的窗口)。第一平面具有相關(guān)聯(lián)的第一組顯示參數(shù)。這樣的顯示參數(shù)指出平面的顯示數(shù)據(jù)將如何顯示。例如,顯示參數(shù)可包括分辨率、顏色空間、伽馬值,等等,如下面比較詳細地描述的。此外,可以以任何合適的方式檢索第一平面,諸如通過直接存儲器訪問(DMA)。作為示例,DMA可以從主存儲器中檢索前置緩沖器內(nèi)容。如此,片上系統(tǒng)(SoC)可以被設(shè)計成能提供有利的延遲響應(yīng),以顯示DMA讀和寫請求。存儲器請求可以通過專用存儲器管理單元(MMU)來發(fā)出,或者可通過與系統(tǒng)GPU塊請求者共享的端口來交錯它們。然后,可以在延遲計算中考慮GPU和SoC存儲器控制器的開銷,以便設(shè)計合適的DMA讀取緩沖的量以及相關(guān)聯(lián)的延遲隱藏機制。顯示器DMA請求對主存儲器來說可以是基于地址的??梢钥扇芜x地清空發(fā)往前置緩沖器的全部可緩存的寫入,既可以通過使用流式寫入,也可以通過顯式的緩存清空指令。繼續(xù)圖2,在54,方法50包括后處理顯示數(shù)據(jù)的第一平面,以調(diào)整第一組顯示參數(shù),其中,后處理包括縮放第一平面的顯示數(shù)據(jù),以調(diào)整分辨率參數(shù),如在56所示出的。后處理可包括任意數(shù)量的可能的操作,以準備用于隨后的合成的數(shù)據(jù),如下面比較詳細地描述的。在某些實施例中,后處理可包括應(yīng)用輸入顏色空間轉(zhuǎn)換。如上面介紹的,顯示數(shù)據(jù)可以具有顏色空間參數(shù)。作為示例,對于游戲和圖形,像素可以使用RGB顏色空間。作為另一個示例,對于視頻應(yīng)用程序,像素可以使用YCbCr顏色空間。如此,應(yīng)用輸入顏色空間會話將把幀緩沖器格式匹配到公共的顏色空間以便以后進行混合。通過適當?shù)靥幚硪曨l格式的顏色空間轉(zhuǎn)換,可以維護精確度和范圍,以減輕卡箍和量化偽像。此外,在某些實施例中,后處理可包括應(yīng)用逆向伽馬校正。如上面介紹的,顯示數(shù)據(jù)可以具有用于編碼亮度值的伽馬參數(shù)。應(yīng)用逆向伽馬校正會將經(jīng)過伽馬校正的內(nèi)容轉(zhuǎn)換為線性空間,可提供改善的縮放結(jié)果,因為在輸出處理過程中,伽馬參數(shù)通常容易受到帶狀偽像。以此方式,通過應(yīng)用逆向顏色空間轉(zhuǎn)換和/或逆向伽馬校正,可以在線性RGB顏色空間中進行隨后的縮放和合成。作為示例,可以通過顏色空間轉(zhuǎn)換(CSC)將YCbCr顏色空間源材料(例如,DVD)轉(zhuǎn)換為RGB,然后,可以通過逆向伽馬塊,將其轉(zhuǎn)換為線性RGB。此外,可以以任何合適的方式縮放顯示數(shù)據(jù)。因此,方法50的56可包括應(yīng)用視頻
6縮放器,以更改分辨率參數(shù)。這樣的視頻縮放器可以再采樣全動式視頻(FMV)和/或用于顯示的覆蓋。此外,在某些實施例中,視頻縮放器可以執(zhí)行幀到場的下采樣以供隔行掃描的顯示支持。當處理多個輸出分辨率時,視頻縮放器可以顯示分辨率匹配。作為示例,應(yīng)用程序可以被配置成支持PAL、NTSC、W& 720P。然而,并非讓應(yīng)用程序天然地支持這些不同的分辨率以及像素縱橫比,可以向其呈現(xiàn)較小的分辨率子集,然后,可以在顯示之前使用高質(zhì)量過濾來縮放呈現(xiàn)目標。以此方式,可以支持與將具有一個顯示縱橫比(例如,40的內(nèi)容呈現(xiàn)在具有不同的顯示縱橫比(例如,16x9)的顯示器上相關(guān)的功能。這樣的功能還可以包括4x3顯示器上的16x9內(nèi)容的信箱呈現(xiàn)等。視頻縮放器還可以進一步提供對于填充有限的應(yīng)用程序,基于系統(tǒng)負載來進行動態(tài)分辨率調(diào)整。如此,再采樣器可以被配置成支持任意縮放因子,以便當動態(tài)地改變縮放因子時產(chǎn)生最小的偽像。此外,再采樣還可以獨立于平面的每一個源。在這樣的情況下,對于主平面,可能需要諸如高質(zhì)量、不可分的、在空間上自適應(yīng)的2D過濾器之類的高質(zhì)量2D過濾器,而非自適應(yīng)的、可分離的過濾器可以用于HUD。應(yīng)該理解,在不偏離本公開的范圍的情況下,后處理可以另選地或另外地包括其他處理。此外,在后處理用于3D顯示器的顯示數(shù)據(jù)的情況下,后處理可包括縮放顯示數(shù)據(jù)的第一平面的左眼視角和縮放右眼視角,分別如在方法50的58和60所示出的。這樣的縮放可包括任何合適的處理以準備兩個視角供輸出。具體而言,可能不需要為每一個平面源分配全尺寸的幀緩沖器。如此,用于顯示器的源區(qū)域的一部分可以是整個源,或者可以是源的一部分(例如,矩形區(qū)域)(例如,平移掃描、裁剪等等)。此外,源內(nèi)容可以占據(jù)顯示器的整個活動區(qū),或者,它可以占據(jù)顯示器的一部分(例如,信箱(Ietterboxing))。離開活動顯示區(qū)域的源內(nèi)容可以被剪切(例如,通過寄存器編程)。因此,為了節(jié)省存儲器占用和帶寬,可能需要為給定平面指定產(chǎn)生多個子矩形的多個不相重疊的源。作為示例,為提供3D支持和“相框"HUD,可以顯示任何大小的多個(例如,八個)不同的源,并可以將它們放置在顯示器上的任何地方(例如,桌面)。作為示例,圖3示出了主應(yīng)用程序的左眼版本90和主應(yīng)用程序的右眼版本92的并排左/右輸出的可能的配置。作為示例,主應(yīng)用程序可以是具有通過HUD顯示的多個外圍設(shè)備的視頻游戲。每一個項,即,項9 (例如,分數(shù)),項94b (例如,武器),項Mc (例如, 方向/地圖)以及項94d(例如,消息)的左眼版本和右眼版本可以在它們自己的引用緩沖器中被并排地打包。例如,左眼版本90上的項9 和右眼版本92上的項9 可以使用從同一存儲器緩沖器地址開始的,但是,具有不同的水平偏移的源數(shù)據(jù)。作為另一個示例,圖4示出了幀打包格式的可能的配置。這里,每一個項的左眼版本和右眼版本可以在它們自己的引用緩沖器中被打包over/under。例如,左眼版本90上的項9 和右眼版本92上的項9 可以使用從同一存儲器緩沖器地址開始的,但是,帶有不同的垂直偏移的源數(shù)據(jù)。然后,可以將左眼和右眼角度組合起來,用于顯示,來模仿3D圖像。作為示例,圖 5示出了將左眼視角96和右眼視角97組合起來,以產(chǎn)生視頻輸出98。由于不同的3D顯示器使用不同的顯示技術(shù),因此,需要以顯示器不可知的格式來存儲顯示數(shù)據(jù),然后封裝作為為顯示器專用的呈現(xiàn)而格式化的視頻輸出。如此,縮放還可以包括為顯示器專用的呈現(xiàn)而打包幀緩沖器。這可以以任何合適的方式進行。例如,與顯示數(shù)據(jù)的第一平面相關(guān)聯(lián)的幀緩沖存儲器和與顯示數(shù)據(jù)的第二平面相關(guān)聯(lián)的幀緩沖存儲器可以每一個都被構(gòu)建為支持顯示器不可知的呈現(xiàn)。如此,縮放第一平面或第二平面的左眼視角或右眼視角可包括引用與該平面相關(guān)聯(lián)的幀緩沖存儲器,并格式化該平面的左眼視角或右眼視角,用于顯示器專用的呈現(xiàn)。在這樣的情況下,引用幀緩沖器可包括獲取該平面顯示數(shù)據(jù)的與左眼或右眼相關(guān)聯(lián)的區(qū)域。如此,縮放該平面的左眼角度或右眼角度可包括利用來自通過幀緩沖存儲器獲取的區(qū)域的數(shù)據(jù)打包幀緩沖器。圖6示出了對于上文圖3-4參考所描述的情況,用于在幀緩沖存儲器中的構(gòu)建區(qū)域以支持顯示器不可知的呈現(xiàn)的這樣的可能的方法??梢允褂萌齻€源矩形。以此方式,可以并排地放置每一個區(qū)域的獨立的左右視圖。GPU和顯示器輸出DMA兩者都被配置成理解每一個眼睛的矩形的原點和維度(X,Y,W,H),然而,只有顯示輸出DMA被配置成理解在輸出格式中分隔兩個眼睛的(DX,DY)(像素,行)。在某些實施例中,縮放還可以包括將視差包括到逐像素呈現(xiàn)的左和右呈現(xiàn)中。在某些實施例中,這可以是具有單獨的左右源平面的副效應(yīng)。然而,在某些實施例中,視差可以被包括為基于存儲在配置寄存器中的偏移參數(shù)而生成的每一個眼睛的最后的水平像素偏移。這也可以適用于在存儲器中沒有左和右源平面,,而只是單一平面(“角度”)加偏移的情況下。作為示例,偏移參數(shù)可以基于表示顯示器輸出寬度的DX加基于所希望的明顯的深度(例如,圖6中的表示為“Z”的Z-偏移)的偏移的總和。此外,每一個眼睛矩形的寬度可以被填充,以促進存儲器平鋪或輸出過濾器對齊限制。通過逐平面地執(zhí)行這樣的后處理,可以逐幀地改變源的屬性(例如,顏色空間、大小、位置等等),因此,可以適當?shù)乇痪彌_,以防止?jié)B色/ 一致性/撕裂問題。如此,全部顯示平面都可以被連貫地更新。此外,這樣的后處理允許每一個平面的源獨立于顯示器的分辨率。以此方式,所有源都可以逐幀地改變呈現(xiàn)維度,允許應(yīng)用程序/系統(tǒng)在呈現(xiàn)目標維度變得接近于超過它們的GPU預(yù)算地運行時,無縫地縮減它們,如此,維護了一致的幀率。作為對于HDMI的可能的使用情況,接收器可以改變用于輸出的顯示器。在這樣的情況下,顯示器分辨率通過一步步地修改每一個源信道中的縮放器參數(shù)而改變,無需重新初始化視頻輸出管線。返回到圖2,在62,方法50包括從存儲器中檢索具有第二組顯示參數(shù)的第二平面的顯示數(shù)據(jù)。應(yīng)該理解,這樣的檢索可以基本上與檢索第一平面同時。第二平面可以是被配置成定位在第一平面上方的任何合適的平面。例如,第二平面可以是系統(tǒng)主平面。作為另一個示例,第二平面可以是包括應(yīng)用程序所生成的覆蓋的應(yīng)用程序HUD,所述覆蓋被配置成在第一平面的已縮放的呈現(xiàn)頂上以恒定的分辨率繪制元件。 作為再一個示例,第二平面可以是系統(tǒng)生成的覆蓋,其被配置成促進系統(tǒng)通信,并被配置成被定位在第一平面上方,或作為半透明層被混合在第一平面上方。在64,方法60包括獨立于顯示數(shù)據(jù)的第一平面,對顯示數(shù)據(jù)的第二平面進行后處理。如此,對于每一個源,支持單獨的控制,使得質(zhì)量/資源利用率被增強。后處理第二平面可包括縮放第二平面,如在66所示出的,例如,通過應(yīng)用第二視
8頻縮放器。后處理還可以包括諸如應(yīng)用第二輸入顏色空間轉(zhuǎn)換、應(yīng)用第二逆向伽馬校正等等之類的其它處理。對于后處理顯示數(shù)據(jù)供3D顯示的情況,后處理可包括獨立于顯示數(shù)據(jù)的第一平面的左眼視角,縮放顯示數(shù)據(jù)的第二平面的左眼視角,類似地,獨立于顯示數(shù)據(jù)的第一平面的右眼視角,縮放顯示數(shù)據(jù)的第二平面的右眼視角,如在方法50的68和70所分別示出的。在72,方法50包括將顯示數(shù)據(jù)的第一平面與顯示數(shù)據(jù)的第二平面混合,以形成混合的顯示數(shù)據(jù)。這可以以任何合適的方式進行,如通過合成。對于混合平面供3D顯示的情況,混合可包括將顯示數(shù)據(jù)的第一平面的左眼視角與顯示數(shù)據(jù)的第二平面的左眼視角混合,以形成混合的顯示數(shù)據(jù)的左眼視角,如在72所示出的,并將顯示數(shù)據(jù)的第一平面的右眼視角與顯示數(shù)據(jù)的第二平面的右眼視角混合,以形成混合的顯示數(shù)據(jù)的右眼版本,如在74所示出的。在76,方法50包括輸出混合的顯示數(shù)據(jù)。在某些實施例中,可以將混合的顯示數(shù)據(jù)輸出到視頻編碼器。然而,在某些實施例中,可以將被格式化和復(fù)合供輸出的內(nèi)容寫回到存儲器中,供隨后使用,包括可能的視頻壓縮。可以從任何混合平臺獲取源,例如,以包括或排除系統(tǒng)平面??闪磉x地,為提供更大的靈活性,可以添加單獨的混合器集合。這樣的到存儲器的輸出還為顯示器管線提供調(diào)試路徑。對于輸出視頻輸出供3D顯示的情況,輸出可包括輸出混合的顯示數(shù)據(jù)的左眼角度,以及混合的顯示數(shù)據(jù)的右眼角度,供三維顯示,如在78和80所分別示出的。應(yīng)該理解,在不偏離本公開的范圍的情況下,方法50還可以包括另外的處理。例如,在混合之后,可以應(yīng)用輸出伽馬校正,以將線性空間內(nèi)容可編程、可選擇地轉(zhuǎn)換為由顯示設(shè)備預(yù)期的伽馬(例如,sRGB伽馬、BT. 601/709伽馬等等)。作為另一個示例,方法50還可以包括應(yīng)用輸出顏色空間轉(zhuǎn)換。以此方式,可以將復(fù)合的、經(jīng)過伽馬校正的結(jié)果匹配至顯示所需的輸出格式(例如,BT. 601、BT. 709、RGB、 xvYCC60UxvYCC709等等)??梢跃S護足夠的精確度和范圍,以減輕卡箍和量化偽像。除顏色空間轉(zhuǎn)換之外,可編程的系數(shù)可以允許使用同一個塊,在對比度、飽和度、色調(diào)、亮度等等方面進行調(diào)整。應(yīng)該進一步理解,雖然輸出處理步驟可以作為GPU/CPU核的存儲器到存儲器的操作來執(zhí)行,或者在顯示器柵格化過程中在運行時由專用顯示器硬件來執(zhí)行,可以進一步解決關(guān)于系統(tǒng)存儲器占用的顧慮以及對以前的方法的附加的帶寬要求。因此,可以理解,方法 50可包括附加的邏輯,以便最終分割在GPU進行視頻處理的效率、GPU芯片大小、存儲器帶寬以及利用率之間實現(xiàn)平衡。應(yīng)該理解,方法50還可以包括接收和后處理附加的平面,并將這些與其他經(jīng)過后處理的平面混合,供輸出。圖7示出了四個單獨的平面的顯示管線100,即,包括主應(yīng)用程序顯示表面的應(yīng)用程序主平面(App Main)、包括應(yīng)用程序所生成的覆蓋的應(yīng)用程序HUD平面 (App HUD)、包括主要系統(tǒng)顯示表面的系統(tǒng)主平面(Sys Main),以及包括系統(tǒng)生成的覆蓋的系統(tǒng)HUD平面(SysHUD),如下面比較詳細地描述的。App Main平面包括對于應(yīng)用程序(前置緩沖器)要顯示的主要表面。此平面的源在其它平面的下面/背后。在某些實施例中,可能不能在此平面上提供每像素字母 (alpha)。
然后,App HUD平面包括對App Main平面的覆蓋。添加這樣的源可能潛在地根除由GPU所引起的丟幀。換言之,App Main源可以逐幀地改變呈現(xiàn)維度,支持在已縮放的游戲呈現(xiàn)上以恒定分辨率繪制App HUD元件。以此方式,當呈現(xiàn)目標維度變得接近于超過它們的GPU預(yù)算地運行,開發(fā)人員可以無縫地縮減它們,以便它們可以維護一致的幀率。這是可以實現(xiàn)的,因為GPU呈現(xiàn)時間趨向于在幀與幀之間不顯著變化。HUD元件保持一致的分辨率,因為當以不同的方式動態(tài)地縮放那些HUD元件時,在視覺上是明顯的,會對用戶造成困擾。應(yīng)用程序可以對于任何輸出分辨率使用App HUD覆蓋,其進一步使用了如圖所示的縮放器。Sys Main平面包括要對于系統(tǒng)軟件顯示的主要表面,包括操作系統(tǒng)以及程序和實用程序的任何核心集合。此平面可以被定位在應(yīng)用程序平面上(例如,App Main和App HUD),而在Sys HUD平面下面。Sys HUD平面包括對系統(tǒng)軟件可用的覆蓋平面。此平面可以被定位在其它平面上方。它可以用于系統(tǒng)消息、通知、以及用于語音/視頻聊天功能。在系統(tǒng)覆蓋路徑中具有縮放器可以簡化系統(tǒng)資源分配和性能預(yù)留,而不依賴于標題源分辨率、刷新速率等等。如此,每一個平面都可以具有不同的顯示參數(shù)集合。根據(jù)檢索(例如,通過DMA), 各平面隨后可被彼此獨立地后處理。如所描繪的,這樣的后處理可包括顏色空間轉(zhuǎn)換 (CSC)、逆向伽馬校正(G-I)、以及縮放。然后,可以混合(例如,復(fù)合)各平面,以形成混合顯示數(shù)據(jù)。在所描繪的示例中, 將App Main平面與App HUD平面復(fù)合。然后,再將該結(jié)果與Sys Main平面復(fù)合,再將該結(jié)果與Sys HUD平面復(fù)合??闪磉x地,可以將App Main與App HUD復(fù)合,并可以將Sys Main 與Sys HUD復(fù)合,然后,可以將結(jié)果彼此復(fù)合。在所描繪的示例中,將輸出伽馬校正應(yīng)用到混合的顯示數(shù)據(jù),然后,將結(jié)果輸出到視頻編碼器。還縮放混合的顯示數(shù)據(jù),以便進行存儲器輸出、伽馬校正,并寫回存儲器,以便進行隨后的壓縮。在某些實施例中,上文所描述的方法和進程可以與計算系統(tǒng)關(guān)聯(lián)。作為示例,圖8 示意性地示出了可以上文所描述的方法和進程中的一個或多個的計算系統(tǒng)110。計算系統(tǒng) 110包括邏輯子系統(tǒng)112和數(shù)據(jù)保持子系統(tǒng)114。計算系統(tǒng)110可以可任選地包括顯示子系統(tǒng)116和/或在圖8中未示出的其他組件。邏輯子系統(tǒng)112可包括被配置成執(zhí)行一個或多個指令的一個或多個物理設(shè)備。例如,邏輯子系統(tǒng)可以被配置成執(zhí)行一個或多個指令,這些指令是一個或多個程序、例程、對象、組件、數(shù)據(jù)結(jié)構(gòu),或其他邏輯構(gòu)造的一部分。這樣的指令可以被實現(xiàn)以執(zhí)行任務(wù)、實現(xiàn)數(shù)據(jù)類型、轉(zhuǎn)換一個或多個設(shè)備的狀態(tài),或以其他方式取得所希望的結(jié)果。邏輯子系統(tǒng)可包括被配置成執(zhí)行軟件指令的一個或多個處理器。另選地或另外地,邏輯子系統(tǒng)可包括被配置成執(zhí)行硬件或固件指令的一個或多個硬件或固件邏輯機。邏輯子系統(tǒng)可以可任選地包括分布在兩個或更多設(shè)備中的單個組件,在一些實施例中,可以位于遠距離。數(shù)據(jù)保持子系統(tǒng)114可包括一個或多個物理、非瞬時的設(shè)備,這些設(shè)備被配置成保留數(shù)據(jù)和/或可由邏輯子系統(tǒng)執(zhí)行的指令,以實現(xiàn)此處所描述的方法和進程。當實現(xiàn)這樣的方法和進程時,數(shù)據(jù)保持子系統(tǒng)114的狀態(tài)可以被轉(zhuǎn)換(例如,保留不同的數(shù)據(jù))。數(shù)據(jù)保持子系統(tǒng)114可包括可移動介質(zhì)和/或內(nèi)嵌的設(shè)備。數(shù)據(jù)保持子系統(tǒng)114可包括光存
10儲器設(shè)備、半導(dǎo)體存儲器設(shè)備,和/或磁存儲器設(shè)備等等。數(shù)據(jù)保持子系統(tǒng)114可包括帶有下列特征中的一個或多個的設(shè)備易失性、非易失性、動態(tài)、靜態(tài)、讀/寫、只讀、隨機存取、 順序存取、位置可尋址、文件可尋址,以及內(nèi)容可尋址。在某些實施例中,可以將邏輯子系統(tǒng) 112和數(shù)據(jù)保持子系統(tǒng)114集成到諸如專用集成電路或系統(tǒng)芯片之類的一個或多個常見的設(shè)備中。圖8還以計算機可讀取的可移動介質(zhì)118的形式示出了數(shù)據(jù)保持子系統(tǒng)的一個方面,其可以被用來存儲和/或傳輸數(shù)據(jù)和/或可執(zhí)行的指令以實現(xiàn)此處所描述的方法和進程。可以使用術(shù)語“模塊”和“引擎”來描述被實現(xiàn)以執(zhí)行一個或多個特定的功能的計算系統(tǒng)Iio的一個方面。在某些情況下,可以通過邏輯子系統(tǒng)112執(zhí)行由數(shù)據(jù)保持子系統(tǒng) 114所保存的指令來實例化這樣的模塊或引擎。可以理解,可以從同一個應(yīng)用程序、代碼塊、 對象、例程和/或函數(shù)來實例化不同的模塊和/或引擎。同樣,在某些情況下,可以由不同的應(yīng)用程序、代碼塊、對象、例程和/或函數(shù)來實例化同一個模塊和/或引擎。當被包括時,顯示子系統(tǒng)116可以被用來呈現(xiàn)由數(shù)據(jù)保持子系統(tǒng)114所保存的數(shù)據(jù)的可視表示。由于此處所描述的方法和進程改變由數(shù)據(jù)保持子系統(tǒng)所保存的數(shù)據(jù),如此轉(zhuǎn)換數(shù)據(jù)保持子系統(tǒng)的狀態(tài),同樣,可以轉(zhuǎn)換顯示子系統(tǒng)116的狀態(tài)以可視地表示基礎(chǔ)數(shù)據(jù)中的變化。顯示子系統(tǒng)116可包括使用幾乎任何類型的技術(shù)的一個或多個顯示設(shè)備??梢詫⑦@樣的顯示設(shè)備與共享機殼中的邏輯子系統(tǒng)112和/或數(shù)據(jù)保持子系統(tǒng)114相結(jié)合, 或者,這樣的顯示設(shè)備也可以是外設(shè)顯示設(shè)備??梢岳斫?,此處所述的配置和/或方法在本質(zhì)上示例性的,且這些具體實施例或示例不是限制性的,因為多個變體是可能。此處所描述的具體例程或方法可表示任何數(shù)量的處理策略中的一個或多個。由此,所示出的各個動作可以按所示順序執(zhí)行、并行地執(zhí)行、 以其他順序執(zhí)行、或者在某些情況下省略。同樣,上文所描述的過程的順序也可以改變。本發(fā)明的主題包括各種過程、系統(tǒng)和配置的所有新穎和非顯而易見的組合和子組合、和此處所公開的其它特征、功能、動作、和/或特性、以及其任何和全部等效物。
1權(quán)利要求
1.一種輸出視頻流的方法(50),所述方法包括從存儲器中檢索(5 顯示數(shù)據(jù)的具有第一組顯示參數(shù)的第一平面; 對顯示數(shù)據(jù)的所述第一平面進行后處理(54),以調(diào)整所述第一組顯示參數(shù); 從存儲器中檢索(6 顯示數(shù)據(jù)的具有第二組顯示參數(shù)的第二平面; 獨立于顯示數(shù)據(jù)的所述第一平面,對顯示數(shù)據(jù)的所述第二平面進行后處理(64); 將顯示數(shù)據(jù)的所述第一平面與顯示數(shù)據(jù)的所述第二平面混合(70),以形成混合的顯示數(shù)據(jù);以及輸出(76)所述混合的顯示數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,后處理還包括將輸入顏色空間轉(zhuǎn)換獨立地應(yīng)用到顯示數(shù)據(jù)的所述第一平面和顯示數(shù)據(jù)的所述第二平面,以將幀緩沖器格式匹配到常見的顏色空間以便以后進行混合。
3.如權(quán)利要求1所述的方法,其特征在于,后處理還包括將逆向伽馬校正獨立地應(yīng)用到顯示數(shù)據(jù)的所述第一平面和顯示數(shù)據(jù)的所述第二平面,以將經(jīng)過伽馬校正的內(nèi)容轉(zhuǎn)換為線性空間。
4.如權(quán)利要求1所述的方法,其特征在于,后處理包括分別使用第一視頻縮放器和第二視頻縮放器,來將顯示數(shù)據(jù)的所述第一平面和顯示數(shù)據(jù)的所述第二平面中的每一個的相應(yīng)的分辨率更改為所期望的輸出分辨率。
5.如權(quán)利要求1所述的方法,其特征在于,后處理還包括將輸入顏色空間轉(zhuǎn)換、逆向伽馬校正、以及視頻縮放器獨立地應(yīng)用到顯示數(shù)據(jù)的所述第一平面和顯示數(shù)據(jù)的所述第二平
6.如權(quán)利要求1所述的方法,其特征在于,所述第一平面包括應(yīng)用程序生成的主要應(yīng)用程序顯示表面,并且所述第二平面包括用于定位在所述第一平面上方的計算系統(tǒng)的系統(tǒng)生成的主要系統(tǒng)顯示器表面。
7.如權(quán)利要求1所述的方法,其特征在于,所述第一平面包括應(yīng)用程序生成的主要應(yīng)用程序顯示表面,所述第二平面包括用于定位在所述第一平面上方的應(yīng)用程序生成的覆蓋。
8.如權(quán)利要求1所述的方法,其特征在于,所述第一平面包括計算系統(tǒng)的系統(tǒng)生成的主要系統(tǒng)顯示器表面,其特征在于,所述第二平面包括用于定位在所述第一平面上方的系統(tǒng)生成的覆蓋。
9.如權(quán)利要求1所述的方法,其特征在于,輸出所述混合的顯示數(shù)據(jù)包括向視頻編碼器輸出所述混合的顯示數(shù)據(jù)。
10.如權(quán)利要求1所述的方法,其特征在于,顯示數(shù)據(jù)的所述第一平面包括左眼視角和右眼視角,其特征在于,顯示數(shù)據(jù)的所述第二平面包括左眼視角和右眼視角,其特征在于, 將顯示數(shù)據(jù)的所述第一平面與顯示數(shù)據(jù)的所述第二平面混合包括將所述第一平面的所述左眼視角的縮放版本與所述第二平面的所述左眼視角的縮放版本混合,以及將所述第一平面的所述右眼視角的縮放版本與所述第二平面的所述右眼視角的縮放版本混合。
全文摘要
一種通過輸出視頻流的方法,提供了對顯示數(shù)據(jù)的各平面的獨立的處理。該方法包括從存儲器中檢索顯示數(shù)據(jù)的具有第一組顯示參數(shù)的第一平面,并對顯示數(shù)據(jù)的第一平面進行后處理,以調(diào)整第一組顯示參數(shù)。該方法還包括從存儲器中檢索顯示數(shù)據(jù)的具有第二組顯示參數(shù)的第二平面,并獨立于顯示數(shù)據(jù)的第一平面,對顯示數(shù)據(jù)的第二平面進行后處理。該方法還包括將顯示數(shù)據(jù)的第一平面與顯示數(shù)據(jù)的第二平面混合,以形成混合的顯示數(shù)據(jù),并輸出混合的顯示數(shù)據(jù)。
文檔編號G06F3/14GK102221984SQ201110170889
公開日2011年10月19日 申請日期2011年6月13日 優(yōu)先權(quán)日2010年6月14日
發(fā)明者J·塔迪夫, M·S·格羅斯曼 申請人:微軟公司