媒體重放工作負(fù)荷調(diào)度器的制造方法
【專利摘要】本文描述了一種裝置、計(jì)算設(shè)備、媒體重放工作負(fù)荷調(diào)度器和計(jì)算機(jī)可讀介質(zhì)。所述裝置包括用于分配多個(gè)媒體幀用于批量媒體處理的媒體重放工作負(fù)荷調(diào)度邏輯、用于處理所述媒體幀的邏輯以及用于渲染處理過的媒體幀的邏輯。
【專利說明】媒體重放工作負(fù)荷調(diào)度器
【背景技術(shù)】
[0001]計(jì)算機(jī)系統(tǒng)典型地使用中央處理單元(CPU)、圖形處理單元(GPU)或其任何組合來重放媒體。例如,CPU可以在媒體重放期間執(zhí)行基于軟件的視頻解碼、處理和渲染功能。GTO可以用于在媒體重放期間的加速硬件解碼、處理和渲染功能。媒體重放在逐幀的基礎(chǔ)上發(fā)生。在媒體重放期間,CPU和GPU在幾個(gè)計(jì)算操作狀態(tài)或者C狀態(tài)之間轉(zhuǎn)變。C狀態(tài)指示其中CPU和GPU的未使用部分被斷電以便節(jié)省功率的各種狀態(tài)。CO狀態(tài)指代高功率操作狀態(tài)。GPU的Cx狀態(tài)指代當(dāng)與CO狀態(tài)相比較時(shí)的較低功率狀態(tài),其中GPU的一個(gè)或多個(gè)引擎處于睡眠狀態(tài)中以便降低功耗。類似地,CPU的Cx狀態(tài)指代當(dāng)與CO狀態(tài)相比較時(shí)的較低功率狀態(tài),其中CPU的一個(gè)或多個(gè)核心處于睡眠狀態(tài)中以便降低功耗。
【專利附圖】
【附圖說明】
[0002]圖1是可以用于調(diào)度媒體重放工作負(fù)荷的計(jì)算設(shè)備的方框圖;
[0003]圖2是媒體重放工作負(fù)荷的說明;
[0004]圖3是另一媒體重放工作負(fù)荷的說明;
[0005]圖4是媒體重放工作負(fù)荷調(diào)度器的方框圖;
[0006]圖5是媒體重放工作負(fù)荷調(diào)度器的處理流程圖;
[0007]圖6是執(zhí)行媒體重放工作負(fù)荷調(diào)度器的示例性系統(tǒng)的方框圖;
[0008]圖7是其中可以體現(xiàn)圖6的系統(tǒng)的小形狀因子設(shè)備的示意圖;以及
[0009]圖8是表示存儲(chǔ)用于媒體重放工作負(fù)荷調(diào)度器的代碼的有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)的方框圖。
[0010]在整個(gè)公開和附圖中使用相同的附圖標(biāo)記來參照類似的部件和特征。101系列中的附圖標(biāo)記指代最初在圖1中發(fā)現(xiàn)的特征;200系列中的附圖標(biāo)記指代最初在圖2中發(fā)現(xiàn)的特征;依此類推。
【具體實(shí)施方式】
[0011]CPU和GPU可以在CO狀態(tài)中對(duì)幀進(jìn)行解碼并且然后當(dāng)完成幀解碼時(shí)轉(zhuǎn)變到Cx狀態(tài)。幀是在一時(shí)間間隔內(nèi)被捕獲或渲染的靜止圖像,以便記錄或渲染視頻。在特定時(shí)間間隔內(nèi)捕獲或渲染的幀的數(shù)量被稱為幀率。例如,可以按照30幀每秒(FPS)、60FPS或任何其它的幀率來捕獲或渲染幀。按照這種方式,當(dāng)播放該視頻時(shí),每一個(gè)幀在短的時(shí)間段內(nèi)在顯示器上被渲染。用于將CPU或GPU從低功率操作狀態(tài)恢復(fù)到高功率操作狀態(tài)的處理被稱為上下文恢復(fù)。上下文恢復(fù)會(huì)在恢復(fù)由正在轉(zhuǎn)變到CO狀態(tài)的CPU或GPU的部分使用的數(shù)據(jù)時(shí)消耗功率。進(jìn)而,當(dāng)在從CO狀態(tài)到Cx狀態(tài)的轉(zhuǎn)變期間保存上下文時(shí),消耗功率。
[0012]中斷可以防止CPU轉(zhuǎn)變到其最低功率Cx狀態(tài)。在媒體重放期間,GPU將生成用于使能媒體重放工作負(fù)荷的處理協(xié)調(diào)的幾個(gè)中斷。例如,音頻解碼中斷、幀解碼中斷、在后處理中斷和渲染中斷可以由GPU生成到CPU,以便在處理工作負(fù)荷時(shí)識(shí)別GPU進(jìn)程。中斷可以在任務(wù)基礎(chǔ)上、在幀基礎(chǔ)上或者按照時(shí)序間隔生成。
[0013]本文描述的實(shí)施例涉及媒體重放工作負(fù)荷調(diào)度器。媒體重放工作負(fù)荷調(diào)度器可以在媒體重放和記錄期間降低功耗??梢允褂枚鄠€(gè)幀來解碼和在后處理重放工作負(fù)荷。所述多個(gè)幀是一批N個(gè)幀,其中使用計(jì)算設(shè)備的存儲(chǔ)器分配來確定N。多個(gè)幀然后被渲染,同時(shí)CPU和GPU進(jìn)入Cx狀態(tài)。降低了所生成的中斷的數(shù)量,這使CPU和GPU能夠進(jìn)入較深的Cx狀態(tài)。
[0014]在下面的描述和權(quán)利要求中,可以使用術(shù)語“耦接”和“連接”連同其派生詞。應(yīng)該理解,這些術(shù)語并不意在作為彼此的同義詞。而是,在特定實(shí)施例中,“連接”可以用于指示兩個(gè)或更多個(gè)元件彼此直接物理或電接觸?!榜罱印笨梢砸庵竷蓚€(gè)或更多個(gè)元件直接物理或電接觸。然而,“耦接”也可以意指兩個(gè)或更多個(gè)元件彼此不直接接觸,但是仍然彼此協(xié)作或相互作用。
[0015]一些實(shí)施例可以在硬件、固件和軟件中的一個(gè)或組合中實(shí)現(xiàn)。一些實(shí)施例也可以被實(shí)現(xiàn)為存儲(chǔ)在機(jī)器可讀介質(zhì)上的指令,該指令可以由計(jì)算平臺(tái)讀取并且執(zhí)行以便執(zhí)行本文描述的操作。機(jī)器可讀介質(zhì)可以包括用于以諸如計(jì)算機(jī)的機(jī)器可讀的形式存儲(chǔ)或傳輸信息的任何機(jī)制。例如,機(jī)器可讀介質(zhì)可以包括只讀存儲(chǔ)器(ROM);隨機(jī)存取存儲(chǔ)器(RAM);磁盤存儲(chǔ)介質(zhì);光學(xué)存儲(chǔ)介質(zhì);閃存設(shè)備;或者諸如載波、紅外信號(hào)、數(shù)字信號(hào)的傳播信號(hào)的電學(xué)、光學(xué)、聲學(xué)或其它形式或者發(fā)送和/或接收信號(hào)的接口等等。
[0016]實(shí)施例是實(shí)現(xiàn)或者示例。在說明書中對(duì)“實(shí)施例”、“一個(gè)實(shí)施例”、“一些實(shí)施例”、“各種實(shí)施例”或“其它實(shí)施例”的提及意指結(jié)合實(shí)施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一些實(shí)施例中,但不必是所有實(shí)施例?!皩?shí)施例”、“一個(gè)實(shí)施例”或“一些實(shí)施例”的各種出現(xiàn)不必全部指代相同的實(shí)施例。可以將來自一個(gè)實(shí)施例的元件或方面與另一實(shí)施例的元件或方面進(jìn)行組合。
[0017]并不是在本文描述和說明的所有部件、特征、結(jié)構(gòu)、特性等等都需要包括在特定的一個(gè)或多個(gè)實(shí)施例中。例如,如果說明書表述了部件、特征、結(jié)構(gòu)或特性“可以”、“可能”、“能夠”或者“將”被包括,則不要求該特定的部件、特征、結(jié)構(gòu)或特性必須被包括。如果說明書或權(quán)利要求提到“一”或“一個(gè)”元件,則這并不意味著僅存在一個(gè)元件。如果說明書或權(quán)利要求提到“額外”元件,則這并不排除存在多于一個(gè)的額外元件。
[0018]應(yīng)該注意,盡管關(guān)于特定實(shí)現(xiàn)描述了一些實(shí)施例,但是根據(jù)一些實(shí)施例,其它實(shí)現(xiàn)是可能的。此外,在附圖中說明的和/或在本文描述的電路元件或其它特征的布置和/或順序不需要按照所說明和所描述的特定方式進(jìn)行布置。根據(jù)一些實(shí)施例,許多其它布置是可能的。
[0019]在附圖中所示的每一個(gè)系統(tǒng)中,在一些情況中,元件可以分別具有相同的附圖標(biāo)記或者不同的附圖標(biāo)記以便表明所代表的元件可以是不同的和/或類似的。然而,元件可以是足夠靈活的以便具有不同的實(shí)現(xiàn)并且與本文示出或描述的一些或所有系統(tǒng)一起工作。在附圖中示出的各種元件可以相同或者不同。哪一個(gè)被稱為第一元件以及哪一個(gè)被稱為第二元件是任意的。
[0020]圖1是可以用于調(diào)度媒體重放工作負(fù)荷的計(jì)算設(shè)備100的方框圖。計(jì)算設(shè)備100可以例如是膝上型計(jì)算機(jī)、桌面計(jì)算機(jī)、平板電腦、移動(dòng)設(shè)備、服務(wù)器或蜂窩電話等等。計(jì)算設(shè)備100可以包括配置為執(zhí)行所存儲(chǔ)的指令的中央處理單元(CPU) 102以及存儲(chǔ)由CPU102可執(zhí)行的指令的存儲(chǔ)器設(shè)備120。CPU120可以是單核心處理器、多核心處理器、計(jì)算群集或任何數(shù)量的其它配置。而且,計(jì)算設(shè)備100可以包括多于一個(gè)CPU102。由CPU102執(zhí)行的指令可以用于調(diào)度媒體重放工作負(fù)荷。
[0021]計(jì)算設(shè)備100還可以包括圖形處理單元(GPU) 104。如所示出的,CPU102可以經(jīng)過總線106連接到GPU104。然而,在一些實(shí)施例中,CPU102和GPU104位于相同的裸片上。GPU104可以配置為在計(jì)算設(shè)備100內(nèi)執(zhí)行任何數(shù)量的圖形操作。例如,GPU104可以配置為渲染或操控圖形圖像、圖形幀、視頻等等,以便將其顯示給計(jì)算設(shè)備100的用戶。
[0022]GPU104還可以包括音頻解碼引擎108、多格式編解碼器(MFX)引擎110和渲染引擎112。引擎是GPU104的部件,其可以用于并行處理發(fā)送到GPU104的數(shù)據(jù)。盡管示出了三個(gè)GPU引擎,但是GPU可以包含任意數(shù)量的引擎。音頻解碼引擎108可以與MFX引擎110并行地處理音頻數(shù)據(jù)。MFX引擎110對(duì)發(fā)送到GPU104的幀數(shù)據(jù)進(jìn)行解碼。圖像數(shù)據(jù)作為序列幀被發(fā)送到MFX引擎110。
[0023]渲染引擎112可以用于在通過MFX引擎110對(duì)多個(gè)幀進(jìn)行解碼之后將視頻在后處理應(yīng)用到該多個(gè)幀。在后處理包括圖像穩(wěn)定化、幀率轉(zhuǎn)換、Y校正增強(qiáng)、膚色增強(qiáng)、幀率減小,并且可以修改幀尺寸以便調(diào)整媒體工作負(fù)荷。在實(shí)施例中,音頻軌道也被在后處理。音頻在后處理包括揚(yáng)聲器補(bǔ)償、音量調(diào)整和虛擬化。
[0024]存儲(chǔ)器設(shè)備120可以包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃存或任何其它適合的存儲(chǔ)器系統(tǒng)。例如,存儲(chǔ)器設(shè)備120可以包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。存儲(chǔ)器設(shè)備包括一批緩沖器122和工作負(fù)荷調(diào)度器124。緩沖器122可以用于在通過音頻解碼引擎108、MFX引擎110和渲染引擎112處理N個(gè)幀和N個(gè)音頻軌道時(shí)提供對(duì)于這些N個(gè)幀和N個(gè)音頻軌道的存儲(chǔ)。按照這種方式,幀并不是在N幀粒度下被處理。在實(shí)施例中,緩沖器122是DMA緩沖器。重放工作負(fù)荷調(diào)度器124分配緩沖器122。以所分配的緩沖器的尺寸為基礎(chǔ),重放工作負(fù)荷調(diào)度器124確定能夠被存儲(chǔ)在緩沖器中的N個(gè)幀和N個(gè)軌道的數(shù)量。重放工作負(fù)荷調(diào)度器124還調(diào)度N個(gè)幀和相對(duì)應(yīng)的N個(gè)音頻軌道用于解碼。可以使用音頻解碼引擎108將與特定幀相關(guān)聯(lián)的音頻解碼為由系統(tǒng)識(shí)別的格式??梢允褂肕FX引擎110將幀解碼為由系統(tǒng)識(shí)別的格式。
[0025]重放工作負(fù)荷調(diào)度器124還使用渲染引擎112調(diào)度解碼后的N個(gè)幀用于視頻在后處理。在實(shí)施例中,使用MFX引擎對(duì)多個(gè)幀進(jìn)行解碼并且然后將該多個(gè)幀存儲(chǔ)在緩沖器124中。渲染引擎112從緩沖器124取回N個(gè)解碼過的幀。在實(shí)施例中,如果存在對(duì)緩沖器的依賴性,則重放工作負(fù)荷調(diào)度器124可以將緩沖器依賴性標(biāo)志插入在緩沖器124內(nèi)。緩沖器依賴性標(biāo)志使內(nèi)核模式驅(qū)動(dòng)器(KMD) 116能夠插入GPU信號(hào)量等待。
[0026]在實(shí)施例中,可以修改重放工作負(fù)荷的特征,以便適配到所分配的緩沖器124內(nèi)。例如,可以修改諸如圖像穩(wěn)定化、幀率轉(zhuǎn)換、Y校正增強(qiáng)、膚色增強(qiáng)、幀率減小和幀尺寸的視頻在后處理,以便調(diào)整媒體工作負(fù)荷,該媒體工作負(fù)荷可以被修改或禁用,以使得一批N個(gè)幀在被圖形硬件處理時(shí)可以被存儲(chǔ)在所分配的緩沖器中。
[0027]計(jì)算設(shè)備100可以包括存儲(chǔ)126。存儲(chǔ)126是諸如硬驅(qū)、光驅(qū)、U盤、驅(qū)動(dòng)陣列或其任意組合的物理存儲(chǔ)器。存儲(chǔ)126還可以包括遠(yuǎn)程存儲(chǔ)驅(qū)動(dòng)。存儲(chǔ)還可以包括一個(gè)或多個(gè)媒體應(yīng)用128。在實(shí)施例中,應(yīng)用128包括用于媒體重放的應(yīng)用。
[0028]CPU102還可以經(jīng)過總線106連接到配置為將計(jì)算設(shè)備100連接到一個(gè)或多個(gè)I/O設(shè)備132的輸入/輸出(I/O)設(shè)備接口 130。I/O設(shè)備132可可以例如包括鍵盤和指向設(shè)備,其中指向設(shè)備可以包括觸摸板或觸摸屏等等。I/o設(shè)備132可以是計(jì)算設(shè)備100的內(nèi)置部件,或者可以是在外部連接到計(jì)算設(shè)備100的設(shè)備。
[0029]CPU102也可以經(jīng)過總線106鏈接到配置為將計(jì)算設(shè)備100連接到顯示設(shè)備136的顯示接口 134。顯示設(shè)備136可以包括作為計(jì)算設(shè)備100的內(nèi)置部件的顯示屏。顯示設(shè)備136可以包括在外部連接到計(jì)算設(shè)備100的計(jì)算機(jī)監(jiān)視器、電視機(jī)或投影儀等等。網(wǎng)絡(luò)接口控制器(NIC) 138可以配置為經(jīng)過總線106將計(jì)算設(shè)備100連接到網(wǎng)絡(luò)140。網(wǎng)絡(luò)140可以是有線網(wǎng)絡(luò)、無線網(wǎng)絡(luò)或蜂窩網(wǎng)絡(luò)。網(wǎng)絡(luò)140可以是任何寬域網(wǎng)(WAN)、任何局域網(wǎng)(LAN)或互聯(lián)網(wǎng)等等。例如,網(wǎng)絡(luò)140可以是3GPP LTE網(wǎng)絡(luò)或WiFi網(wǎng)絡(luò)。
[0030]圖1的方框圖并不意在指示計(jì)算設(shè)備100要包括圖1所示的所有部件。進(jìn)而,取決于具體實(shí)現(xiàn)的細(xì)節(jié),計(jì)算設(shè)備100可以包括圖1中未示出的任何數(shù)量的額外部件。
[0031]圖2是媒體重放工作負(fù)荷的說明200。媒體重放包括在附圖標(biāo)記202A、202B、202C和202D處的四個(gè)垂直同步(vsync)周期(cycle)。媒體重放還包括五種功能:音頻解碼204、幀解碼206、視頻在后處理208、音頻渲染210和覆蓋翻轉(zhuǎn)(overlay flip) 212。在實(shí)施例中,音頻解碼器204、解碼器206、視頻在后處理器208、音頻渲染器210和覆蓋翻轉(zhuǎn)器212包括在圖形渲染管道中。而且,在實(shí)施例中,使用音頻解碼引擎108 (圖1)來執(zhí)行音頻解碼204,使用MFX引擎110 (圖1)來執(zhí)行幀解碼206,并且使用渲染引擎112 (圖1)來執(zhí)行視頻在后處理108。覆蓋翻轉(zhuǎn)功能指代渲染圖像用于從表面進(jìn)行顯示,其中該表面是包含將被渲染的數(shù)據(jù)的緩沖器。在每一個(gè)功能之后,將所產(chǎn)生的數(shù)據(jù)寫入到它保持在其中的緩沖器,直到下一個(gè)功能取回?cái)?shù)據(jù)用于進(jìn)一步處理。在實(shí)施例中,緩沖器是直接存儲(chǔ)器存取(DMA)緩沖器。
[0032]視頻的重放在幾個(gè)vsync周期上發(fā)生。術(shù)語“垂直同步”或“vsync”指代使由圖形硬件處理幀的速率與由圖形硬件渲染幀的速率同步的處理。例如,vsync可以用于使視頻卡處理幀的速率與監(jiān)視器能夠渲染幀的速率(也被稱為監(jiān)視器的刷新率)同步。使用vsync,用于保持將被渲染的幀的緩沖器不使用用于渲染的任何新幀進(jìn)行更新,直到監(jiān)視器刷新為止。按照這種方式,將每一個(gè)幀保持在緩沖器中,直到當(dāng)監(jiān)視器刷新時(shí)被取回用于渲染為止。在監(jiān)視器刷新之后,下一個(gè)vsync周期開始,并且可以將幀的下一個(gè)集合放置在緩沖器中用于渲染。
[0033]如圖2所示,在第一 vsync周期202A期間使用音頻解碼204來處理軌道1214A。使用解碼206來處理幀1216A。在相同的周期內(nèi),通過處理幀1216A產(chǎn)生的數(shù)據(jù)可以被從緩沖器取回并且被使用視頻在后處理208進(jìn)行處理。
[0034]在下一個(gè)vsync周期202B期間,使用音頻渲染210來渲染軌道1241A,并且使用覆蓋翻轉(zhuǎn)212來渲染幀1216A。進(jìn)而,使用音頻解碼204來處理軌道2214B,并且使用解碼206來處理幀2216B。與第一 vsync周期類似,可以將通過使用解碼206處理幀2216B產(chǎn)生的數(shù)據(jù)放置在緩沖器中,并且在相同的vsync周期202B中,可以使用視頻在后處理208來取回并且處理該數(shù)據(jù)。
[0035]在第三vsync周期202C期間,使用音頻渲染210來渲染軌道2214B,并且使用覆蓋翻轉(zhuǎn)212來渲染幀2216B。進(jìn)而,使用音頻解碼204來處理軌道3214C,并且使用解碼206來處理幀3216C。與第一和第二 vsync周期類似,可以將通過使用解碼206處理幀3216C產(chǎn)生的數(shù)據(jù)放置在緩沖器中,并且在相同的vsync周期202C中,可以使用視頻在后處理208來取回并且處理該數(shù)據(jù)。
[0036]在第四vsync周期202D期間,使用音頻渲染210來渲染軌道3214C,并且使用覆蓋翻轉(zhuǎn)212來處理幀3216C。進(jìn)而,使用音頻解碼204來處理軌道4214D,并且使用解碼206來處理幀4216D。與這三個(gè)vsync周期類似,可以將通過使用解碼206處理幀4216D產(chǎn)生的數(shù)據(jù)放置在緩沖器中,并且在相同的vsync周期202D中,可以使用視頻在后處理208來取回并且處理該數(shù)據(jù)。
[0037]對(duì)于在每一個(gè)幀上執(zhí)行的每一個(gè)音頻解碼、幀解碼、視頻在后處理和覆蓋翻轉(zhuǎn),GPU將向CPU發(fā)送中斷,以便與CPU協(xié)調(diào)視頻處理。因此,在圖2所示的四個(gè)幀的處理期間,將十六個(gè)中斷發(fā)送到DPU。中斷防止CPU進(jìn)入低功率Cx狀態(tài)。
[0038]圖3是另一媒體重放工作負(fù)荷的說明300。在第一 vsync周期302A期間,使用音頻解碼204來處理一批軌道214A-214N。此外,使用解碼206來處理一批幀216A-216N??梢詫⑼ㄟ^使用解碼206處理這批幀216A-216N產(chǎn)生的數(shù)據(jù)放置在緩沖器中,并且在相同的vsync周期302A中,可以使用視頻在后處理208來取回并且處理該數(shù)據(jù)。
[0039]在隨后的vsync周期期間,這批幀216A-216N中的每一個(gè)幀連同來自這批軌道214A-214N中的相對(duì)應(yīng)軌道可以被渲染。因此,在vsync周期302B,分別使用音頻渲染210和覆蓋翻轉(zhuǎn)212來渲染軌道1214A和幀1216A。進(jìn)而,在vsync周期302C,分別使用音頻渲染210和覆蓋翻轉(zhuǎn)212來渲染軌道2214B和幀2216B。在這批軌道214A-214N和這批幀216A-216N的最后一個(gè)軌道和幀被渲染的vsync周期期間,音頻解碼器204、解碼206和視頻在后處理208可以用于處理另一批N個(gè)軌道和另一批N個(gè)中貞。
[0040]通過在單個(gè)vsync周期中處理一批軌道和一批幀,在這批軌道和這批幀被渲染的隨后vsync周期中不使用音頻解碼、幀解碼和視頻在后處理。因此,CPU的各種核心可以進(jìn)入低功率Cx狀態(tài),因?yàn)樵趲讉€(gè)vsync周期內(nèi)沒有中斷生成。指示覆蓋翻轉(zhuǎn)的單個(gè)中斷將針對(duì)這批幀中的最后一個(gè)幀生成,而剩余幀不生成中斷。按照這種方式,覆蓋翻轉(zhuǎn)可以在將一個(gè)中斷發(fā)送到CPU的情況下渲染N個(gè)幀和N個(gè)音頻軌道。進(jìn)而,GPU的各種引擎和CPU的核心可以轉(zhuǎn)變到睡眠狀態(tài),因?yàn)樗鼈儾辉谑褂弥小0凑者@種方式,C狀態(tài)轉(zhuǎn)變的數(shù)量可以在媒體重放期間減少,導(dǎo)致減少的功耗。在實(shí)施例中,媒體重放工作負(fù)荷調(diào)度器可以通過使用GI3U信號(hào)量來調(diào)度工作負(fù)荷。GPU信號(hào)量用于對(duì)GPU內(nèi)的各種執(zhí)行單元之間的依賴性發(fā)送信號(hào)。該信號(hào)可以是被插入到緩沖器中以便指示執(zhí)行單元之間的依賴性的標(biāo)志。在訪問緩沖器內(nèi)的數(shù)據(jù)之前,如果存在所指示的依賴性,則GPU的特定執(zhí)行單元將等待另一執(zhí)行單元的任務(wù)完成。當(dāng)GPU信號(hào)量用于指示依賴性時(shí),不生成中斷。
[0041]圖4是媒體重放工作負(fù)荷調(diào)度器400的方框圖。媒體重放工作負(fù)荷調(diào)度器400包括緩沖器管理器402、媒體調(diào)度器404和定時(shí)器406。緩沖器管理器402針對(duì)這批N個(gè)幀和相對(duì)應(yīng)的這批N個(gè)軌道分配一個(gè)或多個(gè)緩沖器。媒體調(diào)度器404確定N個(gè)幀中的多少個(gè)能夠在一批中被解碼,以使得緩沖器能夠支持整批幀。媒體調(diào)度器404還確定一批N個(gè)幀將在什么點(diǎn)處被解碼。例如,N個(gè)幀可以在vsync周期期間被解碼,其中來自前一批幀的最后一個(gè)幀被渲染或顯示給用戶。此外,媒體調(diào)度器404還可以調(diào)度幀的處理并且以vsync事件408為基礎(chǔ)來確定何時(shí)對(duì)處理過的幀執(zhí)行覆蓋翻轉(zhuǎn)。定時(shí)器406通過從內(nèi)核模式驅(qū)動(dòng)器(KMD)獲得vsync事件408來監(jiān)控vsync事件。每當(dāng)從KMD接收到vsync事件408時(shí),定時(shí)器可以開始新的vsync周期。
[0042]源410和解復(fù)用器412向媒體重放工作負(fù)荷調(diào)度器400提供輸入。在示例中,源410可以是DVD播放器或藍(lán)光播放器。解復(fù)用器412從源408接收數(shù)據(jù)并且使幀與軌道分離。然后將幀和軌道發(fā)送到媒體重放工作負(fù)荷調(diào)度器400。在實(shí)施例中,音頻解碼器414、視頻解碼器416、渲染視頻在后處理器(VPP)418、音頻渲染器420和覆蓋翻轉(zhuǎn)器422是耦接到媒體重放工作負(fù)荷調(diào)度器400的OpenMax部件。OpenMax是能夠用于處理媒體重放工作負(fù)荷的一組媒體接口。音頻解碼器414和視頻解碼器416可以使用緩沖器管理器402從一個(gè)或多個(gè)緩沖器獲得數(shù)批軌道和數(shù)批幀。渲染VPP418可以調(diào)度處理后的幀和軌道用于視頻在后處理。在視頻在后處理之后,媒體調(diào)度器404確定何時(shí)使用音頻渲染器420來渲染音頻以及何時(shí)使用覆蓋翻轉(zhuǎn)器422來向用戶覆蓋翻轉(zhuǎn)幀。
[0043]圖5是媒體重放工作負(fù)荷調(diào)度器的處理流程圖500。在方框502,調(diào)度器獲得可用的物理存儲(chǔ)器和視頻存儲(chǔ)器尺寸。在方框504,調(diào)度器以輸入流尺寸、視頻屏幕尺寸和可用存儲(chǔ)器的量為基礎(chǔ)來計(jì)算能夠被分配的緩沖器的尺寸和數(shù)量。在方框506,調(diào)度器針對(duì)N個(gè)中貞和N個(gè)相關(guān)聯(lián)的軌道分配輸入和輸出緩沖器。在一些實(shí)施例中,媒體重放工作負(fù)荷調(diào)度邏輯可以分配多個(gè)媒體幀用于批量媒體處理。進(jìn)而,在一些實(shí)施例中,多個(gè)媒體幀是具有多個(gè)相對(duì)應(yīng)的軌道的一批N個(gè)幀,并且多個(gè)軌道是一批N個(gè)軌道。
[0044]在方框508,第一幀I和軌道I被解碼。在方框510,第二幀2和軌道2被解碼,并且?guī)琁被視頻在后處理。在實(shí)施例中,如果存在對(duì)于緩沖器的依賴性,則媒體重放工作負(fù)荷調(diào)度器插入緩沖器依賴性標(biāo)志以便允許KMD插入GPU信號(hào)量等待。在方框512,調(diào)度器確定是否處理了在緩沖器內(nèi)的所有這批幀和這批軌道。如果已經(jīng)處理了在緩沖器內(nèi)的這批幀和這批軌道,則處理流程繼續(xù)到方框514。如果還沒有處理在緩沖器內(nèi)的這批幀和這批軌道,則處理流程返回到方框508,在其中處理剩余的幀和軌道。按照這種方式,幀和音頻將不被渲染,直到所有緩沖器已經(jīng)被解碼和處理為止。
[0045]在方框514,調(diào)度器等待下一個(gè)vsync周期。在方框516,在下一個(gè)vsync周期時(shí),調(diào)度器發(fā)送出第一巾貞用于渲染。調(diào)度器在下一個(gè)vsync周期時(shí)發(fā)送出第二巾貞。在實(shí)施例中,調(diào)度器也可以以顯示刷新率和視頻重放的FPS設(shè)置為基礎(chǔ)來執(zhí)行幀率轉(zhuǎn)換。在方框516,調(diào)度器確定是否渲染了這批N個(gè)幀和N個(gè)軌道中的所有幀和軌道。如果還沒有渲染這批N個(gè)幀和N個(gè)軌道,則處理流程返回到方框514以便等待下一個(gè)vsync周期來渲染另一個(gè)幀和軌道。如果已經(jīng)渲染了這批N個(gè)幀和N個(gè)軌道,則處理流程繼續(xù)到方框520。在方框520,獲得另一批N個(gè)幀和另一批N個(gè)軌道。處理流程然后返回到方框508,在其中處理這批N個(gè)中貞和這批N個(gè)軌道。
[0046]通過使音頻解碼器、解碼器和VPP能夠進(jìn)入睡眠狀態(tài),可以在媒體重放期間節(jié)省功率。具體地,CPU和GPU 二者都可以降低在媒體重放期間使用的功率。在實(shí)施例中,緩存幀和相關(guān)聯(lián)的軌道使由GPU處理的大部分?jǐn)?shù)據(jù)能夠被存儲(chǔ)在GPU的高速緩存中。按照這種方式,GPU可以通過不將數(shù)據(jù)從存儲(chǔ)拉出并且使大部分?jǐn)?shù)據(jù)在被調(diào)用時(shí)在高速緩存中可訪問來使用較少的功率。進(jìn)而,通過具有較不頻繁的功率狀態(tài)轉(zhuǎn)變來節(jié)省功率。例如,當(dāng)與將CPU從低功率狀態(tài)轉(zhuǎn)變到高功率狀態(tài)相比較時(shí),將GPU從低功率狀態(tài)轉(zhuǎn)變到高功率狀態(tài)可能使用更多的功率。
[0047]圖6是執(zhí)行媒體重放工作負(fù)荷調(diào)度器的示例性系統(tǒng)600的方框圖。類似標(biāo)記的項(xiàng)目如關(guān)于圖1所描述的。在一些實(shí)施例中,系統(tǒng)600是媒體系統(tǒng)。此外,可以將系統(tǒng)600結(jié)合到個(gè)人計(jì)算機(jī)(PC)、膝上型計(jì)算機(jī)、超級(jí)膝上型計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、平板電腦、觸摸板、便攜式計(jì)算機(jī)、手持計(jì)算機(jī)、掌上計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話、組合蜂窩電話/PDA、電視機(jī)、智能設(shè)備(例如,智能電話、智能平板電腦或智能電視機(jī))、移動(dòng)互聯(lián)網(wǎng)設(shè)備(MID)、消息傳送設(shè)備、數(shù)據(jù)通信設(shè)備、打印設(shè)備、嵌入式設(shè)備等等中。
[0048]在各種實(shí)施例中,系統(tǒng)600包括耦接到顯示器604的平臺(tái)602。平臺(tái)602可以從諸如內(nèi)容服務(wù)設(shè)備606或內(nèi)容傳送設(shè)備608的內(nèi)容設(shè)備或者其它類似的內(nèi)容源接收內(nèi)容。包括一個(gè)或多個(gè)導(dǎo)航特征的導(dǎo)航控制器610可以用于例如與平臺(tái)602和/或顯示器604進(jìn)行交互。下面更詳細(xì)地描述這些部件中的每一個(gè)。
[0049]平臺(tái)602可以包括芯片集612、中央處理單元(CPU)102、存儲(chǔ)器設(shè)備120、存儲(chǔ)設(shè)備126、圖形子系統(tǒng)614、應(yīng)用620和無線電616的任意組合。芯片集612可以提供在CPU102、存儲(chǔ)器設(shè)備120、存儲(chǔ)設(shè)備126、圖形子系統(tǒng)614、應(yīng)用620和無線電616之間的相互通信。例如,芯片集612可以包括能夠提供與存儲(chǔ)設(shè)備126的相互通信的存儲(chǔ)適配器(未示出)。
[0050]CPU102可以被實(shí)現(xiàn)為復(fù)雜指令集計(jì)算機(jī)(CISC)或精簡(jiǎn)指令集計(jì)算機(jī)(RISC)處理器、x86指令集兼容的處理器、多核心或任何其它微處理器或中央處理單元(CPU)。在一些實(shí)施例中,CPU102包括多核心處理器、多核心移動(dòng)處理器等等。存儲(chǔ)器設(shè)備120可以被實(shí)現(xiàn)為易失性存儲(chǔ)器設(shè)備,例如但不局限于隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)或靜態(tài)RAM (SRAM)0存儲(chǔ)設(shè)備126可以被實(shí)現(xiàn)為非易失性存儲(chǔ)設(shè)備,例如但不局限于磁盤驅(qū)動(dòng)、光盤驅(qū)動(dòng)、磁帶驅(qū)動(dòng)、固態(tài)驅(qū)動(dòng)、內(nèi)部存儲(chǔ)設(shè)備、附接的存儲(chǔ)設(shè)備、閃存、電池備用的SDRAM (同步DRAM)和/或網(wǎng)絡(luò)可訪問的存儲(chǔ)設(shè)備。在一些實(shí)施例中,存儲(chǔ)設(shè)備126例如包括當(dāng)包括多個(gè)硬驅(qū)時(shí)增加對(duì)于有價(jià)值的數(shù)字媒體的存儲(chǔ)性能增強(qiáng)保護(hù)的技術(shù)。
[0051]圖形子系統(tǒng)614可以執(zhí)行諸如靜止或者視頻的圖像的處理用于顯示。圖形子系統(tǒng)614可以例如包括諸如GPU104的圖形處理單元(GPU)或者視覺處理單元(VPU)。模擬或數(shù)字接口可以用于可通信地耦接圖形子系統(tǒng)614和顯示器604。例如,該接口可以是高清多媒體接口、顯示端口、無線HDMI和/或無線HD兼容的技術(shù)中的任意一種??梢詫D形子系統(tǒng)614集成到CPU102或芯片集612中??蛇x地,圖形子系統(tǒng)614可以是可通信地耦接到芯片集612的獨(dú)立的卡。
[0052]本文描述的圖形和/或視頻處理技術(shù)可以在各種硬件架構(gòu)中實(shí)現(xiàn)。例如,可以將圖形和/或視頻功能集成在芯片集612內(nèi)。可選地,可以使用分立的圖形和/或視頻處理器。作為又一實(shí)施例,圖形和/或視頻功能可以由通用處理器實(shí)現(xiàn),包括多核心處理器。在進(jìn)一步的實(shí)施例中,可以在消費(fèi)類電子設(shè)備中實(shí)現(xiàn)所述功能。
[0053]無線電616可以包括能夠使用各種適合的無線通信技術(shù)來發(fā)送和接收信號(hào)的一個(gè)或多個(gè)無線電。這樣的技術(shù)可以涉及在一個(gè)或多個(gè)無線網(wǎng)絡(luò)上的通信。示例性無線網(wǎng)絡(luò)包括無線局域網(wǎng)(WLAN)、無線個(gè)人域網(wǎng)(WPAN)、無線城域網(wǎng)(WMAN)、蜂窩網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)等等。在這樣的網(wǎng)絡(luò)上進(jìn)行通信時(shí),無線電616可以根據(jù)任何版本的一個(gè)或多個(gè)可應(yīng)用標(biāo)準(zhǔn)進(jìn)行操作。
[0054]顯示器604可以包括任何電視機(jī)類型的監(jiān)視器或顯示器。例如,顯示器604可以包括計(jì)算機(jī)顯示屏、觸摸屏顯示器、視頻監(jiān)視器、電視機(jī)等等。顯示器604可以是數(shù)字的和/或模擬的。在一些實(shí)施例中,顯示器604是全息顯示器。并且,顯示器604可以是可接收視覺投影的透明表面。這樣的投影可以傳送各種形式的信息、圖像、對(duì)象等等。例如,這樣的投影可以是用于移動(dòng)增強(qiáng)現(xiàn)實(shí)(MAR)應(yīng)用的視覺覆蓋。在一個(gè)或多個(gè)應(yīng)用620的控制下,平臺(tái)602可以在顯示器604上顯示用戶界面618。
[0055]內(nèi)容服務(wù)設(shè)備606可以由任何國(guó)家、國(guó)際或獨(dú)立的服務(wù)托管,并且因而可以例如是平臺(tái)602經(jīng)由互聯(lián)網(wǎng)可訪問的??梢詫?nèi)容服務(wù)設(shè)備606耦接到平臺(tái)602和/或顯示器604??梢詫⑵脚_(tái)602和/或內(nèi)容服務(wù)設(shè)備606耦接到網(wǎng)絡(luò)140以便在網(wǎng)絡(luò)140上來回通信(例如發(fā)送和/或接收)媒體信息。也可以將內(nèi)容傳送設(shè)備608耦接到平臺(tái)602和/或顯不器604。
[0056]內(nèi)容服務(wù)設(shè)備606可以包括有線電視機(jī)盒、個(gè)人計(jì)算機(jī)、網(wǎng)絡(luò)、電話或者能夠傳送數(shù)字信息的互聯(lián)網(wǎng)使能的設(shè)備。此外,內(nèi)容服務(wù)設(shè)備606可以包括能夠經(jīng)由網(wǎng)絡(luò)140或直接地在內(nèi)容提供方和平臺(tái)602或顯示器604之間單向或雙向地通信內(nèi)容的任何其它類似的設(shè)備。將認(rèn)識(shí)到,可以經(jīng)由網(wǎng)絡(luò)140在系統(tǒng)600中的任意一個(gè)部件和內(nèi)容提供方之間單向和/或雙向地來回進(jìn)行通信。內(nèi)容的示例可以包括任何媒體信息,例如包括視頻、音樂、醫(yī)學(xué)和游戲信息等等。
[0057]內(nèi)容服務(wù)設(shè)備606可以接收諸如有線電視節(jié)目的內(nèi)容,包括媒體信息、數(shù)字信息或其它內(nèi)容。內(nèi)容提供方的示例可以包括任何有線或衛(wèi)星電視或者無線電或互聯(lián)網(wǎng)內(nèi)容提供方等等。
[0058]在一些實(shí)施例中,平臺(tái)602從包括一個(gè)或多個(gè)導(dǎo)航特征的導(dǎo)航控制器610接收控制信號(hào)。導(dǎo)航控制器610的導(dǎo)航特征可以用于例如與用戶界面618進(jìn)行交互。導(dǎo)航控制器610可以是指向設(shè)備或觸摸屏設(shè)備,其可以是允許用戶將空間(例如,連續(xù)和多維)數(shù)據(jù)輸入到計(jì)算機(jī)中的計(jì)算機(jī)硬件部件(具體地,人類接口設(shè)備)。諸如圖形用戶接口(GUI)和電視機(jī)及監(jiān)視器的許多系統(tǒng)允許用戶使用物理手勢(shì)來控制數(shù)據(jù)并且將該數(shù)據(jù)提供到計(jì)算機(jī)或電視機(jī)。物理手勢(shì)包括但不局限于面部表情、面部移動(dòng)、不同四肢的移動(dòng)、身體移動(dòng)、身體語言或其任何組合。這樣的物理手勢(shì)可以被識(shí)別和翻譯為命令或指令。
[0059]導(dǎo)航控制器610的導(dǎo)航特征的移動(dòng)可以通過指針、光標(biāo)、聚焦環(huán)或在在顯示器604上顯示的其它視覺指示器的移動(dòng)來在顯示器604上產(chǎn)生回響。例如,在應(yīng)用620的控制下,可以將位于導(dǎo)航控制器610上的導(dǎo)航特征映射到在用戶界面618上顯示的虛擬導(dǎo)航特征。在一些實(shí)施例中,導(dǎo)航控制器610可以不是單獨(dú)的部件,而是可以被集成到平臺(tái)602和/或顯不器604中。
[0060]系統(tǒng)600可以包括驅(qū)動(dòng)器(未示出),其例如包括在啟動(dòng)時(shí)使用戶能夠在最初引導(dǎo)之后使用按鈕的觸摸來立即打開和關(guān)閉平臺(tái)602的技術(shù)。當(dāng)平臺(tái)被關(guān)閉時(shí),程序邏輯可以允許平臺(tái)602將內(nèi)容流式傳送到媒體適配器或其它內(nèi)容服務(wù)設(shè)備606或內(nèi)容傳送設(shè)備608。此外,芯片集612可以例如包括對(duì)于5.1環(huán)繞聲音頻和/或高清7.1環(huán)繞聲音頻的硬件和/或軟件支持。驅(qū)動(dòng)器可以包括用于集成圖形平臺(tái)的圖形驅(qū)動(dòng)器。在一些實(shí)施例中,圖形驅(qū)動(dòng)器包括外圍部件互連快速(PCIe)圖形卡。
[0061]在各種實(shí)施例中,可以集成在系統(tǒng)600中示出的任意一個(gè)或多個(gè)部件。例如,可以集成平臺(tái)602和內(nèi)容服務(wù)設(shè)備606 ;可以集成平臺(tái)602和內(nèi)容傳送設(shè)備608 ;或者可以集成平臺(tái)602、內(nèi)容服務(wù)設(shè)備606和內(nèi)容傳送設(shè)備608。在一些實(shí)施例中,平臺(tái)602和顯示器604是集成單元。例如,可以集成顯示器604和內(nèi)容服務(wù)設(shè)備606,或者可以集成顯示器604和內(nèi)容傳送設(shè)備608。
[0062]系統(tǒng)600可以被實(shí)現(xiàn)為無線系統(tǒng)或有線系統(tǒng)。當(dāng)被實(shí)現(xiàn)為無線系統(tǒng)時(shí),系統(tǒng)600可以包括適合于經(jīng)過諸如一個(gè)或多個(gè)天線、發(fā)射機(jī)、接收機(jī)、收發(fā)機(jī)、放大器、濾波器、控制邏輯等等的無線共享介質(zhì)進(jìn)行通信的部件和接口。無線共享媒體的示例可以包括諸如RF頻譜的無線頻譜的部分。當(dāng)被實(shí)現(xiàn)為有線系統(tǒng)時(shí),系統(tǒng)600可以包括適合于經(jīng)過諸如輸入/輸出(I/O)適配器、使I/O適配器與相對(duì)應(yīng)的有線通信介質(zhì)連接的物理連接器、網(wǎng)絡(luò)接口卡(NIC)、磁盤控制器、視頻控制器、音頻控制器等等的有線通信介質(zhì)進(jìn)行通信的部件和接口。有線通信介質(zhì)的示例可以包括電線、電纜、金屬引線、印刷電路板(PCB)、背板、交換光纖、半導(dǎo)體材料、雙絞線、同軸電纜、光纖等等。
[0063]平臺(tái)602可以建立一個(gè)或多個(gè)邏輯或物理信道以便通信信息。信息可以包括媒體信息和控制信息。媒體信息可以指代表示意在用于用戶的內(nèi)容的任意數(shù)據(jù)。內(nèi)容的示例可以例如包括來自語音對(duì)話、視頻會(huì)議、流式視頻、電子郵件(email)消息、語音郵件消息、字母數(shù)字符號(hào)、圖形、圖像、視頻、文本等等的數(shù)據(jù)。來自語音對(duì)話的數(shù)據(jù)可以例如是語音信息、靜默時(shí)段、背景噪聲、舒適噪聲、音調(diào)等等??刂菩畔⒖梢灾复硎疽庠谟糜谧詣?dòng)化系統(tǒng)的命令、指令或控制字的任何數(shù)據(jù)。例如,控制信息可以用于經(jīng)過系統(tǒng)路由媒體信息或者指示節(jié)點(diǎn)按照預(yù)定的方式處理媒體信息。然而,所述實(shí)施例并不局限于在圖6中示出或描述的元件或環(huán)境。
[0064]圖7是在其中可以體現(xiàn)圖6的系統(tǒng)的小形狀因子設(shè)備700的示意圖。在一些實(shí)施例中,例如,設(shè)備700被實(shí)現(xiàn)為具有無線能力的移動(dòng)計(jì)算設(shè)備。例如,移動(dòng)計(jì)算設(shè)備可以指代具有處理系統(tǒng)和諸如一個(gè)或多個(gè)電池的移動(dòng)功率源或功率供應(yīng)的任何設(shè)備。
[0065]如上所述,移動(dòng)計(jì)算設(shè)備的示例可以包括個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、超級(jí)膝上型計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、平板電腦、觸摸板、便攜式計(jì)算機(jī)、手持計(jì)算機(jī)、掌上計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話、組合蜂窩電話/PDA、電視機(jī)、智能設(shè)備(例如,智能電話、智能平板或智能電視機(jī))、移動(dòng)互聯(lián)網(wǎng)設(shè)備(MID)、消息傳送設(shè)備、數(shù)據(jù)通信設(shè)備等等。
[0066]移動(dòng)計(jì)算設(shè)備的示例還可以包括布置為由人佩戴的計(jì)算機(jī),例如手腕計(jì)算機(jī)、手指計(jì)算機(jī)、戒指計(jì)算機(jī)、眼鏡計(jì)算機(jī)、皮帶夾計(jì)算機(jī)、臂章計(jì)算機(jī)、鞋計(jì)算機(jī)、服裝計(jì)算機(jī)或任何其它適當(dāng)類型的可佩戴計(jì)算機(jī)。例如,移動(dòng)計(jì)算設(shè)備可以被實(shí)現(xiàn)為能夠執(zhí)行計(jì)算機(jī)應(yīng)用以及語音通信和/或數(shù)據(jù)通信的智能電話。盡管可以通過示例的方式利用被實(shí)現(xiàn)為智能電話的移動(dòng)計(jì)算設(shè)備來描述一些實(shí)施例,但是可以意識(shí)到,也可以使用其它有線或無線移動(dòng)計(jì)算設(shè)備來實(shí)現(xiàn)其它實(shí)施例。
[0067]如圖7所示,設(shè)備700可以包括殼體702、顯示器704、輸入/輸出(I/O)設(shè)備706和天線708。設(shè)備700還可以包括導(dǎo)航特征712。顯示器704可以包括用于顯示適合于移動(dòng)計(jì)算設(shè)備的信息的任何適當(dāng)?shù)娘@示單元710。I/O設(shè)備706可以包括用于將信息輸入到移動(dòng)計(jì)算設(shè)備中的任何適當(dāng)?shù)腎/O設(shè)備。例如,I/O設(shè)備706可以包括字母數(shù)字鍵盤、數(shù)字小鍵盤、觸摸板、輸入鍵、按鈕、開關(guān)、搖臂開關(guān)、麥克風(fēng)、揚(yáng)聲器、語音識(shí)別設(shè)備和軟件等等。也可以通過麥克風(fēng)將信息輸入到設(shè)備700中。這樣的信息可以通過語音識(shí)別設(shè)備來數(shù)字化。
[0068]圖8是表示存儲(chǔ)用于媒體重放工作負(fù)荷調(diào)度器的代碼的有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)800的方框圖。有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)800可以通過計(jì)算機(jī)總線804由處理器802訪問。而且,有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)800可以包括配置為指導(dǎo)處理器802執(zhí)行本文描述的方法的代碼。
[0069]可以將本文討論的各種軟件部件存儲(chǔ)在如圖8中指示的一個(gè)或多個(gè)有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)800上。例如,批處理模塊806可以配置為在單個(gè)vsync周期期間處理多個(gè)幀和多個(gè)軌道。調(diào)度模塊808可以配置為調(diào)度處理過的幀和軌道用于渲染。功率模塊810可以配置為當(dāng)已經(jīng)處理了多個(gè)幀和多個(gè)軌道時(shí)將CPU的部分和GPU的部分置于低功率狀態(tài)中。
[0070]圖8的方框圖并不意在指示有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)800包括圖8所示的所有部件。進(jìn)而,取決于具體實(shí)現(xiàn)的細(xì)節(jié),有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)800可以包括圖8中未示出的任何數(shù)量的額外部件。
[0071]實(shí)例I
[0072]本文描述一種裝置。所述裝置包括用于分配多個(gè)媒體幀用于批量媒體處理的媒體重放工作負(fù)荷調(diào)度邏輯、用于處理所述媒體幀的邏輯以及用于渲染處理過的媒體幀的邏輯。
[0073]所述媒體重放工作負(fù)荷調(diào)度邏輯用于在單個(gè)垂直同步周期期間分配多個(gè)媒體幀用于批量媒體處理。多個(gè)幀是一批N個(gè)幀,并且多個(gè)軌道是一批N個(gè)軌道。用于處理所述媒體幀的邏輯包括用于對(duì)數(shù)據(jù)的音頻軌道進(jìn)行解碼的邏輯、用于對(duì)所述數(shù)據(jù)的幀進(jìn)行解碼的邏輯以及用于對(duì)所述數(shù)據(jù)的所述幀進(jìn)行在后處理的邏輯。此外,用于渲染處理過的媒體幀的邏輯包括用于等待垂直同步周期的邏輯、用于渲染所述數(shù)據(jù)的音頻軌道的邏輯以及用于執(zhí)行覆蓋翻轉(zhuǎn)的邏輯。邏輯可以在處理所述媒體幀期間執(zhí)行GPU信號(hào)量等待。進(jìn)而,在處理了媒體幀之后,CPU和GPU的部分可以進(jìn)入睡眠狀態(tài)。此外,降低了在批量媒體處理期間生成的中斷的數(shù)量。
[0074]實(shí)例2
[0075]本文描述一種計(jì)算設(shè)備。所述計(jì)算設(shè)備包括圖形處理單元和中央處理單元。所述中央處理單元配置為執(zhí)行所存儲(chǔ)的指令。所述計(jì)算設(shè)備還包括存儲(chǔ)指令的存儲(chǔ)設(shè)備,其中,所述存儲(chǔ)設(shè)備包括處理器可執(zhí)行代碼,當(dāng)由CPU執(zhí)行時(shí),所述可執(zhí)行代碼配置為在單個(gè)垂直同步周期期間處理多個(gè)幀和多個(gè)軌道,調(diào)度處理過的幀和軌道用于渲染,并且在已經(jīng)處理了多個(gè)幀和多個(gè)軌道時(shí)將CPU的部分和GPU的部分置于低功率狀態(tài)中。
[0076]CPU用于通過對(duì)多個(gè)軌道進(jìn)行解碼并且對(duì)多個(gè)幀進(jìn)行解碼和在后處理來處理多個(gè)幀和多個(gè)軌道。計(jì)算設(shè)備用于將CPU的部分和GPU的部分置于Cx狀態(tài)中,其中,所述Cx狀態(tài)是低功率操作狀態(tài)。此外,CPU用于確定將被處理的多個(gè)幀和多個(gè)軌道的數(shù)量,以使得在Cx狀態(tài)和CO狀態(tài)之間的轉(zhuǎn)變的數(shù)量得到減小,其中,Cx狀態(tài)是低功率操作狀態(tài),而CO狀態(tài)是高功率操作狀態(tài)。內(nèi)核模式驅(qū)動(dòng)器用于將GPU信號(hào)量等待插入到用于存儲(chǔ)多個(gè)幀和多個(gè)軌道的一個(gè)或多個(gè)緩沖器內(nèi)。進(jìn)而,音頻渲染用于渲染多個(gè)軌道,并且執(zhí)行覆蓋翻轉(zhuǎn)以便渲染多個(gè)幀。顯示器用于顯示處理過的多個(gè)幀。
[0077]實(shí)例3
[0078]本文描述一種媒體重放工作負(fù)荷調(diào)度器。所述媒體重放工作負(fù)荷調(diào)度器包括緩沖器管理器、媒體調(diào)度器和定時(shí)器。所述緩沖器管理器用于針對(duì)一批幀和相對(duì)應(yīng)的一批軌道分配一個(gè)或多個(gè)緩沖器。所述媒體調(diào)度器用于確定在一批中可以解碼多少個(gè)幀,以使得緩沖器能夠支持整批幀。此外,所述媒體調(diào)度器用于調(diào)度所述幀的處理并且以垂直同步事件為基礎(chǔ)來確定何時(shí)對(duì)處理過的幀執(zhí)行覆蓋翻轉(zhuǎn)。所述定時(shí)器用于通過從內(nèi)核模式驅(qū)動(dòng)器獲得垂直同步事件來監(jiān)控垂直同步事件。所述媒體調(diào)度器用于按照在處理一批數(shù)據(jù)之后使CPU和GPU的部分能夠進(jìn)入睡眠狀態(tài)的方式來調(diào)度所述幀的處理。進(jìn)而,所述媒體重放工作負(fù)荷調(diào)度器用于減少發(fā)送到CPU的中斷的數(shù)量。
[0079]實(shí)例4
[0080]本文描述一種有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)。所述計(jì)算機(jī)可讀介質(zhì)包括用于指導(dǎo)處理器在單個(gè)垂直同步周期期間處理多個(gè)幀和多個(gè)軌道、調(diào)度處理過的多個(gè)幀和多個(gè)軌道用于渲染并且當(dāng)已經(jīng)處理了多個(gè)幀和多個(gè)軌道時(shí)將CPU的部分和GPU的部分置于低功率狀態(tài)中的代碼。所述多個(gè)幀是一批N個(gè)幀,并且所述多個(gè)軌道是一批N個(gè)軌道。處理所述多個(gè)幀和所述多個(gè)軌道包括用于對(duì)數(shù)據(jù)的音頻軌道進(jìn)行解碼的邏輯、用于對(duì)所述數(shù)據(jù)的幀進(jìn)行解碼的邏輯以及用于對(duì)所述數(shù)據(jù)的所述幀進(jìn)行在后處理的邏輯。此外,可以通過等待垂直同步周期、渲染數(shù)據(jù)的音頻軌道并且執(zhí)行覆蓋翻轉(zhuǎn)來渲染處理過的多個(gè)幀和處理過的多個(gè)軌道。此外,GPU信號(hào)量等待可以在所述多個(gè)幀和所述多個(gè)軌道的處理期間被執(zhí)行用于渲染。
[0081]應(yīng)該理解,可以在一個(gè)或多個(gè)實(shí)施例中的任何地方使用在前述示例中指定的細(xì)節(jié)。例如,也可以關(guān)于本文描述的方法或計(jì)算機(jī)可讀介質(zhì)來實(shí)現(xiàn)上述計(jì)算設(shè)備的所有可選特征。而且,盡管在本文中可以使用流程圖和/或狀態(tài)圖來描述實(shí)施例,但是本發(fā)明并不局限于本文的那些圖或相對(duì)應(yīng)的描述。例如,流程不需要移動(dòng)經(jīng)過每一個(gè)說明的方框或狀態(tài)或者按照與在本文說明和描述的精確相同的順序來移動(dòng)。
[0082]本發(fā)明并不局限于本文列出的特定細(xì)節(jié)。實(shí)際上,受益于本公開的本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,可以在本發(fā)明的范圍內(nèi)根據(jù)前述描述和附圖做出很多其它變化。因此,包括對(duì)其的任何修改的下面權(quán)利要求限定了本發(fā)明的范圍。
【權(quán)利要求】
1.一種裝置,包括: 媒體重放工作負(fù)荷調(diào)度邏輯,用于分配多個(gè)媒體幀用于批量媒體處理; 用于處理所述媒體幀的邏輯;以及 用于渲染處理過的媒體幀的邏輯。
2.如權(quán)利要求1所述的裝置,其中,所述媒體重放工作負(fù)荷調(diào)度邏輯用于在單個(gè)垂直同步周期期間分配所述多個(gè)媒體幀用于批量媒體處理。
3.如權(quán)利要求1所述的裝置,其中,所述多個(gè)媒體幀是具有多個(gè)相對(duì)應(yīng)的軌道的一批N個(gè)幀,并且多個(gè)軌道是一批N個(gè)軌道。
4.如權(quán)利要求1所述的裝置,其中,所述用于處理所述媒體幀的邏輯包括: 用于對(duì)數(shù)據(jù)的音頻軌道進(jìn)行解碼的邏輯; 用于對(duì)所述數(shù)據(jù)的幀進(jìn)行解碼的邏輯;以及 用于對(duì)所述數(shù)據(jù)的所述幀進(jìn)行在后處理的邏輯。
5.如權(quán)利要求1所述的裝置,其中,用于渲染處理過的媒體幀的邏輯包括: 用于等待垂直同步周期的邏輯; 用于渲染數(shù)據(jù)的音頻軌道的邏輯;以及 用于執(zhí)行覆蓋翻轉(zhuǎn)的邏輯。
6.如權(quán)利要求1所述的裝置,包括用于在處理所述媒體幀期間執(zhí)行GPU信號(hào)量等待的邏輯。
7.如權(quán)利要求1所述的裝置,其中,在處理所述媒體幀之后,CPU和GPU的部分進(jìn)入睡眠狀態(tài)。
8.如權(quán)利要求1所述的裝置,其中,在所述批量媒體處理期間生成的中斷的數(shù)量得到減少。
9.一種計(jì)算設(shè)備,包括: 圖形處理單元;以及 配置為執(zhí)行所存儲(chǔ)的指令的中央處理單元(CPU)以及存儲(chǔ)指令的存儲(chǔ)設(shè)備,其中,所述存儲(chǔ)設(shè)備包括處理器可執(zhí)行代碼,當(dāng)由所述CPU執(zhí)行時(shí),所述處理器可執(zhí)行代碼配置為:在單個(gè)垂直同步周期期間處理多個(gè)幀和多個(gè)軌道; 調(diào)度處理過的幀和軌道用于渲染;以及 當(dāng)已經(jīng)處理了所述多個(gè)幀和所述多個(gè)軌道時(shí),將所述CPU的部分和所述GPU的部分置于低功率狀態(tài)中。
10.如權(quán)利要求9所述的計(jì)算設(shè)備,其中,所述CPU用于通過對(duì)所述多個(gè)軌道進(jìn)行解碼并且對(duì)所述多個(gè)幀進(jìn)行解碼和在后處理來處理所述多個(gè)幀和所述多個(gè)軌道。
11.如權(quán)利要求9所述的計(jì)算設(shè)備,其中,所述計(jì)算設(shè)備用于將所述CPU的部分和所述GPU的部分置于Cx狀態(tài)中,其中,所述Cx狀態(tài)是低功率操作狀態(tài)。
12.如權(quán)利要求9所述的計(jì)算設(shè)備,其中,所述CPU用于確定將被處理的所述多個(gè)幀和所述多個(gè)軌道的數(shù)量,以使得在Cx狀態(tài)和CO狀態(tài)之間的轉(zhuǎn)變的數(shù)量得到減少,其中,所述Cx狀態(tài)是低功率操作狀態(tài),并且所述CO狀態(tài)是高功率操作狀態(tài)。
13.如權(quán)利要求9所述的計(jì)算設(shè)備,包括用于將GPU信號(hào)量等待插入用于存儲(chǔ)所述多個(gè)幀和所述多個(gè)軌道的一個(gè)或多個(gè)緩沖器中的內(nèi)核模式驅(qū)動(dòng)器。
14.如權(quán)利要求9所述的計(jì)算設(shè)備,其中,音頻渲染器用于渲染所述多個(gè)軌道,并且執(zhí)行覆蓋翻轉(zhuǎn)以便渲染所述多個(gè)幀。
15.如權(quán)利要求9所述的計(jì)算設(shè)備,其中,顯示器用于顯示處理過的多個(gè)幀。
16.一種媒體重放工作負(fù)荷調(diào)度器,包括: 緩沖器管理器; 媒體調(diào)度器;以及 定時(shí)器。
17.如權(quán)利要求16所述的媒體重放工作負(fù)荷調(diào)度器,其中,所述緩沖器管理器用于針對(duì)一批幀和相對(duì)應(yīng)的一批軌道分配一個(gè)或多個(gè)緩沖器。
18.如權(quán)利要求16所述的媒體重放工作負(fù)荷調(diào)度器,其中,所述媒體調(diào)度器用于確定在一批中能夠解碼多少個(gè)幀,以使得所述緩沖器能夠支持整批幀。
19.如權(quán)利要求16所述的媒體重放工作負(fù)荷調(diào)度器,其中,所述媒體調(diào)度器用于調(diào)度所述幀的處理并且以垂直同步事件為基礎(chǔ)來確定何時(shí)對(duì)處理過的幀執(zhí)行覆蓋翻轉(zhuǎn)。
20.如權(quán)利要求16所述的媒體重放工作負(fù)荷調(diào)度器,其中,所述定時(shí)器用于通過從內(nèi)核模式驅(qū)動(dòng)器獲得垂直同步事件來監(jiān)控所述垂直同步事件。
21.如權(quán)利要求16所述的媒體重放工作負(fù)荷調(diào)度器,其中,所述媒體調(diào)度器用于在處理一批數(shù)據(jù)之后,按照使CPU和GPU的部分能夠進(jìn)入睡眠狀態(tài)的方式來調(diào)度所述幀的處理。
22.如權(quán)利要求16所述的媒體重放工作負(fù)荷調(diào)度器,其中,所述媒體重放工作負(fù)荷調(diào)度器用于減少發(fā)送到CPU的中斷的數(shù)量。
【文檔編號(hào)】G06F9/50GK104050040SQ201410097263
【公開日】2014年9月17日 申請(qǐng)日期:2014年3月14日 優(yōu)先權(quán)日:2013年3月15日
【發(fā)明者】王長(zhǎng)亮, A·南達(dá), 馮浩, 林云標(biāo) 申請(qǐng)人:英特爾公司