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