用于應(yīng)用無(wú)關(guān)的音頻加速的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的制作方法
【專(zhuān)利摘要】允許在圖形引擎上而不是在主機(jī)處理器上執(zhí)行音頻解密和解碼的方法、系統(tǒng)和計(jì)算機(jī)系統(tǒng)產(chǎn)品。可以在不必改變媒體應(yīng)用軟件的情況下完成這些。下降編解碼器功能驅(qū)動(dòng)器將下降編解碼器暴露于媒體應(yīng)用,該下降編解碼器可以接著將加密和編碼后的音頻數(shù)據(jù)發(fā)送到下降編解碼器功能驅(qū)動(dòng)器。下降編解碼器功能驅(qū)動(dòng)器可以接著將音頻數(shù)據(jù)重定向到圖形驅(qū)動(dòng)器。圖形驅(qū)動(dòng)器可以接著將音頻數(shù)據(jù)傳遞到圖形引擎。圖形引擎可以接著解密和解碼音頻數(shù)據(jù)。解密和解碼后的音頻數(shù)據(jù)返回到圖形驅(qū)動(dòng)器,該圖形驅(qū)動(dòng)器可以接著將解密和解碼后數(shù)據(jù)發(fā)送到功能驅(qū)動(dòng)器。功能驅(qū)動(dòng)器可以接著將解密和解碼后的音頻數(shù)據(jù)傳遞到用于渲染的下降編解碼器。
【專(zhuān)利說(shuō)明】用于應(yīng)用無(wú)關(guān)的音頻加速的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品
【背景技術(shù)】
[0001]當(dāng)今,媒體應(yīng)用典型地在主機(jī)處理器上執(zhí)行音頻解碼,其可以要求重要的中央處理器(CPU)周期,特別是在優(yōu)質(zhì)音頻的情況下。這必然增加了主機(jī)處理器的功耗。測(cè)量已經(jīng)表明了在藍(lán)光播放期間,解碼DTS HD Master音頻例如會(huì)給CPU功率需求增加?0.5W。
[0002]然而,獨(dú)立的圖形引擎可以具有所需的信號(hào)處理邏輯(例如,乘法累加),其除了對(duì)視頻流解碼外還可用于對(duì)音頻流解碼。圖形引擎核心可以比通用CPU核心更加有效地(就功耗而論)處理媒體工作負(fù)荷。在圖形引擎上處理視頻幀與在主機(jī)上處理相同的幀相比可以節(jié)省許多瓦特的CPU功率。圖形引擎能夠執(zhí)行幾十或者幾百的并行線程,其可能允許在更短的時(shí)期內(nèi)(與在主機(jī)上執(zhí)行相同的工作負(fù)荷相比)完成可并行化的工作負(fù)荷,允許全部的CPU包更加頻繁地進(jìn)入睡眠狀態(tài),因此節(jié)省了 CPU功率。當(dāng)處理優(yōu)質(zhì)音頻時(shí),高級(jí)別的并行性是可能的。
[0003]可以利用用于音頻處理的圖形引擎的一個(gè)方案將大概需要為音頻路徑復(fù)制軟件結(jié)構(gòu),該軟件結(jié)構(gòu)可能已經(jīng)適合于視頻。但是這可能會(huì)造成不得不修改媒體應(yīng)用的負(fù)擔(dān),以便它們可以與視頻解碼一起在圖形引擎上執(zhí)行音頻解碼。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0004]圖1是圖示說(shuō)明了實(shí)施例可以在其中操作的媒體處理體系結(jié)構(gòu)的框圖。
[0005]圖2是圖示說(shuō)明了實(shí)施例的部件和數(shù)據(jù)流的框圖。
[0006]圖3是圖示說(shuō)明了實(shí)施例的計(jì)算環(huán)境的框圖。
[0007]圖4是圖示說(shuō)明了實(shí)施例的處理的流程圖。
[0008]圖5是圖示說(shuō)明了根據(jù)實(shí)施例的將音頻數(shù)據(jù)傳送到圖形引擎的流程圖。
[0009]圖6是圖示說(shuō)明了根據(jù)實(shí)施例通過(guò)下降編解碼器(down codec)功能驅(qū)動(dòng)器從圖形引擎接收解密的解碼音頻數(shù)據(jù)的流程圖。
[0010]在所述附圖中,參考數(shù)字的最左邊的(多個(gè))數(shù)字標(biāo)識(shí)該參考數(shù)字在其中首次出現(xiàn)的附圖。
【具體實(shí)施方式】
[0011]現(xiàn)在比照所述附圖描述實(shí)施例,其中相同的參考數(shù)字指示相同的或功能相似的元件。當(dāng)討論具體的配置和布置時(shí),應(yīng)當(dāng)理解的是這么做僅是用于說(shuō)明性的目的。相關(guān)領(lǐng)域的普通技術(shù)人員將認(rèn)識(shí)到可以使用其他的配置和布置,而不脫離本說(shuō)明書(shū)的精神和范圍。對(duì)相關(guān)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)顯而易見(jiàn)的是還可以使用除了本文所描述之外的各種其他的系統(tǒng)和應(yīng)用。
[0012]本文公開(kāi)一種在圖形引擎上而非主機(jī)處理器上執(zhí)行音頻解碼和解碼的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。這可以如同下面所描述地那樣完成,而不需要必須改變媒體應(yīng)用程序。
[0013]本文描述的系統(tǒng)的實(shí)施例可以在圖1所示的體系結(jié)構(gòu)環(huán)境中操作。這種體系結(jié)構(gòu)100可以包括主機(jī)處理器110。處理器110可以與圖形引擎120通信。圖形引擎120可以典型地用來(lái)執(zhí)行圖形處理。如將要在下面更加具體描述的,根據(jù)實(shí)施例,圖形引擎120也可以用來(lái)執(zhí)行音頻處理。該圖示的體系結(jié)構(gòu)也可以包括下降編解碼器130。在實(shí)施例中,下降編解碼器130可以是接收解碼的音頻采樣并且渲染音頻的部件,從而驅(qū)動(dòng)一個(gè)或多個(gè)輸出裝置,例如揚(yáng)聲器或耳機(jī)。主機(jī)處理器110、圖形引擎120、以及下降編解碼器130可以經(jīng)由通信基礎(chǔ)結(jié)構(gòu)140來(lái)通信。在實(shí)施例中,通信基礎(chǔ)結(jié)構(gòu)140可以采取例如總線的形式。
[0014]在實(shí)施例中,本發(fā)明可以被并入到媒體系統(tǒng)中。例如,實(shí)施例可以被并入到個(gè)人計(jì)算機(jī)(PC)、膝上型計(jì)算機(jī)、超級(jí)膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、觸摸板、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)、掌上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩式電話、蜂窩式電話/PDA組合、電視、智能裝置(例如,
[0015]智能電話、智能平板或智能電視)、移動(dòng)互聯(lián)網(wǎng)裝置(MID)、消息發(fā)送裝置、數(shù)據(jù)通信裝置、或其他固定的或便攜的信息設(shè)備。
[0016]圖2是圖示說(shuō)明了根據(jù)實(shí)施例的在本文中所描述的系統(tǒng)200的框圖。下降編解碼器功能驅(qū)動(dòng)器230可以首先將下降編解碼器290暴露于媒體應(yīng)用210。媒體應(yīng)用210接著可以將加密和編碼的音頻數(shù)據(jù)220發(fā)送到下降編解碼器功能驅(qū)動(dòng)器230。下降編解碼器功能驅(qū)動(dòng)器230接著可以將音頻數(shù)據(jù)220重定向到圖形(GFX)驅(qū)動(dòng)器240。圖形驅(qū)動(dòng)器240接著可以將音頻數(shù)據(jù)220傳遞到圖形引擎250。在圖示說(shuō)明的實(shí)施例中,圖形引擎250可以例如但不限于,是Intel圖形引擎GEN(可以從加利福尼亞,Santa Clara的Intel公司獲得)。在可選實(shí)施例中,可以使用可選的圖形引擎。
[0017]圖形引擎250接著可以解密和解碼音頻數(shù)據(jù)。解密和解碼后的音頻數(shù)據(jù)260可以接著被返回給圖形驅(qū)動(dòng)器240,圖形驅(qū)動(dòng)器240可以接著將解密和解碼后的音頻數(shù)據(jù)260發(fā)送到下降編解碼器功能驅(qū)動(dòng)器230。下降編解碼器功能驅(qū)動(dòng)器230可以接著將解密和解碼后的音頻數(shù)據(jù)260傳遞到下降編解碼器290用于渲染。在圖示說(shuō)明的實(shí)施例中,可以經(jīng)由總線驅(qū)動(dòng)器270和音頻控制器280將解密和解碼后的音頻數(shù)據(jù)260發(fā)送給下降編解碼器290。
[0018]本文公開(kāi)的一個(gè)或多個(gè)特征可以在硬件、軟件、固件、或它們的組合中實(shí)現(xiàn),包括分立的和集成的電路邏輯、專(zhuān)用集成電路(ASIC)邏輯、可編程門(mén)陣列、和/或微控制器,或可以實(shí)現(xiàn)為特殊領(lǐng)域的集成電路封裝的一部分,或者集成電路封裝的組合。本文所使用的術(shù)語(yǔ)“軟件”是指計(jì)算機(jī)程序產(chǎn)品,其包括存儲(chǔ)有計(jì)算機(jī)程序邏輯的非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),以使得計(jì)算機(jī)系統(tǒng)執(zhí)行本文公開(kāi)的一個(gè)或多個(gè)特征和/或特征的組合。
[0019]在實(shí)施例中,可以將下降編解碼器功能驅(qū)動(dòng)器230實(shí)現(xiàn)為軟件或固件。在圖3的計(jì)算系統(tǒng)300的環(huán)境中圖示說(shuō)明了這樣的軟件或固件實(shí)施例。系統(tǒng)300可以包括中央處理單元(CPU) 320和存儲(chǔ)器主體310,存儲(chǔ)器310可以包括存儲(chǔ)計(jì)算機(jī)程序邏輯340的一個(gè)或多個(gè)非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)。舉例來(lái)說(shuō),可以將存儲(chǔ)器310實(shí)現(xiàn)為只讀存儲(chǔ)器(ROM)或隨機(jī)存取存儲(chǔ)器(RAM)裝置。CPU320和存儲(chǔ)器310可以使用本領(lǐng)域普通技術(shù)人員所公知的若干技術(shù)中的任何一種(例如,總線)來(lái)進(jìn)行通信??梢杂蒀PU320讀取和執(zhí)行包含在存儲(chǔ)器310中的計(jì)算機(jī)程序邏輯340。共同地表示為1/0330的一個(gè)或多個(gè)I/O端口和/或I/O裝置也可以被連接到CPU320和存儲(chǔ)器310。在圖3的實(shí)施例中,將下降編解碼器功能驅(qū)動(dòng)器230展示為較大主體的計(jì)算機(jī)程序邏輯340的一部分。
[0020]下降編解碼器功能驅(qū)動(dòng)器230可以包括重定向邏輯350。重定向邏輯350可以負(fù)責(zé)將音頻數(shù)據(jù)從媒體應(yīng)用重定向到圖形驅(qū)動(dòng)器。下降編解碼器功能驅(qū)動(dòng)器230還可以包括接收邏輯360,其可以負(fù)責(zé)從圖形引擎接收解密和解碼后的音頻數(shù)據(jù),并將此數(shù)據(jù)轉(zhuǎn)發(fā)到下降編解碼器用于渲染。
[0021]根據(jù)實(shí)施例,可以如圖4所圖示說(shuō)明的那樣執(zhí)行本文描述的系統(tǒng)的處理。在410處,下降編解碼器功能驅(qū)動(dòng)器可以將下降編解碼器暴露于媒體應(yīng)用。在420處,下降編解碼器功能驅(qū)動(dòng)器可以將從媒體應(yīng)用接收的加密和編碼后的音頻數(shù)據(jù)轉(zhuǎn)移到用于解密和解碼的圖形引擎。在實(shí)施例中,這種音頻解密可以使用與用于視頻解密目的相同的密鑰。在430處,在完成解密和解碼之后,下降編解碼器功能驅(qū)動(dòng)器可以從圖形引擎接收解密和解碼后的音頻。在440處,下降編解碼器功能驅(qū)動(dòng)器可以將解密和解碼后的音頻發(fā)送到下降編解碼器。在450處,下降編解碼器可以渲染音頻。
[0022]根據(jù)實(shí)施例,將在圖5中更加詳細(xì)地圖示說(shuō)明加密和編碼后的音頻到圖形引擎的轉(zhuǎn)移(圖4中的420)。這里,可以經(jīng)由圖形驅(qū)動(dòng)器,將加密和編碼后的音頻發(fā)送給圖形引擎。在510處,下降編解碼器功能驅(qū)動(dòng)器可以接收加密和編碼后的音頻數(shù)據(jù)。在520處,下降編解碼器功能驅(qū)動(dòng)器可以將該音頻數(shù)據(jù)重定向到圖形驅(qū)動(dòng)器。在530處,圖形驅(qū)動(dòng)器可以將加密和編碼后的音頻數(shù)據(jù)發(fā)送到圖形引擎。在540處,圖形引擎可以解密和解碼該音頻數(shù)據(jù)。
[0023]根據(jù)實(shí)施例,將在圖6中更加詳細(xì)地描述通過(guò)下降編解碼器功能驅(qū)動(dòng)器從圖形引擎接收解密和解碼后的音頻(圖4中的430)。在610處,圖形引擎可以將解密和解碼后的音頻數(shù)據(jù)發(fā)送到圖形驅(qū)動(dòng)器。在620處,圖形驅(qū)動(dòng)器可以將解密和解碼后的音頻數(shù)據(jù)發(fā)送到用于渲染的下降編解碼器功能驅(qū)動(dòng)器。
[0024]需要注意的是,在圖形引擎完成解密和解碼之后,重新加密不是必需的。這假定了解密后的音頻流不必經(jīng)過(guò)要求加密的路徑。諸如路徑的示例可以是包括遵循外設(shè)組件互連快速(PCIe)或通用串行總線(USB)標(biāo)準(zhǔn),或包括高清晰度多媒體接口(HDMI)端口的部件或其他基礎(chǔ)結(jié)構(gòu)的路徑。另一方面,如果將下降編解碼器連接到要求加密的總線,那么圖形引擎在將音頻傳遞回下降編解碼器功能驅(qū)動(dòng)器以前可以重新加密或者可以下采樣音頻(舉例來(lái)說(shuō),到48kHz),因?yàn)橄虏蓸臃莾?yōu)質(zhì)音頻可以不要求加密。
[0025]此外,通過(guò)使得下降編解碼器功能驅(qū)動(dòng)器將音頻數(shù)據(jù)重定向到圖形引擎,并且隨后重定向到下降編解碼器,額外的延時(shí)可能產(chǎn)生在音頻路徑中??梢酝ㄟ^(guò)使下降編解碼器功能驅(qū)動(dòng)器將圖形引擎解碼音頻分組所需的估計(jì)延時(shí)報(bào)告返回到媒體應(yīng)用來(lái)處理這個(gè)解碼延時(shí)。可以由圖形引擎生成這個(gè)延時(shí)信息,并將其提供到下降編解碼器功能驅(qū)動(dòng)器。這樣的機(jī)制可以促進(jìn)視頻和音頻流的同步。
[0026]本文借助于圖示說(shuō)明功能、特征、及其關(guān)系的功能構(gòu)件塊公開(kāi)了方法和系統(tǒng)。為了便于描述,在本文中已經(jīng)任意地定義了這些功能構(gòu)件塊的至少一些范圍??梢远x替代的邊界,只要能夠適當(dāng)?shù)貓?zhí)行所指定的功能及其關(guān)系。
[0027]雖然本文公開(kāi)了不同的實(shí)施例,但可以理解的是僅僅是以舉例而不是限制的方式來(lái)呈現(xiàn)所述實(shí)施例。對(duì)相關(guān)領(lǐng)域技術(shù)人員顯而易見(jiàn)的是,可以在此做出形式和細(xì)節(jié)上的不同變化,而不會(huì)脫離本文公開(kāi)的方法和系統(tǒng)的精神和范圍。因此,權(quán)利要求的寬度和范圍將不會(huì)被本文所公開(kāi)的任何示范性實(shí)施例所限制。
【權(quán)利要求】
1.一種方法,包括: 由執(zhí)行下降編解碼器功能驅(qū)動(dòng)器的主機(jī)處理器實(shí)施暴露下降編解碼器;以及 由執(zhí)行所述下降編解碼器功能驅(qū)動(dòng)器的所述主機(jī)處理器實(shí)施將音頻數(shù)據(jù)轉(zhuǎn)移到圖形引擎。
2.如權(quán)利要求1所述的方法,其中所述轉(zhuǎn)移包括: 由執(zhí)行下降編解碼器功能驅(qū)動(dòng)器的所述主機(jī)處理器實(shí)施將所述音頻數(shù)據(jù)重定向到圖形驅(qū)動(dòng)器; 由所述圖形驅(qū)動(dòng)器實(shí)施將所述音頻數(shù)據(jù)發(fā)送到所述圖形引擎;以及 由所述圖形弓丨擎實(shí)施解密和解碼所述音頻數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,進(jìn)一步包括: 由執(zhí)行所述下降編解碼器功能驅(qū)動(dòng)器的所述主機(jī)處理器接收來(lái)自所述圖形引擎的呈解密和解碼后的形式的音頻數(shù)據(jù)。
4.如權(quán)利要求3所述的方法,其中所述接收包括: 由執(zhí)行所述下降編解碼器功能驅(qū)動(dòng)器的所述主機(jī)處理器接收來(lái)自圖形驅(qū)動(dòng)器的解密和解碼后的音頻數(shù)據(jù),所述圖形驅(qū)動(dòng)器從所述圖形引擎接收所述解密和解碼后的音頻數(shù)據(jù)。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括: 由執(zhí)行所述下降編解碼器功能驅(qū)動(dòng)器的所述主機(jī)處理器實(shí)施將解碼和解密后的音頻信息發(fā)送到所述下降編解碼器。
6.如權(quán)利要求5所述的方法,進(jìn)一步包括: 由所述下降編解碼器實(shí)施對(duì)所述解密和解碼后的音頻數(shù)據(jù)的渲染。
7.一種計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)有計(jì)算機(jī)程序邏輯的非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)程序邏輯包括: 使得主機(jī)處理器將音頻數(shù)據(jù)轉(zhuǎn)移到用于解密和解碼的圖形引擎的邏輯。
8.如權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,其中使得所述主機(jī)處理器轉(zhuǎn)移音頻數(shù)據(jù)的所述邏輯包括: 使得所述主機(jī)處理器將所述音頻數(shù)據(jù)重定向到圖形驅(qū)動(dòng)器的邏輯,所述圖形驅(qū)動(dòng)器接著將所述音頻數(shù)據(jù)發(fā)送到所述圖形引擎。
9.如權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括: 使得所述主機(jī)處理器從所述圖形引擎接收解密和解碼后的音頻數(shù)據(jù)的邏輯。
10.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其中使得所述主機(jī)處理器接收解密和解碼后的音頻數(shù)據(jù)的所述邏輯包括: 使得所述主機(jī)處理器從所述圖形驅(qū)動(dòng)器接收解密和解碼后的音頻數(shù)據(jù)的邏輯,所述圖形驅(qū)動(dòng)器從所述圖形引擎接收解密和解碼后的音頻數(shù)據(jù)。
11.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括: 使得所述主機(jī)處理器將解碼和解密后的音頻信息發(fā)送到用于渲染的下降編解碼器的邏輯。
12.—種系統(tǒng),包括: 主機(jī)處理器;和與所述主機(jī)處理器通信的存儲(chǔ)器,其中所述存儲(chǔ)器存儲(chǔ)被配置為指示所述主機(jī)處理器將音頻數(shù)據(jù)轉(zhuǎn)移到用于解密和解碼的圖形引擎的多條處理指令。
13.如權(quán)利要求12所述的系統(tǒng),其中轉(zhuǎn)移音頻數(shù)據(jù)的所述指令包括: 被配置為指示所述主機(jī)處理器將所述音頻數(shù)據(jù)重定向到圖形驅(qū)動(dòng)器的指令,所述圖形驅(qū)動(dòng)器接著將所述音頻數(shù)據(jù)發(fā)送到所述圖形引擎。
14.如權(quán)利要求12所述的系統(tǒng),其中所述存儲(chǔ)器進(jìn)一步存儲(chǔ)被配置為指示所述主機(jī)處理器從所述圖形引擎接收解密和解碼后的音頻數(shù)據(jù)的多條處理指令。
15.如權(quán)利要求14所述的系統(tǒng),其中從所述圖形引擎接收解密和解碼后的音頻數(shù)據(jù)的所述指令包括:被配置為指示所述主機(jī)處理器從所述圖形驅(qū)動(dòng)器接收解密和解碼后的音頻數(shù)據(jù)的指令,所述圖形驅(qū)動(dòng)器從所述圖形引擎接收解密和解碼后的音頻數(shù)據(jù)。
16.如權(quán)利要求12所述的系統(tǒng),其中所述存儲(chǔ)器進(jìn)一步存儲(chǔ)被配置為指示所述主機(jī)處理器將解碼和解密后的音頻信息發(fā)送到用于渲染的下降編解碼器的多條處理指令。
【文檔編號(hào)】G06F1/32GK103547996SQ201180067877
【公開(kāi)日】2014年1月29日 申請(qǐng)日期:2011年12月28日 優(yōu)先權(quán)日:2011年2月17日
【發(fā)明者】N·卡布拉索斯, D·沃雷爾 申請(qǐng)人:英特爾公司