專利名稱:用于硬件加速媒體回放的獨立分層內(nèi)容的制作方法
技術(shù)領(lǐng)域:
本公開總體上涉及媒體回放,并且更加具體地涉及高性能媒體回放。
背景技術(shù):
媒體回放引擎提供在ー個表示(presentation)中將諸如圖像,音頻,視頻,ニ維(2D)和三維(3D)向量藝術(shù) 的富媒體要素與印刷工藝相組合的方式。一些播放器允許媒體類型的相互混合(例如重疊,處理以及混合的要素等等)。相互混合的要素的合成典型地通過在平臺CPU上的軟件中實現(xiàn)的算法來實現(xiàn)。然而,CPU合成會極其緩慢并且要求大量功率。
發(fā)明內(nèi)容
本公開描述了促進對內(nèi)容進行分層以用于高性能媒體回放的技術(shù)和結(jié)構(gòu)。在一個實施例中,跨平臺多媒體內(nèi)容的表示可以通過媒體播放器控制??缙脚_內(nèi)容可以包括ニ維(2D)圖形分量,三維(3D)圖形分量,以及視頻分量??梢詫⒚咯`個分量呈現(xiàn)為分離層,并且可以將每ー個分量彼此獨立地呈現(xiàn)。所述多媒體播放器可以同步分離的呈現(xiàn)以用于表示。在一個實施例中,可以通過與執(zhí)行所述多媒體播放器的硬件資源分離的硬件資源,執(zhí)行所述分離層中的至少ー個分離層的呈現(xiàn)??梢院铣擅咯`個分離層以用于顯示。在一個實施例中,可以通過與執(zhí)行所述多媒體播放器的硬件資源分離的硬件資源執(zhí)行所述合成。
圖I是根據(jù)ー些實施例對內(nèi)容進行分層以用于高性能媒體回放的流程圖。圖2說明了對內(nèi)容進行分層以用于高性能媒體回放的一個實施例的方框圖。圖3是根據(jù)一些實施例的多媒體播放器的事件模型的圖。圖4說明了可以在實施例中使用的示例計算機系統(tǒng)。盡管在這里以幾個實施例的示例和說明性附圖的方式描述了本公開,但是本領(lǐng)域的普通技術(shù)人員將意識到,本公開并不局限于所描述的實施例或者附圖。應(yīng)該理解,附圖及對其的詳細描述并非g在將本公開局限于所公開的特定形式,而是相反,本發(fā)明g在覆蓋落入當(dāng)前公開的精神和范圍內(nèi)的全部變型,等同物和替代物。這里使用的標題僅用于組織目的而并非意味著用于限制本描述的范圍。如在整個該申請中使用的,在允許意義上(即意味著具有潛在可能)而非強制意義上(即意味著必須)使用“可以”ー詞。類似地,詞語“包括”、“包含”和“囊括”意味著包括但不局限干。
具體實施例方式在下面的詳細描述中,闡述了各種具體細節(jié)以提供對請求保護的主題的全面理解。然而,本領(lǐng)域的普通技術(shù)人員將理解,可以在沒有這些具體細節(jié)的情況下實踐請求保護的主題。在其它實例中,沒有詳細描述本領(lǐng)域的普通技術(shù)人員將熟知的方法,裝置或者系統(tǒng),以不混淆請求保護的主題。按照對存儲在特定裝置或者專用計算設(shè)備或者平臺的存儲器內(nèi)的ニ進制數(shù)字信號進行的算法或者操作的符號表示的形式表示下面詳細描述的ー些部分。在該具體說明書的上下文中,術(shù)語“特定裝置等等”包括通用計算機,一旦對其進行編程,該通用計算機可以執(zhí)行遵照來自程序軟件的指令的具體功能。算法描述或者符號表示是信號處理或者相關(guān)領(lǐng)域中的普通技術(shù)人員用于向該領(lǐng)域的其它技術(shù)人員傳達其工作的本質(zhì)的技術(shù)示例。這里認為算法通常為導(dǎo)致期望結(jié)果的操作或者類似信號處理的自治序列。在該上下文中,操作或者處理涉及物理量的物理操控。典型地,盡管不是必要的,這樣的量可以采取能夠被存儲, 傳輸,組合,比較或者以其它方式操控的電或者磁信號的形式。已經(jīng)證明,理論上出于公共用途的原因,將這樣的信號指代為比特,數(shù)據(jù),值,要素,符號,字符,項,數(shù)量,數(shù)字等等有時是方便的。然而,應(yīng)該理解,要將這些或者類似項的全部與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)并且只是方便的標簽。除非以其它方式專門表述,通過下面的討論顯然的是,將意識到,在整個說明書中,使用諸如“處理”,“計算”,“算術(shù)計算(calculate) ”,“確定”等等的術(shù)語的討論指代諸如專用計算機或者類似專用電子計算設(shè)備的特定裝置的動作或者過程。因此,在該說明書的上下文中,專用計算機或者類似專用電子計算設(shè)備能夠操控或者轉(zhuǎn)換在專用計算機或者類似專用電子計算設(shè)備的存儲器,寄存器,或者其它信息存儲設(shè)備,傳輸設(shè)備,或者顯示設(shè)備內(nèi)典型地表示為物理上的電或者磁量的信號。如這里所使用的,“第一”,“第二”等等這些術(shù)語用作跟隨其后的名詞的標簽,并且并不暗含任何類型的排序(例如空間,時間,邏輯等等)。例如,在具有八個處理元件或者核的處理器中,術(shù)語“第一”和“第二”處理元件可以用于指代八個處理元件中的任意兩個。換句話說,“第一”和“第二”處理元件并不局限于邏輯處理元件O和I。如這里所使用的,術(shù)語“以......為基礎(chǔ)”用于描述影響確定的一個或者多個因
素。該術(shù)語不排除會影響確定的附加因素。即,確定可以僅以那些因素或者至少部分地以那些因素為基礎(chǔ)??紤]短語“以B為基礎(chǔ)確定A”。盡管B可以是影響A的確定的因素,但是這樣的短語不排除A的確定也以C為基礎(chǔ)。在其它實例中,A可以僅以B為基礎(chǔ)進行確定。在計算設(shè)備上執(zhí)行的數(shù)字圖像編輯應(yīng)用可以用于操控,增強,變換,創(chuàng)建和呈現(xiàn)諸如向量圖形,3D圖形和視頻的圖像,圖形和視頻。根據(jù)這里描述的各種實施例,數(shù)字圖像編輯應(yīng)用可以用于呈現(xiàn),修改和編輯這樣的對象,并且可以使用諸如OpenGL,DirectX或者Direct3D的應(yīng)用編程接ロ(API)。在一些實施例中,API可以為GPU可編程并且是基于著色器(shader-based)的。描述了用于呈現(xiàn)和合成分層內(nèi)容以用于高性能的富媒體回放的方法和裝置的各種實施例。一些實施例可以包括用于呈現(xiàn)和合成分層內(nèi)容的裝置。例如,一個或者多個呈現(xiàn)模塊可以接收各種內(nèi)容作為輸入,并且在分離層中呈現(xiàn)內(nèi)容中與其它類型獨立的每ー個類型。合成模塊可以在顯示時將所述層合成到一起。在一些實施例中,呈現(xiàn)和合成模塊可以通過存儲在計算機可讀存儲介質(zhì)中的并且可由計算裝置的一個或者多個處理器(例如ー個或者多個CPU或者GPU)執(zhí)行的程序指令來實現(xiàn)。如這里所描述的,計算機可讀存儲介質(zhì)可以存儲可由一個或者多個處理器執(zhí)行的程序指令,以使計算裝置執(zhí)行接收各種內(nèi)容,在分離層中呈現(xiàn)內(nèi)容中與其它類型獨立的每ー個類型,并且在顯示時將所述層合成到一起。呈現(xiàn)和合成模塊的其它實施例可以至少部分地通過硬件電路和/或例如存儲在非易失性存儲器中的固件來實現(xiàn)。現(xiàn)在轉(zhuǎn)到圖1,示出了用于對內(nèi)容進行分層以利用硬件加速表示媒體的一個實施例。盡管出于容易理解的目的,按照特定順序示出了方框,但是可以使用其它順序。在ー些實施例中,圖I的方法可以包括比所示出的更多(或者更少)方框。方框100-120可以自動執(zhí)行或者可以接收用戶輸入。如在100處表明的,可以執(zhí)行跨 平臺多媒體內(nèi)容的表示。在一個實施例中,可以駐留在計算設(shè)備上的多媒體播放器可以控制該表示。多媒體播放器可以例如在計算設(shè)備的中央處理単元(CPU)上執(zhí)行。由于多媒體內(nèi)容可以是平臺獨立的并且可以不需要任何專用硬件或者協(xié)議以表示該內(nèi)容,因此該內(nèi)容可以是跨平臺的??缙脚_多媒體內(nèi)容可以包括ー個或者多個ニ維(2D)圖形分量,一個或者多個三維(3D)圖形分量,以及ー個或者多個視頻分量。2D圖形分量可以包括向量圖形或者位形(例如,RGB像素數(shù)據(jù))。如在110處表示的,可以將所述分量中的至少ー些獨立呈現(xiàn)為分離的各個層。例如,可以將2D圖形分量,3D圖形分量,以及視頻分量分別呈現(xiàn)為分離層。在該示例中,內(nèi)容層可以包括視頻層,3D向量圖形層,以及2D圖形層??梢员舜霜毩⒌爻尸F(xiàn)每ー個分量。在該上下文中,獨立呈現(xiàn)意味著對于每ー個分量的呈現(xiàn)可以來自分離的源,諸如分離的硬件資源,并且不在對于內(nèi)容的不同類型的層之間執(zhí)行軟件合成操作。例如,多媒體播放器可以在諸如中央處理單元(CPU)的ー個硬件資源上執(zhí)行。也可以將該表示的ー個或者多個2D圖形分量在CPU上呈現(xiàn)??梢詫⑾嗤硎镜末`個或者多個3D圖形分量在諸如圖形處理單元(GPU)的分離硬件資源上呈現(xiàn)。該表示的一個或者多個視頻分量可以由諸如一個或者多個硬件視頻解碼器的其它分離的硬件資源呈現(xiàn)。可以將所呈現(xiàn)的2D圖形分量,所呈現(xiàn)的3D圖形分量,以及所呈現(xiàn)的視頻分量分別作為分離層提供到將所述層合成到一起以用于顯示的硬件資源。將所述層合成到一起以用于顯示的硬件資源可以是分離的硬件資源而不是執(zhí)行該多媒體播放器的CPU。例如,可以合成所述層以用于在GPU上顯示,所述GPU可以是與呈現(xiàn)3D圖形分量的GPU相同或者不同的GPU??梢栽谥T如執(zhí)行多媒體播放器的CPU之類的CPU上的軟件中對2D圖形分量執(zhí)行諸如混合,過濾,旋轉(zhuǎn)等等的軟件合成操作。然而,可以將對于3D和視頻分量的獨立呈現(xiàn)的層排除在這樣的操作之外。該排除允許獨立干與CPU分離的硬件資源來呈現(xiàn)3D和視頻層,并且避免將所呈現(xiàn)的3D和視頻分量拷貝到CPU存儲器中以執(zhí)行軟件合成操作。通過獨立地呈現(xiàn)3D和視頻層以使得將其從CPU上的軟件合成操作中排除,能夠確保多媒體內(nèi)容的表示利用對于3D和/或視頻分量的硬件加速??梢詮姆蛛x的硬件呈現(xiàn)資源向?qū)⑺鰧雍铣傻揭黄鹨杂糜陲@示的硬件資源直接發(fā)送這些獨立呈現(xiàn)的層。然而,在多媒體播放器的控制下,仍然發(fā)生每ー個層的呈現(xiàn)。換句話說,在一些實施例中,所呈現(xiàn)的3D和視頻層本身不通過執(zhí)行多媒體播放器的CPU進行操作,但是其呈現(xiàn)仍然由多媒體播放器指導(dǎo)以使得通過多媒體播放器同步多媒體內(nèi)容的整體表示。例如,在CPU上執(zhí)行的多媒體播放器可以使指令發(fā)送到諸如視頻解碼器和GPU的其它硬件資源,以觸發(fā)或者以其它方式控制各自視頻,3D或者2D分量的呈現(xiàn)。按照這種方式,可以仍然與其自身的定時器獨立地,即異步,更新每ー個層。然而,可以通過多媒體播放器同步各種分量的呈現(xiàn)以用于表示。例如,可以在執(zhí)行用于表示的腳本的多媒體播放器的控制下顯示包括2D圖形,3D圖形和視頻的多媒體表示。可以在腳本中指定每ー個分量在該表示的顯示中表示的整體時序和位置,并且通過多媒體播放器控制。換句話說,可以在腳本中指定對于每ー個分量的“時間”和“地點”并且由多媒體播放器控制。然而,可以獨立更新所述分量中的一個或者多個。例如,可以在分離的視頻解碼器硬件資源的控制下,以獨立的幀速率更新視頻分量。類似地,可以在各自硬件資源的控制下,以不同的速率在相同的表示中分別彼此獨立地更新2D和3D圖形分量。盡管可以將多媒體內(nèi)容中分量的不同類型中的至少ー些排除在軟件合成操作之夕卜,但是所述分量的全部仍然可以參與多媒體播放器的事件模型。在一個實施例中,可以通過與執(zhí)行多媒體播放器的硬件資源(例如CPU)分離的硬件資源(例如處理器,GPU,視頻解碼器等等)執(zhí)行分離層中的至少ー個分離層的呈現(xiàn)。進而,分層模型可以允許對于給定層、在沒有交互的情況下,獨立使用不同的硬件部件。在一個實施例中,可以對于所述層限定如何對其進行合成的固定深度。例如,視頻層可以是底部 深度層,3D圖形層可以是中間/中級深度層,并且2D圖形層可以是頂部深度層。在ー個實施例中,可以利用針對透明度的阿爾法值呈現(xiàn)ー個或者多個層。在一個實施例中,視頻層可以包括硬件加速或者硬件解碼的視頻??梢詫⒁曨l層呈現(xiàn)為底部層以用于表示。在一些實施例中,可以通過專用視頻解碼器硬件資源呈現(xiàn)視頻層。例如,可以使用會完全驅(qū)動視頻層的專用硬件視頻解碼芯片或者GPU來呈現(xiàn)視頻。這可以允許視頻從解碼到表示的完全GPU加速。在一個實施例中,可以使用加速編碼解碼器(例如H. 264)對視頻內(nèi)容進行編碼。使用加速編碼解碼器對視頻進行編碼可以促進從視頻解碼到呈現(xiàn)的完全GPU加速。結(jié)果,如下面在方框120處討論的,回讀(即,從GPU向中央處理単元(CPU)發(fā)送數(shù)據(jù))對于合成視頻幀可以不是必要的。在一些實施例中,硬件解碼器可以不解碼矩形到矩形(rectangular to rectangular)視頻或者需要縮放或者旋轉(zhuǎn)的視頻。例如,多媒體播放器可以對于2D圖形分量應(yīng)用軟件控制的混合,過濾或者旋轉(zhuǎn)功能??梢詫⒁曨l分量排除在這樣的操作之外。而且,硬件解碼器可以進ー步跳過否則將要求在CPU中使用軟件的操作。在一個實施例中,可以在運行時間或者顯示時間之前預(yù)呈現(xiàn)視頻分量。此外,視頻層可以包括多個視頻子層。然而,在一些實施例中,一次僅可以合成多個視頻中的一個視頻(例如在移動設(shè)備上)。多媒體內(nèi)容可以包括多于ー個視頻分量,每一個視頻分量可以呈現(xiàn)至其自身的視頻層中。因而,可以呈現(xiàn)多個視頻層。進而,實際視頻會占據(jù)或者不會占據(jù)完全視頻層。在一個實施例中,由多媒體播放器支持的API不會表示顯示列表內(nèi)的視頻幀,而是會表示位于通過GPU染色的級后面的紋理內(nèi)的視頻幀。這會允許API直接在屏幕上對在圖形卡存儲器上可獲得的內(nèi)容進行染色。在一個實施例中,3D向量圖形層可以包括加速或者未加速的3D圖形??梢詫?D圖形層呈現(xiàn)為中間層以用于表示,位于視頻層上面以及2D圖形層下面。在一些實施例中,硬件可以允許3D圖形層位于視頻層后面。在這樣的實施例中,由多媒體播放器支持的API可以支持將3D圖形層放置在視頻層后面。對于多媒體內(nèi)容層的不同類型要求固定的層深度順序可以促進利用用于這樣的層的呈現(xiàn)和合成的分離硬件資源的優(yōu)點??梢圆辉趫?zhí)行播放器的CPU上的軟件中而是在根據(jù)對于所述層的限定的固定深度順序的分離硬件資源中執(zhí)行對所述層進行合成。然而,對于層合成具有更先進硬件資源的其它實施例可以支持各種層深度排序。
與視頻層類似,可以使用諸如3D圖形卡或者GPU的專用硬件代替CPU上的軟件來呈現(xiàn)3D圖形層。這樣,就算真的有,回讀在合成之前也可能不是必需的。在一個實施例中,可以使用相同的基礎(chǔ)設(shè)施而不將視頻呈現(xiàn)為3D圖形或2D圖形。與視頻的情況相同,3D圖形可以占據(jù)或者不占據(jù)完全3D圖形層。在一些實施例中,可以在運行時通過CPU數(shù)據(jù)動態(tài)地驅(qū)動3D圖形層,即,可以不預(yù)呈現(xiàn)3D圖形層。在可獲得吋,3D圖形層和視頻層二者都可以使用硬件加速的位塊傳送(blitting)。與視頻巾貞的情況相同,API可以表示位于經(jīng)過GPU染色的級后面的紋理內(nèi)的3D緩沖器。因而,視頻幀和3D分量可以不是實際的顯示對象以使得可以不在API中應(yīng)用旋轉(zhuǎn),混合模式,過濾器和其它效果。在一個實施例中,可以將ー個或者多個3D圖形分量呈現(xiàn)為ー個或者多個3D圖形層。在一個實施例中,如果沒有充足的分離硬件資源可獲得,可能會不能夠使用非常快的CPU光柵器(rasterizer)在CPU上呈現(xiàn)視頻層和/或3D圖形層。因此,多媒體播放器可以檢測特定計算設(shè)備上的可獲得硬件,并且根據(jù)可獲得硬件呈現(xiàn)各種內(nèi)容分量。在一個實施例中,2D圖形層可以包括規(guī)則的向量圖形或者位形,例如RGB數(shù)據(jù)等等。在一些實施例中,可以將ー個或者多個2D圖形分量呈現(xiàn)為一個或者多個分離的2D 圖形層。在其它實施例中,可以將全部2D圖形分量發(fā)送到位于相同呈現(xiàn)層中的合成硬件資源。在一個實施例中,2D圖形層可以是頂部層,位于3D圖形和視頻層上面。進而,2D圖形層可以包括針對透明度的阿爾法值。在一些實施例中,2D圖形層可以是從CPU軟件光柵器呈現(xiàn)的軟件層。在一些實施例中,2D圖形層可以在運行時由CPU數(shù)據(jù)動態(tài)地驅(qū)動,但是在不同的硬件資源(例如GPU)上呈現(xiàn)。在一個實施例中,多媒體播放器可以對2D圖形分量應(yīng)用一個或者多個軟件控制的混合,過濾或者旋轉(zhuǎn)功能。在一個實施例中,各種內(nèi)容層可以異步地更新。例如,視頻內(nèi)容可以以20幀每秒(fps)更新,而向量層(例如小標題層)可以每2秒鐘進行更新。通過允許視頻以其自身的幀速率進行播放,通過硬件進行解碼并且以合適的幀速率進行表示,同時諸如3D要素的其它要素可以被獨立更新并且以較高速率表示,異步更新可以避免同步問題。然而,仍然在多媒體播放器的指導(dǎo)下表示全部分量以使得在給定時刻t,全部層表示正確或者合適的狀態(tài)(例如,如在用于多媒體表示的腳本中限定)。因而,可以以合適的獨立速率進行呈現(xiàn),而多媒體播放器可以提供全局時間控制以提供多媒體表示的正確的整體顯示。在圖I中的120處,可以對每一個分離層進行合成以用于顯示??梢酝ㄟ^與執(zhí)行多媒體播放器的硬件資源分離的硬件資源執(zhí)行合成。例如,在一個實施例中,中央處理單元(CPU)可以執(zhí)行多媒體播放器而圖形處理單元(GPU)可以執(zhí)行合成??梢栽陲@示時將多個獨立呈現(xiàn)的層合成到一起。為此,可以向顯示器提供該合成。在一些實施例中,合成每ー個分離層以用于顯示可以包括以固定順序合成所述層。例如,在一個實施例中,可以按照從底部到頂部的順序合成視頻層,3D圖形層和2D圖形層。在一個實施例中,可以通過GPU執(zhí)行合成。GPU可以是用于執(zhí)行內(nèi)容層的合成的硬件的專用片段或者可以將合成構(gòu)建到呈現(xiàn)例如3D圖形層的內(nèi)容層之ー的GPU??梢岳脧牡撞康巾敳繉拥陌柗ɑ旌蟻韴?zhí)行合成以使得先前的獨立層可以交互。對于所述層具有固定深度順序可以促進在諸如GPU的分離硬件資源中合成,而不必在CPU中對全部層進行操作。在一個實施例中,在顯示時,呈現(xiàn)視頻的硬件可以將視頻逐幀地饋送到GPU以與其它層合成。按照這種方式,通過幀速率或者通過在流之間切換,視頻可以是靈活的。在一些實施例中,GPU可以包括一個或者多個緩沖器以及執(zhí)行混合的硬件的其它片段。在一些實施例中,可以經(jīng)由多媒體播放器的API按照指定來執(zhí)行混合。如上所述,可以按照呈現(xiàn)來異步或者獨立更新所述層。這可以允許正確地顯示全部層而與更新哪ー個層無關(guān)。在一些實施例中,在將3D內(nèi)容移動到最終顯示器時,該3D內(nèi)容可以利用GPU抗鋸齒(anti-aliasing)。多媒體播放器可以支持來自用戶的交互以及用于表示的其它事件。在一個實施例中,集成執(zhí)行環(huán)境可以用于控 制內(nèi)容層。該環(huán)境可以是接收輸入并且執(zhí)行腳本(例如ActionScript腳本)的腳本環(huán)境,以對所述層中的ー個層執(zhí)行動作。因此,各種內(nèi)容分量可以分別參與播放器的事件模型??梢詫⑹录浇拥絼?chuàng)建可以在編程環(huán)境的動作腳本中具有要素或者相對應(yīng)對象的對象的內(nèi)容層之一??梢酝ㄟ^集成執(zhí)行環(huán)境接收輸入以修改3D圖形層或者視頻層的對象的要素(例如尺寸,位置等等)。在一個實施例中,視頻和3D圖形對象可以不參加腳本中的合成操作(例如過濾器,與其它層混合,旋轉(zhuǎn)等等)。然而,2D圖形對象可以具有應(yīng)用到其的全部修改和合成操作。在一些實施例中,可以將事件附接到3D圖形,可以向其分配集成執(zhí)行環(huán)境以對事件做出響應(yīng)。修改事件會影響整體媒體回放的流。通過創(chuàng)建不同的層,可以以執(zhí)行呈現(xiàn)的硬件的接近本地性能來呈現(xiàn)每一個層。進而,與其它層獨立地呈現(xiàn)所述層促進跨平臺能力。高性能呈現(xiàn)可以利用例如位于GPU或者其它專用硬件中的硬件加速。在這樣做時,呈現(xiàn)和合成可以不嚴重依賴于軟件,這會產(chǎn)生更大的速度和降低的功率使用。因而,具有不太強勁的CPU但是具有充分視頻解碼能力的設(shè)備(例如電視,機頂盒,移動設(shè)備等等)可以以較高幀速率呈現(xiàn)包括3D的視頻。圖2說明了用于對內(nèi)容進行分層以用于高性能媒體回放的系統(tǒng)的ー個實施例的方框圖。在所說明的實施例中,可以通過諸如ー個或者多個視頻源202,ー個或者多個3D圖形源204,以及ー個或者多個向量或者位形源(2D) 206的不同硬件資源獨立呈現(xiàn)不同的內(nèi)容分量。一個或者多個視頻源202可以將用于呈現(xiàn)視頻分量的硬件解碼器分離為ー個或者多個分離的視頻層。ー個或者多個3D圖形源204可以是用于將3D圖形分量呈現(xiàn)為一個或者多個分離層的諸如ー個或者多個GPU的ー個或者多個硬件資源。可以通過一個或者多個分離的圖形呈現(xiàn)源206呈現(xiàn)2D圖形分量??梢詫⒚咯`個獨立呈現(xiàn)的層供應(yīng)到包括合成模塊210的硬件資源以合成所述層用于顯示。在一些實施例中,包括合成模塊210的硬件資源可以是包括視頻源202,3D圖形源204和/或2D圖形源206中的一個或者多個的相同硬件資源。例如,可以在也呈現(xiàn)ー個或者多個3D或者2D圖形分量的GPU中合成所述層。類似地,一個或者多個向量或者位形源206包括也可以執(zhí)行播放器208的CPU 212。可以在諸如GPU或者分離圖形卡的不同硬件資源中呈現(xiàn)ー個或者多個2D圖形分量。CPU 212可以執(zhí)行多媒體播放器208,這可以包括用于控制多媒體表示的流的腳本引擎。播放器208也可以支持與多媒體表示的各種分量的事件模型交互以及多媒體表示的各種分量之間的事件模型交互。多媒體播放器208可以檢測多媒體播放器208和CPU 212駐留其中的設(shè)備的硬件能力。例如,多媒體播放器208可以檢測3D圖形卡,視頻解碼器,GPU和CPU。在這樣的示例中,可以通過CPU呈現(xiàn)2D圖形分量,通過3D圖形卡呈現(xiàn)3D圖形分量,通過視頻解碼器呈現(xiàn)視頻分量,并且通過GPU合成所呈現(xiàn)的層。在另ー示例中,多媒體播放器208可以檢測GPU和CPU。GPU可以執(zhí)行合成而CPU可以呈現(xiàn)所述層中的一些或者全部?;蛘逩PU可以執(zhí)行合成,并且此外,可以呈現(xiàn)視頻分量或者3D圖形分量。通常,設(shè)計播放器208以檢測和利用可獲得的硬件資源以盡可能多地呈現(xiàn)所述獨立合成的層,以利用在給定設(shè)備中支持的硬件加速(例如卸載呈現(xiàn)以及來自CPU的合成)。圖3是使用支持用于包括表示中的多媒體內(nèi)容的不同類型的API的腳本302限定的多媒體表示300的圖,所述不同類型包括2D圖形,3D圖形和視頻。根據(jù)ー些實施例,腳本也利用多媒體播放器的事件模型以考慮與不同內(nèi)容對象的交互以及不同內(nèi)容對象之間的交互。圖3說明了可以包括腳本302的表示300。腳本302可以包括一個或者多個視頻層對象304,ー個或者多個3D層對象306,以及ー個或者多個2D層對象308。如在圖I-圖2中描述的,可以獨立呈現(xiàn)的每ー個內(nèi)容對象可以參與多媒體播放器的事件模型。因此,可以利用對象304-308在腳本302中表示每ー個層。在一些實施例中,視頻層對象304和3D層對象306可以參與事件模型,然而,它們不會參加腳本302中的操作,例如過濾,與其它層混合,或者旋轉(zhuǎn)。視頻層對象304和3D層對象306可以參加尺寸調(diào)整和定位操作以及分配以對事件做出響應(yīng)。2D層對象308可以參加任何腳本302操作。因此,腳本302可以將事件附接到各種內(nèi)容對象,這會便于對于系統(tǒng)的整體交互事件模型。事件可以影響表示的整個回放的流。 示例系統(tǒng)圖4說明了根據(jù)這里描述的各種呈現(xiàn)和合成技術(shù)的多媒體播放器通過其可以表示多媒體表示的設(shè)備。該設(shè)備可以與各種其它設(shè)備交互。一種這樣的設(shè)備是諸如圖4說明的計算機系統(tǒng)500。在不同實施例中,所述設(shè)備可以是各種類型設(shè)備中的任意ー個,包括但不局限干,個人計算機系統(tǒng),桌面計算機,便攜式電腦,筆記本,或者上網(wǎng)本計算機,主機計算機系統(tǒng),手持計算機,工作站,網(wǎng)絡(luò)計算機,照相機,機頂盒,移動設(shè)備,個人數(shù)字助理,智能電話,客戶端設(shè)備,視頻游戲控制臺,手持視頻游戲設(shè)備,應(yīng)用服務(wù)器,存儲設(shè)備,諸如開關(guān),調(diào)制解調(diào)器,路由器之類的外圍設(shè)備,或者總體來說是任何類型的計算或者電子設(shè)備。在所說明的實施例中,計算機系統(tǒng)500包括一個或者多個硬件資源510和550,它們中的至少ー些可以經(jīng)由輸入/輸出(I/o)接ロ 530耦合到系統(tǒng)存儲器520。硬件資源510和550可以包括諸如CPU和/或GPU的一個或者多個處理器,一個或者多個視頻解碼器,和/或其它呈現(xiàn)或者合成硬件。計算機系統(tǒng)500進ー步包括耦合到I/O接ロ 530的網(wǎng)絡(luò)接ロ540,以及諸如光標控制設(shè)備560,鍵盤570和顯不器580的一個或者多個輸入/輸出設(shè)備。在一些實施例中,預(yù)期可以使用計算機系統(tǒng)500的單個實例來實現(xiàn)實施例,而在其它實施例中,可以配置多個這樣的系統(tǒng),或者構(gòu)成計算機系統(tǒng)500的多個節(jié)點以主控實施例的不同部分或者實例。例如,在一個實施例中,可以經(jīng)由與計算機系統(tǒng)500中實現(xiàn)其它元件的那些節(jié)點不同的一個或者多個節(jié)點實現(xiàn)ー些元件。在各種實施例中,計算機系統(tǒng)500可以是包括一個處理器的單處理器系統(tǒng),或者是包括幾個處理器(例如兩個,四個,八個或者另ー適合數(shù)量)的多處理器系統(tǒng)。處理器可以是能夠執(zhí)行指令的任何適合的處理器。例如,在各種實施例中,處理器可以是實現(xiàn)諸如x86, PowerPC, SPARC或者MIPS指令集架構(gòu)(ISA)的各種ISA中的任意一個或者任何其它適合的ISA的通用處理器或者嵌入式處理器。在多處理器系統(tǒng)中,每ー個處理器可以共同地,但是不是必需地,實現(xiàn)相同的ISA。在一些實施例中,至少ー個處理器可以是GPU。可以認為GPU是用于個人計算機,工作站,游戲控制臺或者其它計算或電子設(shè)備的專用圖形呈現(xiàn)設(shè)備?,F(xiàn)代GPU可以在操控和顯示計算機圖形方面非常有效,并且其高度并行的結(jié)構(gòu)可以使其比用于大量復(fù)雜圖形算法的典型CPU更加有效。例如,圖形處理器可以按照ー種方式實現(xiàn)多個圖形圖元操作,這種方式使得執(zhí)行它們比使用主機中央處理單元(CPU)向屏幕直接畫圖更加快速。在各種實施例中,這里公開的圖形處理方法可以至少部分地通過配置用于在這樣的GPU中的ー個GPU上執(zhí)行,或者在這樣的GTO中的兩個或者更多GPU上并行執(zhí)行,的程序指令來實現(xiàn)。GPU可以實現(xiàn)允許編程人員激活GPU的功能性的ー個或者多個API。合適的GPU可以從諸如NVIDIA公司,ATI技術(shù)(AMD)以及其它供應(yīng)商在商業(yè)上獲得??梢园凑斩喾N不同的物理形式實現(xiàn)諸如硬件資源550中的一個或者多個的GPU。例如,GPU可以采取專用圖形卡,集成圖形方案和/或混合方案的形式。專用圖形卡可以是3D圖形卡。GPU可以利用諸如PCI Express Graphics或者加速圖形端ロ(AGP)的擴展插槽與母板對接,并且因而可以相對容易地更換或者升級,假設(shè)母板能夠支持升級。然而,專用GPU不必是可移除的,也不必以標準形式與母板對接。術(shù)語“專用”指代硬件圖形方案可以具有專用于圖形使用的RAM的事實,而不指代該圖形方案是否為可移除或者可更換。由于尺寸和重量局限,用于便攜式計算機的專用GPU可以經(jīng)過非標準并且通常是私有的插槽進行對接。仍然可以將這樣的端ロ認為是AGP或者PCI express,即使它們在物理上不能彼此互換。 集成圖形方案或者共享圖形方案是利用計算機系統(tǒng)RAM的一部分而不是專用圖形存儲器的圖形處理器。例如,現(xiàn)代桌面母板通常包括集成圖形方案并且具有可獲得的擴展插槽以隨后添加專用圖形卡。由于GPU會是存儲器極度密集的,因此集成方案由于其不具有專用視頻存儲器而發(fā)現(xiàn)其自身競爭優(yōu)于具有CPU的已經(jīng)很慢的系統(tǒng)RAM。例如,系統(tǒng)RAM會經(jīng)歷2GB/s和8GB/s之間的帶寬,而大多數(shù)專用GPU享受從15GB/s到30GB/s的帶寬?;旌戏桨敢部梢耘c系統(tǒng)存儲器共享存儲器,但是會具有比離散或者專用圖形卡更小數(shù)量的板上存儲器以補償系統(tǒng)RAM的高等待時間。在圖像處理單元和計算機系統(tǒng)500的剰余部分之間通信的數(shù)據(jù)可以經(jīng)過圖形卡插槽或者諸如圖5的I/O接ロ 530的其它接ロ行迸。注意到,在各種實施例中,可以配置程序指令525以將圖形應(yīng)用(例如這里描述的多媒體播放器)實現(xiàn)為單機應(yīng)用,或者實現(xiàn)為另ー圖形應(yīng)用或者圖形庫的模塊。例如,在一個實施例中,可以配置程序指令525以實現(xiàn)諸如染色,編輯,發(fā)布,拍照,游戲,動畫和/或其它應(yīng)用的圖形應(yīng)用,并且可以配置程序指令525以提供這里描述的功能性。在另ー實施例中,可以配置程序指令525以在由在GPU和/或其它硬件資源510或者550上執(zhí)行的另ー圖形應(yīng)用提供的一個或者多個功能或者模塊(例如呈現(xiàn)模塊或者合成模塊)中實現(xiàn)這里描述的技術(shù)。這些模塊可以在CPU和/或GPU中的一個或者多個上執(zhí)行以使計算機系統(tǒng)500提供這里描述的功能性??梢允褂萌魏纹谕木幊陶Z言,腳本語言,或者編程語言和/或腳本語言的組合,例如C,C++,C#,Java , Perl等等,在各種實施例中實現(xiàn)多媒體播放器。例如,在一個實施例中,多媒體播放器可以是基于JAVA的,而在另一實施例中,可以使用C或者C++編程語言實現(xiàn)該多媒體播放器。在其它實施例中,可以使用專門用于開發(fā)通過諸如GPU的特定圖形硬件執(zhí)行的程序的專用圖形語言實現(xiàn)多媒體播放器。此外,多媒體播放器利用專門分配用于由圖形處理器使用的存儲器,例如位于包括圖形處理器的圖形板上的存儲器。在各種實施例中,也可以配置程序指令525以呈現(xiàn)圖像,并且在一個或者多個顯示器上將其表示為操作的輸出和/或以在存儲器520和/或外部存儲設(shè)備中存儲數(shù)據(jù)??梢耘渲孟到y(tǒng)存儲器520以存儲可由處理器510訪問的程序指令和/或數(shù)據(jù)。在各種實施例中,可以使用諸如靜態(tài)隨機訪問存儲器(SRAM),同步動態(tài)RAM(SDRAM),非易失性/閃存類型存儲器,或者存儲器的任意其它類型的適合存儲器技術(shù)實現(xiàn)系統(tǒng)存儲器520。在所說明的實施例中,將實現(xiàn)諸如在上面對于多媒體播放器的實施例中描述的期望功能,呈現(xiàn)模塊和/或合成模塊的程序指令和數(shù)據(jù)表示為分別存儲在系統(tǒng)存儲器520內(nèi)作為程序指令525以及數(shù)據(jù)存儲535內(nèi)。在其它實施例中,可以在計算機可訪問介質(zhì)的不同類型上或者在與系統(tǒng)存儲器520或者計算機系統(tǒng)500分離的類似介質(zhì)上接收,發(fā)送或者存儲程序指令和/或數(shù)據(jù)。通常來說,計算機可訪問介質(zhì)可以包括諸如磁或者光介質(zhì)的存儲介質(zhì)或者存儲器介質(zhì),例如經(jīng)由I/O接ロ 530耦合到計算機系統(tǒng)500的磁盤或者⑶/DVD-ROM??梢酝ㄟ^傳輸介質(zhì)或者諸如電,電磁或者數(shù)字信號的信號傳輸經(jīng)由計算機可訪問介質(zhì)存儲的程序指令和數(shù)據(jù),該傳輸介質(zhì)或者信號可以經(jīng)由諸如網(wǎng)絡(luò)和/或無線鏈路的通信介質(zhì)傳送,例如可以經(jīng)由網(wǎng)絡(luò)接ロ 540實現(xiàn)。在一個實施例中,可以配置I/O接ロ 530以協(xié)調(diào)處理器510,系統(tǒng)存儲器520以及包括網(wǎng)絡(luò)接ロ 540或者其它外圍接ロ的設(shè)備中的任意外圍設(shè)備之間的I/O流量。在ー些實 施例中,I/O接ロ 530可以執(zhí)行任意必需的協(xié)議,時序或者其它數(shù)據(jù)變換以將來自一個部件(例如系統(tǒng)存儲器520)的數(shù)據(jù)信號轉(zhuǎn)換為適合于另一部件(例如處理器510)使用的格式。在一些實施例中,I/O接ロ 530可以包括對于經(jīng)過各種類型的外圍總線附接的設(shè)備的支持,例如以外圍部件互連(PCI)總線標準或者通用串行總線(USB)標準的變體為例。在ー些實施例中,可以將I/O接ロ 530的功能劃分為兩個或者更多分離的部件,例如以北橋和南橋為例。此外,在一些實施例中,可以將諸如到系統(tǒng)存儲器520的接ロ的I/O接ロ 530的功能中的一些或者全部直接結(jié)合到處理器510中??梢耘渲镁W(wǎng)絡(luò)接ロ 540以允許數(shù)據(jù)在計算機系統(tǒng)500以及諸如其它計算機系統(tǒng)的附接到網(wǎng)絡(luò)的其它設(shè)備之間交換,或者在計算機系統(tǒng)500的節(jié)點之間交換。在各種實施例中,網(wǎng)絡(luò)接ロ 540可以支持經(jīng)由例如以以太網(wǎng)網(wǎng)絡(luò)的任何適合類型為例的有線或者無線通用數(shù)據(jù)網(wǎng)絡(luò);經(jīng)由諸如模擬語音網(wǎng)絡(luò)或者數(shù)字光纖通信網(wǎng)絡(luò)的電信/電話網(wǎng)絡(luò);經(jīng)由諸如Fibre Channel SAN的存儲區(qū)域網(wǎng)絡(luò),或者經(jīng)由網(wǎng)絡(luò)和/或協(xié)議的任何其它類型,的通信。在一些實施例中,硬件資源550可以支持一個或者多個顯示終端,鍵盤,鍵區(qū),觸摸板,掃描設(shè)備,語音或者光學(xué)識別設(shè)備,或者適于通過ー個或者多個計算機系統(tǒng)500輸入或者獲取數(shù)據(jù)的任何其它設(shè)備。多個輸入/輸出設(shè)備可以存在于計算機系統(tǒng)500中或者可以分布在計算機系統(tǒng)500的各種節(jié)點上。在一些實施例中,類似的輸入/輸出設(shè)備可以與計算機系統(tǒng)500分離并且可以經(jīng)過有線或者無線連接,諸如通過網(wǎng)絡(luò)接ロ 540,與計算機系統(tǒng)500的一個或者多個節(jié)點交互。如圖4所示,存儲器520可以包括配置以實現(xiàn)這里描述的實施例的程序指令525,以及包括可由程序指令525訪問的各種數(shù)據(jù)的數(shù)據(jù)存儲535。在一個實施例中,程序指令525可以包括如在上面的附圖中說明的實施例的軟件要素。數(shù)據(jù)存儲535可以包括可以在實施例中使用的數(shù)據(jù)。在其它實施例中,可以包括其它或者不同的軟件要素和數(shù)據(jù)。本領(lǐng)域的普通技術(shù)人員將意識到,計算機系統(tǒng)500只是說明性的并且并不g在限制這里描述的呈現(xiàn)模塊和合成模塊的范圍。具體地說,計算機系統(tǒng)和設(shè)備可以包括能夠執(zhí)行所表明的功能的硬件或者軟件的任意組合,包括計算機,個人計算機系統(tǒng),桌面計算機,便攜式電腦,筆記本,或者上網(wǎng)本計算機,主機計算機系統(tǒng),手持計算機,工作站,網(wǎng)絡(luò)計算機,照相機,機頂盒,移動設(shè)備,智能電話,平板計算設(shè)備,網(wǎng)絡(luò)設(shè)備,互聯(lián)網(wǎng)儀器,PDA,無線電話,尋呼機,客戶端設(shè)備,視頻游戲控制臺,手持視頻游戲設(shè)備,應(yīng)用服務(wù)器,存儲設(shè)備,諸如開關(guān),調(diào)制解調(diào)器,路由器的外圍設(shè)備,或者通常為計算或者電子設(shè)備的任意類型。計算機系統(tǒng)500也可以連接到?jīng)]有說明的其它設(shè)備,或者代替地可以作為單機系統(tǒng)操作。此外,由所說明的部件提供的功能性在一些實施例中可以組合在更少的部件中或者分布在附加的部件中。類似地,在一些實施例中,可以不提供所說明的部件中的一些的功能性和/或可獲得其它附加的功能性。本領(lǐng)域的普通技術(shù)人員也將意識到,盡管將各種項目說明為在被使用的同時存儲在存儲器中或者存儲設(shè)備上,但是出于存儲器管理和數(shù)據(jù)一致性目的,可以在存儲器和其它存儲設(shè)備之間傳輸這些項目或者其一部分??蛇x地,在其它實施例中,軟件分量中的ー些或者全部可以在另一設(shè)備上的存儲器中執(zhí)行并且經(jīng)由計算機間通信與所說明的計算機系統(tǒng)通信。所述系統(tǒng)分量或者數(shù)據(jù)結(jié)構(gòu)中的一些或者全部也可以存儲(例如作為指令或者結(jié)構(gòu)化數(shù)據(jù))在計算機可訪問介質(zhì)或者便攜式制品上,以由其各種示例在上面已經(jīng)描述的合適的驅(qū)動讀取。在一些實施例中,可以經(jīng)由傳輸介質(zhì)或者經(jīng)由諸如網(wǎng)絡(luò)和/或無線鏈路的通信介質(zhì)傳送的諸如電,電磁,或者數(shù)字信號的信號將存儲在與計算機系統(tǒng)500分離的計 算機可訪問介質(zhì)上的指令傳輸?shù)接嬎銠C系統(tǒng)500。各種實施例可以進一歩包括在計算機可訪問介質(zhì)上接收,發(fā)送或者存儲根據(jù)前面描述所實現(xiàn)的指令和/或數(shù)據(jù)。因此,本公開可以利用其它計算機系統(tǒng)配置實踐。各種實施例可以進一歩包括在計算機可訪問介質(zhì)上接收,發(fā)送或者存儲根據(jù)前面的描述實現(xiàn)的指令和/或數(shù)據(jù)。通常來說,計算機可訪問介質(zhì)可以包括諸如以磁盤或者DVD/CD-R0M為例的磁或者光介質(zhì)的存儲介質(zhì)或者存儲器介質(zhì),諸如RAM(例如SDRAM,DDR,RDRAM,SRAM等等),ROM等等的易失性或者非易失性介質(zhì),以及諸如經(jīng)由例如網(wǎng)絡(luò)和/或無線鏈路的通信介質(zhì)傳送的電,電磁,或者數(shù)字信號的傳輸介質(zhì)或者信號。附圖中說明的以及這里描述的各種方法代表方法的示例實施例。所述方法可以在軟件,硬件或者其組合中實現(xiàn)。可以改變方法的順序,并且可以對各種元素進行添加,重新排序,組合,省略,修改等等。對于得益于本公開的本領(lǐng)域的普通技術(shù)人員來說顯見的是,可以進行各種變型和改變。本公開g在覆蓋全部這樣的變型和改變,并且因此,g在以說明性意義而非限制性意義來考慮上面的描述。
權(quán)利要求
1.一種方法,包括 通過多媒體播放器控制跨平臺多媒體內(nèi)容的表示,其中所述多媒體內(nèi)容包括二維(2D)圖形分量,三維(3D)圖形分量,以及視頻分量; 將所述2D圖形分量,所述3D圖形分量,以及所述視頻分量分別呈現(xiàn)為分離層; 其中分別彼此獨立地呈現(xiàn)所述2D圖形分量,所述3D圖形分量,以及所述視頻分量; 其中通過所述多媒體播放器同步所述呈現(xiàn)以用于所述表示;并且其中通過與執(zhí)行所述多媒體播放器的硬件資源分離的硬件資源執(zhí)行對于所述分離層中的至少一個分離層的所述呈現(xiàn);以及 合成每一個分離層以用于顯示,其中通過與執(zhí)行所述多媒體播放器的所述硬件資源分離的硬件資源執(zhí)行所述合成。
2.如權(quán)利要求I的方法,其中在計算機上執(zhí)行所述控制,所述呈現(xiàn)以及所述合成,其中所述多媒體播放器在所述計算機的中央處理單元(CPU)上執(zhí)行,并且所述合成在所述計算機的圖形處理單元(GPU)上執(zhí)行。
3.如權(quán)利要求2的方法,其中所述呈現(xiàn)所述2D圖形分量層在所述CPU上執(zhí)行。
4.如權(quán)利要求2的方法,其中所述呈現(xiàn)所述3D圖形分量層在所述GPU上執(zhí)行。
5.如權(quán)利要求I的方法,其中所述呈現(xiàn)所述視頻分量層通過專用視頻解碼器硬件資源執(zhí)行。
6.如權(quán)利要求I的方法,其中所述多媒體內(nèi)容包括多于一個2D圖形分量,3D圖形分量,或者視頻分量,并且其中將多于一個分量分別獨立呈現(xiàn)為另一分離層。
7.如權(quán)利要求I的方法,其中所述合成每一個分離層以用于顯示包括按照固定順序合成所述層。
8.如權(quán)利要求I的方法,進一步包括所述多媒體播放器對于所述2D圖形分量應(yīng)用一個或者多個軟件控制的混合,過濾或者旋轉(zhuǎn)功能,其中所述3D圖形和視頻分量被排除在這樣的操作之外。
9.如權(quán)利要求I的方法,進一步包括每一個分量參與所述多媒體播放器的事件模型。
10.如權(quán)利要求I的方法,其中所述2D圖形分量包括向量或者位形。
11.一種存儲程序指令的非暫態(tài)計算機可讀存儲介質(zhì),其中所述程序指令為計算機可執(zhí)行以實現(xiàn)用于下面的多媒體播放器 控制跨平臺多媒體內(nèi)容的表示,其中所述多媒體內(nèi)容包括二維(2D)圖形分量,三維(3D)圖形分量,以及視頻分量; 指導(dǎo)將所述2D圖形分量,所述3D圖形分量,以及所述視頻分量分別呈現(xiàn)為分離層; 其中分別彼此獨立地呈現(xiàn)所述2D圖形分量,所述3D圖形分量,以及所述視頻分量;并且 其中通過與執(zhí)行所述多媒體播放器的硬件資源分離的硬件資源執(zhí)行對于所述分離層中的至少一個分離層的所述呈現(xiàn);以及 指導(dǎo)每一個分離層的合成以用于顯示,其中通過與執(zhí)行所述多媒體播放器的所述硬件資源分離的硬件資源執(zhí)行所述合成。
12.如權(quán)利要求11的非暫態(tài)計算機可讀存儲介質(zhì),其中所述多媒體播放器在計算機的中央處理單元(CPU)上執(zhí)行,并且所述合成在所述計算機的圖形處理單元(GPU)上執(zhí)行。
13.如權(quán)利要求12的非暫態(tài)計算機可讀存儲介質(zhì),其中呈現(xiàn)所述2D圖形分量層在所述CPU上執(zhí)行。
14.如權(quán)利要求12的非暫態(tài)計算機可讀存儲介質(zhì),其中呈現(xiàn)所述3D圖形分量層在所述GPU上執(zhí)行。
15.如權(quán)利要求11的非暫態(tài)計算機可讀存儲介質(zhì),其中呈現(xiàn)所述視頻分量層通過專用視頻解碼器硬件資源執(zhí)行。
16.如權(quán)利要求11的非暫態(tài)計算機可讀存儲介質(zhì),其中所述多媒體內(nèi)容包括多于一個2D圖形分量,3D圖形分量,或者視頻分量,并且其中將多于一個分量分別獨立呈現(xiàn)為另一分離層。
17.如權(quán)利要求11的非暫態(tài)計算機可讀存儲介質(zhì),其中所述合成每一個分離層以用于顯示包括按照固定順序合成所述層。
18.如權(quán)利要求11的非暫態(tài)計算機可讀存儲介質(zhì),其中所述程序指令進一步為計算機可執(zhí)行以對于所述2D圖形分量應(yīng)用一個或者多個軟件控制的混合,過濾或者旋轉(zhuǎn)功能,其中所述3D圖形和視頻分量被排除在這樣的操作之外。
19.如權(quán)利要求11的非暫態(tài)計算機可讀存儲介質(zhì),其中所述程序指令進一步為計算機可執(zhí)行以實現(xiàn)所述多媒體播放器的事件模型; 其中所述2D圖形分量,3D圖形分量,以及所述視頻分量全部參與所述事件模型。
20.如權(quán)利要求11的非暫態(tài)計算機可讀存儲介質(zhì),其中所述2D圖形分量包括向量或者位形。
21.—種系統(tǒng),包括 配置以進行下面操作的多個硬件資源 實現(xiàn)用于控制跨平臺多媒體內(nèi)容的表示的多媒體播放器,其中所述多媒體內(nèi)容包括二維(2D)圖形分量,三維(3D)圖形分量,以及視頻分量; 將所述2D圖形分量,所述3D圖形分量,以及所述視頻分量分別呈現(xiàn)為分離層; 其中分別彼此獨立地呈現(xiàn)所述2D圖形分量,所述3D圖形分量,以及所述視頻分量; 其中通過所述多媒體播放器同步所述呈現(xiàn)以用于所述表示;并且 其中對于所述分離層中的至少一個分離層的所述呈現(xiàn)通過所述多個硬件資源中與執(zhí)行所述多媒體播放器的一個硬件資源不同的一個硬件資源執(zhí)行;以及 合成每一個分離層以用于顯示,其中所述合成通過所述多個硬件資源中與執(zhí)行所述多媒體播放器的一個硬件資源不同的一個硬件資源執(zhí)行。
22.如權(quán)利要求21的系統(tǒng),其中所述多個硬件資源中的一個硬件資源為被配置以執(zhí)行程序指令以實現(xiàn)所述多媒體播放器的中央處理單元(CPU),并且所述多個硬件資源中的另一個硬件資源為被配置以合成每一個分離層以用于顯示的圖形處理單元(GPU)。
23.如權(quán)利要求22的系統(tǒng),其中所述CPU被進一步配置以執(zhí)行程序指令以呈現(xiàn)所述2D圖形分量層。
24.如權(quán)利要求22的系統(tǒng),其中所述GPU被配置以呈現(xiàn)所述3D圖形分量層。
25.如權(quán)利要求21的系統(tǒng),其中所述多個硬件資源中的一個硬件資源為專用視頻解碼器,其中所述專用視頻解碼器被配置以呈現(xiàn)所述視頻分量層。
26.如權(quán)利要求21的系統(tǒng),其中所述多媒體內(nèi)容包括多于一個2D圖形分量,3D圖形分量,或者視頻分量,并且其中所述多個硬件資源中的一個或者多個被配置以將多于一個分量分別獨立呈現(xiàn)為另一分離層。
27.如權(quán)利要求21的系統(tǒng),其中合成每一個分離層以用于顯示包括按照固定順序合成所述層。
28.如權(quán)利要求21的系統(tǒng),其中所述多媒體播放器被配置以對于所述2D圖形分量應(yīng)用一個或者多個軟件控制的混合,過濾或者旋轉(zhuǎn)功能,其中所述3D圖形和視頻分量被排除在這樣的操作之外。
29.如權(quán)利要求21的系統(tǒng),其中每一個分量被配置以參與所述多媒體播放器的事件模型。
30.如權(quán)利要求21的系統(tǒng),其中所述2D圖形分量包括向量或者位形。
全文摘要
本發(fā)明涉及用于硬件加速媒體回放的獨立分層內(nèi)容。具體地,可以通過媒體播放器控制跨平臺多媒體內(nèi)容的表示。跨平臺內(nèi)容可以包括二維(2D)圖形分量,三維(3D)圖形分量,以及視頻分量。可以將每一個分量呈現(xiàn)為分離層,并且可以彼此獨立地呈現(xiàn)每一個分量。所述多媒體播放器可以同步所述分離的呈現(xiàn)以用于表示。在一個實施例中,可以通過與執(zhí)行所述多媒體播放器的硬件資源分離的硬件資源執(zhí)行所述分離層中的至少一個分離層的呈現(xiàn)??梢院铣擅恳粋€分離層用于顯示。在一個實施例中,可以通過與執(zhí)行所述多媒體播放器的硬件資源分離的硬件資源執(zhí)行所述合成。
文檔編號G06T1/00GK102737358SQ20121004870
公開日2012年10月17日 申請日期2012年2月27日 優(yōu)先權(quán)日2011年2月25日
發(fā)明者B·G·阿姆布里, D·A·特里斯特拉姆, L·B·托馬森, S·馬克特慕伊勒, T·宇羅 申請人:奧多比公司