0073]步驟308,在標準媒體流中,增加對應人物/卡通角色形象,完成電影動畫或CG結果。在大型影視制作或游戲中,需要先將對應場景制作完成后,才將人物或卡通角色內(nèi)嵌入動畫視頻流中,形成最終的影片效果。
[0074]本公開基于創(chuàng)新的GPU、CPU混合架構,綜合GPU、CPU處理能力,構建適合從靜態(tài)畫面渲染,到實時三維圖像輸出和流化處理的CPU、GPU混合渲染一體化解決辦法。
[0075]圖4示出根據(jù)本發(fā)明一個實施例的CPU、GPU混合渲染過程圖。如圖4所示,在本實施例中,CPU、GPU聯(lián)動混合渲染包括:資源調(diào)度與硬件協(xié)調(diào)、原始幀圖渲染處理與輸出、圖形結果整合和排序等。其中充分利用CPU串行優(yōu)勢,由CPU首先進行資源調(diào)度與硬件協(xié)調(diào)。然后,CPU、GPU按照協(xié)調(diào)的任務,分別進行原始幀圖渲染處理與輸出。其中CPU利用總線內(nèi)存調(diào)用多核能力實現(xiàn)線性邏輯處理處理;GPU利用共享顯存與總線內(nèi)存交互,各處理核心通過GPU共享內(nèi)存實現(xiàn)并行處理;最后通過CPU邏輯運算和GPU圖形渲染,將圖形結果統(tǒng)一交予CPU進行整合、排序,實現(xiàn)渲染結果的總體邏輯化串聯(lián),總體完成CPU、GPU聯(lián)動混合渲染環(huán)節(jié)。具體包括:
[0076]( I)資源調(diào)度與硬件協(xié)調(diào)
[0077]充分利用CPU運行效率和核心處理能力,渲染開始前將資源調(diào)度,即渲染任務分配由其主導,針對原始渲染圖片和任務安排。通過總線內(nèi)存,進行相關數(shù)據(jù)存儲和傳輸,將需要串行化運算處理的,例如角色模型渲染、動作渲染等分配給CPU ;將需要并行化運算處理的,例如大型場景渲染等,分配給GPU。
[0078](2)原始幀圖渲染處理與輸出
[0079]按照統(tǒng)一的任務分配,CPU因其處理核心相對較少,但單個運算單元處理能力強的特點,重點處理單個任務需要大量運算例如角色模型渲染、動作/特效渲染等工作,采用多核同時處理機制,按照先后邏輯對渲染完成串行處理,并輸出相關的渲染結果;GPU根據(jù)其處理核心多,綜合運算能力遠超CPU的特點,重點處理例如大型場景,需要并行完成大量圖素、物件等場景元素計算,采用GPU本地內(nèi)存和總線內(nèi)存交互,并依靠GPU共享內(nèi)容傳遞給GPU各處理核心對渲染任務進行并行處理和計算,并最終輸出相應的渲染處理結果。在處理過程中,CPU和GPU處理原理相似,都是基于各自的運算單元完成相應的渲染工作,不同就在于CPU計算核心少,但單核心計算能力強;GPU計算核心多,不過單核心能力較弱,綜合疊加能力超強。正是基于上述基礎才出現(xiàn)了 CPU集中處理單個串行大量運算量任務,GPU集中處理并行同步的大運算量任務。在實際操作過程中,還可根據(jù)CPU、GPU彼此空閑程度,有序分配各自任務,而不必局限于上述原則。
[0080](3)圖形結果整合、排序
[0081]CPU與GPU渲染之前,在資源協(xié)調(diào)和硬件分配過程中,為渲染任務進行次序登記,渲染過程中按照相關的次序分配渲染,最終輸出結果整合過程中,對應相應次序編號將圖形結果進行整合與排序,完成按照流化順序原始幀圖輸出。
[0082]圖5示出根據(jù)本發(fā)明一個實施例的CPU、GPU聯(lián)動流化過程圖。如圖5所示,在本實施例中,CPU、GPU聯(lián)動流化處理包括:原始幀圖分段、分段流化處理、流化結果整合等。
[0083](I)原始幀圖分段
[0084]利用CPU邏輯處理能力,將渲染輸出的原始幀圖按照順序分解成不同段,統(tǒng)一將CPU、GPU合并成為統(tǒng)一流化處理資源池,并全局調(diào)度任務將不同片段混合分配給CPU、GPU統(tǒng)一資源池中的視頻編碼處理通道。
[0085](2)分段流化處理
[0086]相應的CPU、GPU混合處理資源池,每個處理單元對應處理各自分段的原始幀圖,進行分段流化處理。
[0087](3)流化結果整合
[0088]將分段流化處理完成的結果進行整合,形成最終的媒體流結果。
[0089]完成如上處理過程后,即可添加對應人物或卡通角色,成為3D電影或CG結果。
[0090]圖6示出根據(jù)本發(fā)明的CPU和GPU混合云渲染裝置的一個實施例的結構圖。如圖6所示,該裝置包括:聯(lián)動混合渲染模塊61,用于將渲染任務分解為邏輯連續(xù)型渲染任務和并行渲染任務,將邏輯連續(xù)型渲染任務發(fā)送給CPU串行處理,將并行渲染任務發(fā)送給GPU并行運算處理,并通過CPU與GPU渲染結果的實時聯(lián)動輸出渲染生成的原始幀圖,對渲染生成的原始幀圖按照流化進行整合和排序,輸出排序的原始幀圖;動態(tài)流化處理模塊62,用于將來自聯(lián)動混合渲染模塊的排序的原始幀圖進行分段,按次序?qū)⒃紟瑘D分段分配給統(tǒng)一編碼處理資源池中的編碼通道進行分段式流化編碼,其中,統(tǒng)一編碼處理資源池由CPU、GPU編碼能力構建而成;將各個編碼通道輸出的編碼結果進行排序并整合形成媒體流。邏輯連續(xù)型渲染任務例如包括角色模型渲染、動作渲染;并行渲染任務例如包括大型場景渲染。
[0091]圖7示出根據(jù)本發(fā)明的CPU和GPU混合云渲染裝置的另一個實施例的結構圖。如圖7所示,在一個實施例中,云渲染裝置包括:聯(lián)動混合渲染模塊71,動態(tài)流化處理模塊72和人物角色內(nèi)嵌模塊73。其中,人物角色內(nèi)嵌模塊73用于在完成流化處理的媒體流中增加人物或卡通角色。
[0092]在一個實施例中,聯(lián)動混合渲染模塊71包括:渲染任務分類調(diào)度單元711,用于將渲染任務將渲染任務分解為邏輯連續(xù)型渲染任務和并行渲染任務,將邏輯連續(xù)型渲染任務發(fā)送給CPU串行處理,將并行渲染任務發(fā)送給GPU并行運算處理;幀原圖渲染處理單元712,用于基于CPU和GPU的運算單元完成相應的渲染工作,CPU集中處理單個串行大運算量渲染任務;GPU集中處理并行同步的大運算量渲染任務;渲染完成后各自輸出原始幀圖;圖形結果整合排序單元713,用于將CPU與GPU混合渲染輸出的原始幀圖,按照流化順序整合和排序輸出排序的原始幀圖。
[0093]在一個實施例中,動態(tài)流化處理模塊72包括:原始幀圖分段單元721,用于將渲染輸出的原始幀圖按照順序分解成各個分段;分段流化處理單元722,用于利用CPU、GPU流化能力構建統(tǒng)一視頻編碼處理資源池,將不同片段的原始幀圖對應分配給統(tǒng)一資源池的編碼處理通道進行流化處理,處理完成以后編碼處理通道各自輸出分段媒體流;流化結果整合單元723,用于整合各編碼處理通道輸出的分段流化處理結果,進行整合形成最終的媒體流。
[0094]本公開技術方案的處理機制以CPU作為云端運算核心,在整個云渲染處理過程增加GPU并行運算優(yōu)勢,組建更加適合渲染發(fā)展的新型技術方案。其中CPU與GPU聯(lián)動機制,組建融合渲染一體化是技術核心之一,也是實現(xiàn)CPU與GPU混合渲染的基礎。以3D電影動畫渲染為例,GPU+CPU混合云渲染整體服務主要過程如下:
[0095](I)軟硬件資源響應:云端調(diào)用硬件資源,啟動大型渲染基礎軟件,CPU總體協(xié)調(diào)資源,按照設置好的例如渲染質(zhì)量、渲染時長(起始幀一結尾幀)、渲染圖片尺寸等渲染需求,負責總體指令調(diào)度,為渲染準備好軟硬件資源基礎。
[0096](2) CPU、GPU聯(lián)動混合渲染:是本技術方案的核心部分之一,基于美工建模的場景圖片、圖素和人物模型,按照設置好的渲染要求,輸出和生產(chǎn)系列圖片的過程,這些圖片作為最終動畫視頻流的原始幀。其關鍵是以CPU總體任務分配機制為基礎,將邏輯連續(xù)型渲染任務交予CPU串行處理;將大量邏輯性不強的任務交予GPU并行運算處理。形成以CPU為總體協(xié)調(diào),按照渲染任務分工將串行順序化任務交給CPU,將大量并行渲染任務交予GPU,并通過CPU與GPU渲染結果的實時聯(lián)動,更高效地輸出相應的