新四季網

動畫播放方法及裝置與流程

2024-02-10 11:16:15 2


本發明涉及圖形圖像處理領域,特別涉及一種用於包含多核處理器的嵌入式終端中播放Flash動畫的動畫播放方法及裝置。

背景技術:
Flash是網際網路領域使用最為普遍的一種互動多媒體動畫。隨著Flash相關技術的不斷發展,Flash也在不斷複雜化和功能多樣化。目前,如何利用諸如手機或者平板電腦之類的嵌入式終端的有限系統資源流暢地播放Flash動畫文件是現代網際網路企業的熱門研究課題之在現有技術中,嵌入式終端中的CPU大多為單核心。在播放Flash動畫文件時需要完成加載、解析、渲染和播放等等一系列操作。當Flash動畫文件比較複雜和比較龐大時,CPU經常需要全速運行來完成整個播放過程。在實現本發明的過程中,發明人發現現有技術至少存在以下問題:由於Flash動畫文件的不斷複雜化和功能多樣化,現有的Flash動畫的動畫播放方法通常需要全速佔用CPU來處理數據,對嵌入式終端的資源佔用較大。即便是如此,Flash動畫的播放效果依然很差,播放速度較慢還容易卡頓,經發明人分析可知,整個Flash播放過程中,在渲染步驟中對CPU的佔用尤為明顯,是造成現有Flash動畫的動畫播放方法的播放效果差的主要原因之一。

技術實現要素:
為了在嵌入式終端中獲得更好的Flash動畫播放效果,本發明實施例提供了一種適用於包含多核處理器的嵌入式終端中的動畫播放方法及裝置。所述技術方案如下:根據本發明的一個方面,本發明實施例提供一種動畫播放方法,適用於包含多核處理器的終端中,所述多核處理器包含至少兩個處理核心,所述方法包括:獲取待播放動畫中當前幀的待渲染數據;按照預定拆分方式,將所述當前幀的待渲染數據拆分為至少兩個子圖像數據;將所述至少兩個子圖像數據分別交由各個處理核心進行並行渲染,得到渲染後的子圖像數據;將所述渲染後的子圖像數據組合為所述當前幀的圖像數據進行播放。進一步地,所述將當前幀的待渲染數據拆分為至少兩個子圖像數據,具體包括:所述預定拆分方式包括以下方式中的任一種:按照顯示區域拆分、按照處理核心個數拆分、按照包含對象的個數拆分、按照包含對象的類型拆分和按照包含對象所處的圖層拆分。進一步地,所述獲取每幀圖像的待渲染數據,具體包括:加載所述待播放動畫的動畫文件;解析所述動畫文件,以獲取至少一個控制標籤和至少一個定義標籤;依次識別每個控制標籤的操作指令;根據每個控制標籤的操作指令來操作所述定義標籤以生成所述當前幀的待渲染數據。進一步地,所述加載所述待播放動畫的動畫文件,具體包括:識別待播放動畫的動畫文件的類型,所述類型包括主動畫文件和子動畫文件中的一種;如果識別到所述動畫文件的類型為主動畫文件,則由當前處理核心加載所述動畫文件;如果識別到所述動畫文件的類型為子動畫文件,則由空閒處理核心加載所述動畫文件。進一步地,所述解析所述動畫文件,以獲取至少一個控制標籤和至少一個定義標籤,具體包括:採用當前處理核心對所述主動畫文件進行解析,獲得所述主動畫文件中的至少一個控制標籤和至少一個定義標籤;和/或,採用空閒處理核心對所述子動畫文件進行解析,獲得所述子動畫文件中的至少一個控制標籤和至少一個定義標籤。進一步地,所述依次識別每個控制標籤的操作指令,具體包括:識別所述控制標籤的類型是否為腳本標籤;如果識別所述控制標籤的類型為腳本標籤,則將所述類型為腳本標籤的控制標籤交由空閒處理核心進行處理以獲得所述控制標籤的操作指令。根據本發明的另一方面,本發明實施例還提供一種動畫播放裝置,適用於包含多核處理器的終端中,所述多核處理器包含至少兩個處理核心,所述裝置包括:數據獲取模塊,用於獲取待播放動畫中當前幀的待渲染數據;數據拆分模塊,用於按照預定拆分方式,將所述當前幀的待渲染數據拆分為至少兩個子圖像數據;數據渲染模塊,用於將所述至少兩個子圖像數據分別輸入各個處理核心進行並行渲染,得到渲染後的子圖像數據;數據播放模塊,用於將所述渲染後的子圖像數據組合為所述當前幀的圖像數據進行播放。進一步地,所述數據拆分模塊,具體包括:區域拆分單元、核心拆分單元、對象拆分單元、類型拆分單元和圖層拆分單元中的任一種;所述區域拆分單元,用於將所述當前幀的待渲染數據按照顯示區域拆分為至少兩個子圖像數據;所述核心拆分單元,用於將所述當前幀的待渲染數據按照包含對象的個數拆分為至少兩個子圖像數據;所述預定拆分單元,用於將所述當前幀的待渲染數據按照處理核心的個數拆分為至少兩個子圖像數據;所述類型拆分單元,用於將所述當前幀的待渲染數據按照包含對象的類型拆分為至少兩個子圖像數據;所述圖層拆分單元,用於將所述當前幀的待渲染數據按照包含對象所處的圖層拆分為至少兩個子圖像數據。進一步地,所述數據獲取模塊,具體包括:動畫文件加載單元、動畫文件解析單元、控制標籤識別單元和控制標籤執行單元;所述動畫文件加載單元,用於加載所述待播放動畫的動畫文件;所述動畫文件解析單元,用於解析所述動畫文件,以獲取至少一個控制標籤和至少一個定義標籤;所述控制標籤識別單元,用於依次識別每個控制標籤的操作指令;所述控制標籤執行單元,用於根據每個控制標籤的操作指令來操作所述定義標籤以生成所述當前幀的待渲染數據。進一步地,所述動畫文件加載單元,具體包括:文件類型識別子單元、主動畫文件加載子單元和子動畫文件加載子單元;所述文件類型識別子單元,用於識別待加載的動畫文件的類型,所述類型包括主動畫文件和子動畫文件中的一種;所述主動畫文件加載子單元,用於如果識別到所述動畫文件的類型為主動畫文件,則由當前處理核心加載所述動畫文件;所述子動畫文件加載子單元,用於如果識別到所述動畫文件的類型為子動畫文件,則由空閒處理核心加載所述動畫文件。進一步地,所述動畫文件解析單元,具體包括:主動畫文件解析子單元和子動畫文件解析子單元;所述主動畫文件解析子單元,用於採用當前處理核心對所述主動畫文件進行解析,以獲得所述主動畫文件中的至少一個控制標籤和至少一個定義標籤;所述子動畫文件解析子單元,用於採用空閒處理核心對所述子動畫文件進行解析,獲得所述子動畫文件中的至少一個控制標籤和至少一個定義標籤。進一步地,所述控制標籤識別單元,具體包括:類型識別子單元和腳本執行子單元;所述類型識別子單元,用於識別所述控制標籤的類型是否為腳本標籤;所述腳本執行子單元,用於如果識別所述控制標籤的類型為腳本標籤,則將所述類型為腳本標籤的控制標籤交由空閒處理核心進行處理以獲得所述控制標籤的操作指令。本發明實施例提供的技術方案帶來的有益效果是:通過將渲染過程中的待渲染數據拆分為多個部分,由多核處理器中的各個處理核心分別渲染而達到並行渲染的效果,使得Flash動畫的播放速度得到明顯提升,解決了Flash動畫播放時經常全速佔用CPU的問題。附圖說明為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發明實施例一提供的動畫播放方法的方法流程圖;圖2是本發明實施例二提供的動畫播放方法的方法流程圖;圖3是本發明實施例三提供的動畫播放裝置的結構方框圖;圖4是本發明實施例三提供的動畫文件加載單元的結構方框圖;圖5是本發明實施例三提供的數據拆分模塊的結構方框圖;圖6是本發明實施例三提供的動畫文件解析單元的結構方框圖;圖7是本發明實施例三提供的控制標籤識別單元的結構方框圖。具體實施方式為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。實施例一請參考圖1,其示出了實施例一提供的動畫播放方法的方法流程圖。該動畫播放方法適用於包含多核處理器的嵌入式設備中,該動畫播放方法包括:步驟101,獲取待播放動畫中當前幀的待渲染數據;在需要播放一個動畫文件時,首先需要加載動畫文件,動畫文件通常也即ShockWaveFlash文件,簡稱SWF文件。SWF文件通常包括有一個文件頭部分和文件體部分,文件頭部分定義了Flash動畫的版本、大小、幀率和總幀數等信息,文件體部分通常包括有大量的標籤;然後,解析加載到的SWF文件可以獲得定義標籤和控制標籤,每個定義標籤用於定義動畫中的一個對象或者說一個對象的所有信息,在Flash動畫中常見的每個人、每個動物、每個樹木都可以認為是一個對象,每幀圖像都是由若干個對象組成;對象的信息通常包含有屬性、位置、類別和所處圖層等一系列信息。控制標籤用於控制對象的繪製和運動;根據對應於一幀圖像的定義標籤和控制標籤可以獲取到該幀圖像的待渲染數據。步驟102,按照預定拆分方式,將當前幀的待渲染數據拆分為至少兩個子圖像數據;在獲取到一幀圖像的待渲染數據後,可以按照預定拆分方式將當前幀的待渲染數據拆分為至少兩個子圖像數據。該預定拆分方式可以有不同方式,比如一種方式為:按照該幀圖像在屏幕上顯示時的顯示區域劃分為若干塊顯示區域,然後將對應於每塊顯示區域的待渲染數據拆分為一個子圖像數據。具體地講,可以將該幀圖像在屏幕上顯示時的顯示區域劃分為6塊,將對應於每塊顯示區域的待渲染數據拆分為一個子圖像數據。步驟103,將至少兩個子圖像數據分別輸入各個處理核心進行並行渲染,得到渲染後的子圖像數據;將拆分後的子圖像數據分別輸入各個處理核心進行並行渲染,比如嵌入式終端包括4個CPU核心:第一處理核心、第二處理核心、第三處理核心和第四處理核心,一幀圖像的待渲染數據拆分後包括6個子圖像數據,則可以將拆分後的第1個至第4個子圖像數據分別輸入第一處理核心、第二處理核心、第三處理核心和第四處理核心進行並行渲染,然後各個處理核心可以將渲染後的每個子圖像數據放入緩衝區;同時,在第1個至第4個子圖像數據中的任一個子圖像數據被渲染完畢後,也即存在空閒處理核心時,立刻將第5個子圖像數據輸入該空閒處理核心進行處理,第6個子圖像數據也可以採用同樣的處理方式,使得在很短時間內就可以將一幀圖像的待渲染數據渲染完畢。當然,也可以將待渲染數據根據嵌入式終端所包含的核心個數拆分為相應個數的子圖像數據,比如嵌入式終端所包含的處理核心為4個,則將一幀圖像的待渲染數據也拆分為4個子圖像數據,可以獲得更快的渲染速度。步驟104,將渲染後的子圖像數據組合為當前幀的圖像數據進行播放;在當前幀的每個子圖像數據都渲染完畢,也即渲染後獲得的每個子圖像數據都存入緩衝區時,可以將緩衝區中當前幀的所有子圖像數據組合為當前幀的圖像數據。播放器可以對當前幀的圖像數據進行播放。對於其它幀的處理過程,與當前幀的處理過程均相同。綜上所述,本發明實施例一提供的動畫播放方法通過將渲染過程中的待渲染數據拆分為多個部分,由多核處理器中的各個處理核心分別渲染而達到並行渲染的效果,使得Flash動畫的播放速度得到明顯提升,解決了Flash動畫播放時經常全速佔用CPU的問題。更為詳細地講,現有技術中的每幀圖像的待渲染數據的渲染過程較長,可能超過了兩幀之間的間隔時間,所以容易出現卡頓現象。並且在此渲染過程中CPU被全速佔用,甚至會影響到來電、簡訊等高優先級的系統任務未能被及時處理。而本發明實施例一提供的動畫播放方法的渲染過程較為短暫,通常遠小於兩幀之間的間隔時間,使得CPU很快能夠被釋放,並且不會影響到來電、簡訊等高優先級的其它系統任務的處理。實施例二請參考圖2,其示出了本發明實施例二提供的動畫播放方法的方法流程圖。該動畫播放方法適用於包含多核處理器的嵌入式設備中,該動畫播放方法包括:步驟201,加載待播放動畫的動畫文件;動畫文件也即SWF文件,在需要播放一個Flash動畫時,需要加載該Flash動畫的動畫文件。在簡單的Flash動畫中,可能只有一個動畫文件。在較為複雜的Flash動畫中,可能存在不止一個動畫文件,比如一個Flash遊戲,可以包括一個主動畫文件和若干個子動畫文件,主動畫文件對應Flash遊戲運行時必不可少的部分,每個子動畫文件可以對應Flash遊戲的每一關的相應部分,子動畫文件不是必須加載的部分,只有在用戶玩遊戲進入了該項關卡時,才會加載相應的子動畫文件以加載相應的道具和場景等。為了能夠獲得更為快速的加載過程,該加載動畫文件可以具體包括:第一,識別待播放動畫的動畫文件的類型,該類型包括主動畫文件和子動畫文件中的一種;動畫文件中可以存在有標識信息,用於標識該動畫文件是主動畫文件還是子動畫文件。在加載一個動畫文件時,可以首先識別動畫文件中的標識信息,以判別該動畫文件的類型。如果識別到是主動畫文件,則進入第二步驟;如果識別到是子動畫文件,則進入第三步驟。第二,如果識別到動畫文件的類型為主動畫文件,則由當前處理核心加載動畫文件;通常最開始加載的一個動畫文件是主動畫文件,如果識別到動畫文件的類型為主動畫文件,則由當前處理核心加載主動畫文件。第三,如果識別到動畫文件的類型為子動畫文件,則由空閒處理核心加載動畫文件。如果識別到動畫文件為子動畫文件,則可以將子動畫文件的加載任務交由空閒處理核心處理。在具體的實施例中,可以將子動畫文件的加載任務封裝成獨立的任務交由系統的作業系統調度,由作業系統將該任務交由空閒處理核心處理。同時子動畫文件也可以初始不加載,等接收到相應的加載觸發信號後再加載,該加載觸發信號可以是玩家通過某一關卡的信號。步驟202,解析動畫文件,以獲得至少一個定義標籤和至少一個控制標籤;動畫文件通常包括有一個文件頭部分和文件體部分,文件頭部分定義了Flash動畫的版本、大小、幀率和總幀數等信息,文件體部分通常包括有大量的標籤。這些標籤包括兩類標籤:用於定義動畫中每個對象的定義標籤和用於控制每個對象的繪製和運動的控制標籤。具體地講,定義標籤用於定義Flash動畫中的內容,如形狀、文字、位圖和聲音等等,這些形狀、文字、位圖和聲音可以認為是一個對象。換句話說,每個定義標籤定義了一個對象的所有信息,比如一個定義標籤可以定義一個對象的類別為矢量多邊形、形狀為小草型、顏色為綠色、初始空間位置為(xx,yy)、初始圖...

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀