專利名稱:一種移動(dòng)終端動(dòng)畫(huà)的處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)終端動(dòng)畫(huà)領(lǐng)域,特別是有關(guān)于一種移動(dòng)終端動(dòng)畫(huà)的處理方法。
背景技術(shù):
現(xiàn)有運(yùn)營(yíng)商的動(dòng)畫(huà)業(yè)務(wù)采用了各種編解碼器對(duì)移動(dòng)終端動(dòng)畫(huà)進(jìn)行處理,其中主要包括以下幾種現(xiàn)有技術(shù)之一現(xiàn)有的WIVG(Wireless Interactive Vector Graphics)技術(shù)。該技術(shù)采用二維矢量圖形技術(shù),圖形全部采用矢量格式描述,解碼時(shí)進(jìn)行實(shí)時(shí)圖像渲染,存在的問(wèn)題是支持的移動(dòng)終端較少,只能在中高端移動(dòng)終端上運(yùn)行,并且無(wú)法在線播放。存在這樣的問(wèn)題的原因是動(dòng)畫(huà)數(shù)據(jù)用矢量格式描述,在解碼的時(shí)候要實(shí)時(shí)渲染,對(duì)終端的處理能力要求較高。由于移動(dòng)終端要用大量時(shí)間來(lái)進(jìn)行實(shí)時(shí)渲染,因而就無(wú)法做到在線播放。
現(xiàn)有技術(shù)之二MPEG4流媒體格式,可以參考Moving Picture ExpertsGroup(運(yùn)動(dòng)圖像專家組)組織提供的標(biāo)準(zhǔn)文檔。該技術(shù)采用復(fù)雜的幀間壓縮機(jī)制,解碼時(shí)進(jìn)行逐幀計(jì)算并渲染,存在的問(wèn)題是支持的移動(dòng)終端較少,只能在中高端移動(dòng)終端上運(yùn)行。存在這樣的問(wèn)題的原因是該視頻壓縮格式主要針對(duì)畫(huà)面較復(fù)雜的實(shí)拍視頻,所以編碼格式比較復(fù)雜,造成解碼器執(zhí)行效率較低,不能在低端移動(dòng)終端上流暢地播放。
現(xiàn)有技術(shù)之三自有移動(dòng)終端動(dòng)畫(huà)格式,該動(dòng)畫(huà)格式采用的具體技術(shù)不詳,但是基于該格式制作出來(lái)的動(dòng)畫(huà)文件普遍偏大,并且不支持在線播放。造成不支持在線播放的原因估計(jì)是動(dòng)畫(huà)文件數(shù)據(jù)量太大,無(wú)法在無(wú)線網(wǎng)絡(luò)上流暢地在線播放。
綜上所述,現(xiàn)有移動(dòng)終端動(dòng)漫編解碼器存在的缺點(diǎn)主要包括首先,解碼器的計(jì)算量太大,造成播放器只能在中高端移動(dòng)終端上運(yùn)行,而占市場(chǎng)主流的低端用戶無(wú)法使用該業(yè)務(wù)。
其次,編碼器的壓縮比率不夠高,造成動(dòng)畫(huà)文件數(shù)據(jù)量太大,無(wú)法在目前傳輸速率較低的無(wú)線網(wǎng)絡(luò)上進(jìn)行流暢地實(shí)時(shí)在線播放的功能,只能讓用戶下載后播放。并且動(dòng)畫(huà)長(zhǎng)度不能太長(zhǎng),否則文件太大,而移動(dòng)終端存儲(chǔ)空間較小,可能造成用戶無(wú)法保存的情況。包括閃易互動(dòng)的動(dòng)畫(huà)編碼格式。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種移動(dòng)終端動(dòng)畫(huà)的處理方法,以解決移動(dòng)終端動(dòng)畫(huà)的編碼壓縮比率不夠高,以及解碼播放時(shí)計(jì)算量大,占用內(nèi)存過(guò)大,不能實(shí)時(shí)在線播放的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提出了一種移動(dòng)終端動(dòng)畫(huà)的處理方法,應(yīng)用于包括編碼器、解碼器、服務(wù)器和移動(dòng)終端的移動(dòng)終端動(dòng)畫(huà)處理系統(tǒng),其中,包括以下步驟步驟一,所述編碼器將移動(dòng)終端動(dòng)畫(huà)文件中矢量圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù),將對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)轉(zhuǎn)換成自有數(shù)據(jù)格式的動(dòng)作控制數(shù)據(jù),然后將轉(zhuǎn)換后的所述光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)編碼成新的移動(dòng)終端動(dòng)畫(huà)文件,并上傳至所述服務(wù)器;步驟二,所述移動(dòng)終端從所述服務(wù)器下載所述新的移動(dòng)終端動(dòng)畫(huà)文件,通過(guò)所述解碼器解碼出所述光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù),根據(jù)所述動(dòng)作控制數(shù)據(jù)將所述光柵圖像數(shù)據(jù)渲染在所述移動(dòng)終端屏幕上。
上述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其中,所述步驟一中編碼成新的移動(dòng)終端動(dòng)畫(huà)文件的步驟進(jìn)一步包括在將所述光柵圖像數(shù)據(jù)寫(xiě)入所述新的移動(dòng)終端動(dòng)畫(huà)文件之前,先對(duì)所述光柵圖像數(shù)據(jù)進(jìn)行壓縮的步驟;和所述步驟二解碼所述光柵圖像數(shù)據(jù)的步驟進(jìn)一步包括對(duì)從所述新的移動(dòng)終端動(dòng)畫(huà)文件中獲取的所述光柵圖像數(shù)據(jù)進(jìn)行解壓縮的步驟。
上述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其中,所述壓縮為Gzip壓縮,所述解壓縮為Gzip解壓縮。
上述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其中,所述步驟一進(jìn)一步包括步驟41,所述編碼器解析所述移動(dòng)終端動(dòng)畫(huà)文件中的矢量圖像數(shù)據(jù),并保存所述矢量圖像數(shù)據(jù)至內(nèi)存中;步驟42,所述編碼器將所述矢量圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù);步驟43,壓縮所述光柵圖像數(shù)據(jù),并儲(chǔ)存所述壓縮后的光柵圖像數(shù)據(jù)至所述內(nèi)存中。
上述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其中,所述步驟一進(jìn)一步包括步驟51,所述編碼器解析所述移動(dòng)終端動(dòng)畫(huà)文件中動(dòng)作控制數(shù)據(jù),將所述動(dòng)作控制數(shù)據(jù)轉(zhuǎn)換為自有數(shù)據(jù)格式的動(dòng)作控制數(shù)據(jù),并儲(chǔ)存在所述內(nèi)存中;步驟52,將所述內(nèi)存中儲(chǔ)存的所述動(dòng)作控制數(shù)據(jù)和光柵圖像數(shù)據(jù)寫(xiě)入到新的動(dòng)畫(huà)文件,先寫(xiě)入所述光柵圖像數(shù)據(jù)再寫(xiě)入所述動(dòng)作控制數(shù)據(jù)。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種移動(dòng)終端動(dòng)畫(huà)的處理方法,應(yīng)用于包括編碼器、解碼器、服務(wù)器和移動(dòng)終端的移動(dòng)終端動(dòng)畫(huà)處理系統(tǒng),其中,包括步驟61,根據(jù)動(dòng)畫(huà)故事情節(jié)指定移動(dòng)終端動(dòng)畫(huà)的場(chǎng)景切換點(diǎn),根據(jù)所述場(chǎng)景切換點(diǎn)將所述移動(dòng)終端動(dòng)畫(huà)劃分為一個(gè)或者多個(gè)場(chǎng)景;步驟62,所述編碼器將所述每個(gè)場(chǎng)景的移動(dòng)終端動(dòng)畫(huà)中矢量圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù),將對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)轉(zhuǎn)換成自有數(shù)據(jù)格式的動(dòng)作控制數(shù)據(jù),然后將轉(zhuǎn)換后的所述光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)逐個(gè)場(chǎng)景的編碼進(jìn)新的移動(dòng)終端動(dòng)畫(huà)文件,并上傳至所述服務(wù)器;步驟63,所述移動(dòng)終端從所述服務(wù)器逐個(gè)場(chǎng)景的下載所述新的移動(dòng)終端動(dòng)畫(huà)文件,通過(guò)所述解碼器解碼出所述場(chǎng)景的光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù),根據(jù)所述動(dòng)作控制數(shù)據(jù)將所述光柵圖像數(shù)據(jù)渲染在所述移動(dòng)終端屏幕上上述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其中,所述步驟63進(jìn)一步包括步驟71,所述移動(dòng)終端下載所述新的動(dòng)畫(huà)文件的第一個(gè)場(chǎng)景的數(shù)據(jù);步驟72,所述移動(dòng)終端的解壓器解壓縮獲取所述場(chǎng)景的光柵圖像數(shù)據(jù)并存儲(chǔ)在所述內(nèi)存中;步驟73,所述移動(dòng)終端的解壓器解壓縮獲取所述場(chǎng)景的動(dòng)作控制數(shù)據(jù)并存儲(chǔ)在所述內(nèi)存中;步驟74,將所述內(nèi)存中保存的所述場(chǎng)景的光柵圖像數(shù)據(jù)按照所述動(dòng)作控制數(shù)據(jù)進(jìn)行播放,并下載下一場(chǎng)景的數(shù)據(jù),然后返回所述步驟72。
上述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其中,所述步驟74進(jìn)一步包括所述移動(dòng)終端逐幀播放一個(gè)場(chǎng)景的數(shù)據(jù),在各幀圖像的播放期間和相鄰兩幀圖像播放的間隔期間內(nèi),選擇任意一段或全部時(shí)間下載下一場(chǎng)景的數(shù)據(jù)的步驟。
上述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其中,所述光柵圖像數(shù)據(jù)的格式為png格式。
本發(fā)明在編碼方面提高了動(dòng)畫(huà)數(shù)據(jù)的壓縮比率,在解碼方面減少了解碼需要的計(jì)算量,從而解決了使用低端移動(dòng)終端在傳輸速率較低的無(wú)線網(wǎng)絡(luò)上流暢地在線播放動(dòng)畫(huà)的問(wèn)題。
本發(fā)明相對(duì)于矢量方式的動(dòng)畫(huà)來(lái)說(shuō)避免了移動(dòng)終端對(duì)矢量圖形的實(shí)時(shí)渲染,只需要載入GZIP壓縮后的光柵圖像顯示即可;相對(duì)于類似MPEG方式的視頻格式來(lái)說(shuō)降低了客戶端圖像載入的次數(shù),由于動(dòng)畫(huà)類視頻的特點(diǎn)是同一個(gè)圖形元素的重復(fù)利用率很高,一個(gè)圖形元素一次載入多次使用,在低端移動(dòng)終端上可以實(shí)現(xiàn)流暢的播放;相對(duì)于WIVG(Wireless Interactive Vector Graphics)技術(shù)的動(dòng)畫(huà)編碼方式來(lái)說(shuō),由于圖形元素的重復(fù)利用率很高,所以極大地降低了動(dòng)畫(huà)文件的數(shù)據(jù)量,從而實(shí)現(xiàn)了在傳輸速率較低的無(wú)線網(wǎng)絡(luò)上在線播放動(dòng)畫(huà)的功能,而不需要存儲(chǔ)到移動(dòng)終端里,這樣動(dòng)畫(huà)的長(zhǎng)度也就可以沒(méi)有限制了。
圖1是本發(fā)明移動(dòng)終端動(dòng)畫(huà)的編碼工作流程示意圖;圖2是本發(fā)明移動(dòng)終端動(dòng)畫(huà)的解碼工作流程示意圖;圖3是本發(fā)明在每場(chǎng)景逐幀播放的間隔期下載移動(dòng)終端動(dòng)畫(huà)的工作流程示意圖。
具體實(shí)施例方式
本發(fā)明提供了一種移動(dòng)終端動(dòng)畫(huà)的處理方法。其中,移動(dòng)終端編碼器解析移動(dòng)終端動(dòng)畫(huà)flash文件格式里的圖像數(shù)據(jù)部分,把該格式里的矢量描述的圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù),具體過(guò)程如下Flash文件格式是公開(kāi)的文件格式,該文件格式內(nèi)容主要包括兩部分,第一部分是矢量圖形描述部分,第二部分是動(dòng)畫(huà)動(dòng)作描述部分,轉(zhuǎn)換圖形的時(shí)候需要解析第一部分,下面是第一部分文件格式的一個(gè)示例shape id=1 Rect bitsize=13(1250,1730)-(2570,1750)(指定圖形的邊界)fill RGB(0,0,0) (指定填充顏色為黑色)line-style width=20RGB(0,0,0)(指定線寬為flash格式的20個(gè)單位)move 1260,1740 (把畫(huà)筆移動(dòng)到flash格式的1260,1740這個(gè)點(diǎn))line 1300,0(向右畫(huà)flash格式的1300個(gè)單位)這一段數(shù)據(jù)就描述了一條黑色橫線的繪制過(guò)程,可以編程解析出這部分內(nèi)容,然后使用C#語(yǔ)言的繪制圖像函數(shù)照樣繪制出來(lái),然后生成一張png格式的光柵圖像,以備后用。
Flash文件格式里的圖形描述部分雖然靈活多樣,描述出來(lái)的圖形也是豐富多彩,但是其數(shù)據(jù)內(nèi)容基本上都遵循這個(gè)格式,所以全部可以通過(guò)編程來(lái)解析和繪制。
矢量圖形轉(zhuǎn)換為光柵圖像后避免了移動(dòng)終端的實(shí)時(shí)渲染。然后使用GZip壓縮算法進(jìn)行壓縮,由于矢量圖形轉(zhuǎn)換得來(lái)的光柵圖像一般都是相對(duì)復(fù)雜度比較低的圖像,所以使用GZip壓縮算法壓縮的效果非常好,不會(huì)由于把矢量動(dòng)畫(huà)轉(zhuǎn)換成光柵圖像而帶來(lái)圖形部分?jǐn)?shù)據(jù)量的大幅增加。
對(duì)于動(dòng)畫(huà)來(lái)說(shuō)同一個(gè)圖形元素的重復(fù)利用率非常高(比如一個(gè)200幀的動(dòng)畫(huà)可能只需要60個(gè)圖形元素就可以表達(dá)故事情節(jié)),所以最后得到的數(shù)據(jù)文件非常小,適合在無(wú)線網(wǎng)絡(luò)上傳輸,并且需要載入的圖形數(shù)量也大幅減少,提高了解碼器的效率。
然后編碼器解析flash格式里的動(dòng)作控制部分(如平移、旋轉(zhuǎn)、縮放),把這些控制數(shù)據(jù)轉(zhuǎn)換為自有的控制光柵圖像的控制數(shù)據(jù)。下面是flash文件格式里動(dòng)作控制部分的一個(gè)示例place-object2 id=1 depth=1 clip=0 ratio=-1 name=nullMatrix(Sx,sy,s0,s1,tx,ty)=(1.0,1.0,0.0,0.0,0.0,0.0)null----------frame----------這段數(shù)據(jù)描述的內(nèi)容是把id為1的這個(gè)圖形不做任何縮放和旋轉(zhuǎn)后放置到1層上,其控制矩陣為1.0,1.0,0.0,0.0,0.0,0.0,控制矩陣是計(jì)算機(jī)圖形學(xué)里的一個(gè)重要概念,包含6個(gè)控制元素,分別是sx,sy,s0,s1,tx,ty,各為橫向縮放、縱向縮放、橫向平移、縱向平移和兩個(gè)旋轉(zhuǎn)角度控制元素。
本發(fā)明在解碼播放的時(shí)候需要解碼出所有需要顯示的圖形元素,然后逐幀按照控制數(shù)據(jù)的命令來(lái)控制,所以需要的內(nèi)存比較大,然而考慮到移動(dòng)終端的內(nèi)存空間非常有限,所以,本發(fā)明的編碼格式采用了分場(chǎng)景機(jī)制,即一個(gè)動(dòng)畫(huà)按照情節(jié)劃分為多個(gè)場(chǎng)景,在播放的時(shí)候解碼器按照?qǐng)鼍绊樞蜉d入和解碼,載入并解碼完一個(gè)場(chǎng)景后開(kāi)始播放該場(chǎng)景,播放過(guò)程中同時(shí)進(jìn)行下一場(chǎng)景數(shù)據(jù)的載入,在播放完該場(chǎng)景后進(jìn)行下一場(chǎng)景的解碼,解碼完成后開(kāi)始播放,然后重復(fù)這個(gè)過(guò)程直到整個(gè)動(dòng)畫(huà)播放完畢。那么在同一時(shí)刻移動(dòng)終端內(nèi)存里只需要存放一個(gè)場(chǎng)景的所有數(shù)據(jù)而不是整個(gè)動(dòng)畫(huà)的所有數(shù)據(jù),也就解決了移動(dòng)終端內(nèi)存較小無(wú)法全部載入的問(wèn)題,并且由于當(dāng)前場(chǎng)景的播放和下一場(chǎng)景數(shù)據(jù)的載入是同時(shí)進(jìn)行的,所以實(shí)現(xiàn)了在線播放。
分場(chǎng)景機(jī)制主要為了解決移動(dòng)終端內(nèi)存有限無(wú)法一次載入一個(gè)動(dòng)畫(huà)的所有圖像的問(wèn)題。如果一個(gè)動(dòng)畫(huà)的全部?jī)?nèi)容就是一個(gè)物體在畫(huà)面上平行移動(dòng),那么只需要一個(gè)場(chǎng)景就可以了,因?yàn)檎麄€(gè)動(dòng)畫(huà)包含的圖像數(shù)量為一個(gè),移動(dòng)終端只需要載入該圖像一次,就可以多次繪制表達(dá)出平移的效果。例如將背景都是一輛汽車的畫(huà)面設(shè)置為一個(gè)場(chǎng)景,這樣,編碼時(shí),對(duì)每幅畫(huà)面只需要保存較少的圖像數(shù)據(jù),并在播放時(shí),在同一個(gè)場(chǎng)景上渲染出原始畫(huà)面。
如果一個(gè)動(dòng)畫(huà)比較復(fù)雜,是一個(gè)完整的故事,那么就應(yīng)該按照故事情節(jié)劃分為多個(gè)場(chǎng)景。
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
編碼器在電腦上運(yùn)行,是生成動(dòng)畫(huà)文件的制作工具的核心部分。解碼器在移動(dòng)終端上運(yùn)行。在利用制作工具制作好一個(gè)動(dòng)畫(huà)文件后,通過(guò)內(nèi)容管理平臺(tái)上傳到服務(wù)器,移動(dòng)終端用戶就可以訪問(wèn)服務(wù)器并下載觀看這些動(dòng)畫(huà)文件了。
圖1是本發(fā)明移動(dòng)終端動(dòng)畫(huà)的編碼工作流程示意圖。如圖1所示,包括步驟S101,根據(jù)故事情節(jié)確定場(chǎng)景切換點(diǎn);步驟S102,編碼器根據(jù)指定的切換點(diǎn)把flash文件劃分為多個(gè)不同的場(chǎng)景;步驟S103,編碼器解析flash文件里當(dāng)前場(chǎng)景的矢量圖像數(shù)據(jù),并將矢量圖像數(shù)據(jù)儲(chǔ)存在內(nèi)存中,例如shape id=1 Rect bitsize=13(1250,1730)-(2570,1750)(指定圖形的邊界)fill RGB(0,0,0)(指定填充顏色為黑色)
line-style width=20 RGB(0,0,0)(指定線寬為flash格式的20個(gè)單位)move 1260,1740(把畫(huà)筆移動(dòng)到flash格式的1260,1740這個(gè)點(diǎn))line 1300,0 (向右畫(huà)flash格式的1300個(gè)單位)開(kāi)發(fā)人員可以使用C#語(yǔ)言里的System.Drawing.Drawing2D.GraphicsPath對(duì)象來(lái)存儲(chǔ)這個(gè)圖形的矢量描述;步驟S104,編碼器使用System.Drawing.Graphics對(duì)象的DrawPah方法來(lái)將該對(duì)象繪制為光柵圖像,最后使用System.Drawing.Bitmap對(duì)象來(lái)將光柵圖像存儲(chǔ)為png圖片;步驟S105,然后編碼器使用免費(fèi)開(kāi)發(fā)包GZIP將png圖片壓縮后存儲(chǔ)到內(nèi)存中;步驟S106,編碼器解析flash文件里的動(dòng)作控制數(shù)據(jù),例如place-object2 id=1 depth=1 clip=0 ratio=-1 name=nullMatrix(sx,sy,s0,s1,tx,ty)=(20.0,20.0,0.0,0.0,0.0,0.0)null----------frame----------動(dòng)作控制數(shù)據(jù)的關(guān)鍵數(shù)據(jù)是id和后面的變形矩陣(20.0,20.0,0.0,0.0,0.0,0.0),變形矩陣表達(dá)了對(duì)指定id的圖形元件需要做的變換,包括平移、旋轉(zhuǎn)和縮放。前兩個(gè)數(shù)據(jù)代表x軸平移和y軸平移,單位為1/20個(gè)像素,目的是為了保證在計(jì)算不同尺寸比例下平移位置時(shí)的精確度,由于電腦屏幕很大,用戶在播放動(dòng)畫(huà)的時(shí)候可能會(huì)出現(xiàn)改變動(dòng)畫(huà)尺寸的情況,例如全屏或者縮小,所以這種設(shè)計(jì)是必須的,但是手機(jī)屏幕很小,用戶在播放動(dòng)畫(huà)的時(shí)候不會(huì)改變動(dòng)畫(huà)的尺寸,只有一種全屏播放的尺寸,所以只需要按照實(shí)際尺寸值存儲(chǔ)即可。在解碼器解析出id和變形矩陣后,把這些關(guān)鍵數(shù)據(jù)轉(zhuǎn)換為自有數(shù)據(jù)格式,即單位為1個(gè)像素的數(shù)據(jù)格式,然后追加存儲(chǔ)到用GZIP壓縮算法壓縮后的圖像數(shù)據(jù)后面,例如上面這段控制數(shù)據(jù)在轉(zhuǎn)換后并存儲(chǔ)的格式是
步驟S107,編碼器一個(gè)場(chǎng)景一個(gè)場(chǎng)景地把所有圖像數(shù)據(jù)和動(dòng)作控制數(shù)據(jù)處理并存儲(chǔ)到內(nèi)存后,一起寫(xiě)入到最后的動(dòng)畫(huà)數(shù)據(jù)文件中,通過(guò)內(nèi)容管理平臺(tái)上傳到服務(wù)器,移動(dòng)終端用戶通過(guò)訪問(wèn)服務(wù)器,全部下載或者逐場(chǎng)景下載該動(dòng)畫(huà)文件至移動(dòng)終端的內(nèi)存中,利用移動(dòng)終端內(nèi)置的解碼器進(jìn)行解碼播放。
全部下載后播放動(dòng)畫(huà)的過(guò)程與逐場(chǎng)景下載并在線播放動(dòng)畫(huà)的過(guò)程基本相同,區(qū)別在于,播放時(shí)前者是直接從下載后的本地文件讀取數(shù)據(jù),而不是如后者從網(wǎng)絡(luò)上的服務(wù)端的讀取文件,由于讀取本地文件比從服務(wù)端讀取數(shù)據(jù)快得多,所以不會(huì)因?yàn)榫W(wǎng)絡(luò)繁忙而出現(xiàn)播放緩慢的情況。但是前者占用的內(nèi)存卻要遠(yuǎn)遠(yuǎn)大于后者的逐場(chǎng)景下載動(dòng)畫(huà)所使用的內(nèi)存。鑒于通常移動(dòng)終端的內(nèi)存空間相對(duì)較小,所以下面進(jìn)一步闡述逐場(chǎng)景下載,實(shí)現(xiàn)在線播放的具體步驟。
圖2是本發(fā)明移動(dòng)終端動(dòng)畫(huà)的解碼工作流程示意圖。如圖2所示,包括步驟S201,解碼器下載第一個(gè)場(chǎng)景的數(shù)據(jù)到內(nèi)存,開(kāi)始解析;步驟S202,解碼器先按照GZIP壓縮算法對(duì)圖像數(shù)據(jù)進(jìn)行解壓縮并存儲(chǔ)在內(nèi)存中,在brew開(kāi)發(fā)平臺(tái)上的GZIP解壓縮的實(shí)現(xiàn)方法為int32 IUNZIPASTREAM_Read(IUnzipAStream*pIUnzipAStream,void*pBuffer,uint32 dwCount)在所有主流的移動(dòng)終端開(kāi)發(fā)平臺(tái)上都提供GZIP壓縮算法的解壓縮函數(shù)可以直接調(diào)用;步驟S203,解碼器解壓出動(dòng)作控制數(shù)據(jù)存儲(chǔ)在內(nèi)存中;步驟S204,當(dāng)前場(chǎng)景數(shù)據(jù)解析完成后根據(jù)動(dòng)作控制數(shù)據(jù)開(kāi)始播放該場(chǎng)景的各幀圖像,可以在各幀圖像的播放期間和相鄰兩幀圖像播放的間隔期間內(nèi),選擇任意一段或全部時(shí)間,下載下一個(gè)場(chǎng)景的數(shù)據(jù)(參照?qǐng)D3所示的步驟)。
圖3是本發(fā)明在每場(chǎng)景逐幀播放的間隔期下載移動(dòng)終端動(dòng)畫(huà)的工作流程示意圖。如圖3所示,該實(shí)施例中在每一場(chǎng)景逐幀播放的間隔期間內(nèi),下載下一場(chǎng)景的數(shù)據(jù),具體包括步驟S301,移動(dòng)終端播放該場(chǎng)景的第一幀的圖像;步驟S302,在第一幀圖像播放完畢后的間隔期間,下載下一個(gè)場(chǎng)景的數(shù)據(jù)并保存;
步驟S303,開(kāi)始播放該場(chǎng)景的第二幀圖像;步驟S304,在第二幀圖像播放完畢后,繼續(xù)下載下一場(chǎng)景的數(shù)據(jù)并保存;步驟S305,以此類推,在該場(chǎng)景圖像逐幀播放的間隔期間內(nèi)選擇時(shí)間段下載下一場(chǎng)景的圖像數(shù)據(jù),直至該場(chǎng)景最后一幀的圖像播放完畢。
當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的普通技術(shù)人員當(dāng)可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種移動(dòng)終端動(dòng)畫(huà)的處理方法,應(yīng)用于包括編碼器、解碼器、服務(wù)器和移動(dòng)終端的移動(dòng)終端動(dòng)畫(huà)處理系統(tǒng),其特征在于,包括以下步驟步驟一,所述編碼器將移動(dòng)終端動(dòng)畫(huà)文件中矢量圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù),將對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)轉(zhuǎn)換成自有數(shù)據(jù)格式的動(dòng)作控制數(shù)據(jù),然后將轉(zhuǎn)換后的所述光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)編碼成新的移動(dòng)終端動(dòng)畫(huà)文件,并上傳至所述服務(wù)器;步驟二,所述移動(dòng)終端從所述服務(wù)器下載所述新的移動(dòng)終端動(dòng)畫(huà)文件,通過(guò)所述解碼器解碼出所述光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù),根據(jù)所述動(dòng)作控制數(shù)據(jù)將所述光柵圖像數(shù)據(jù)渲染在所述移動(dòng)終端屏幕上。
2.根據(jù)權(quán)利要求1所述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其特征在于,所述步驟一中編碼成新的移動(dòng)終端動(dòng)畫(huà)文件的步驟進(jìn)一步包括在將所述光柵圖像數(shù)據(jù)寫(xiě)入所述新的移動(dòng)終端動(dòng)畫(huà)文件之前,先對(duì)所述光柵圖像數(shù)據(jù)進(jìn)行壓縮的步驟;和所述步驟二解碼所述光柵圖像數(shù)據(jù)的步驟進(jìn)一步包括對(duì)從所述新的移動(dòng)終端動(dòng)畫(huà)文件中獲取的所述光柵圖像數(shù)據(jù)進(jìn)行解壓縮的步驟。
3.根據(jù)權(quán)利要求2所述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其特征在于,所述壓縮為Gzip壓縮,所述解壓縮為Gzip解壓縮。
4.根據(jù)權(quán)利要求2或3所述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其特征在于,所述步驟一進(jìn)一步包括步驟41,所述編碼器解析所述移動(dòng)終端動(dòng)畫(huà)文件中的矢量圖像數(shù)據(jù),并保存所述矢量圖像數(shù)據(jù)至內(nèi)存中;步驟42,所述編碼器將所述矢量圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù);步驟43,壓縮所述光柵圖像數(shù)據(jù),并儲(chǔ)存所述壓縮后的光柵圖像數(shù)據(jù)至所述內(nèi)存中。
5.根據(jù)權(quán)利要求4所述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其特征在于,所述步驟一進(jìn)一步包括步驟51,所述編碼器解析所述移動(dòng)終端動(dòng)畫(huà)文件中動(dòng)作控制數(shù)據(jù),將所述動(dòng)作控制數(shù)據(jù)轉(zhuǎn)換為自有數(shù)據(jù)格式的動(dòng)作控制數(shù)據(jù),并儲(chǔ)存在所述內(nèi)存中;步驟52,將所述內(nèi)存中儲(chǔ)存的所述動(dòng)作控制數(shù)據(jù)和光柵圖像數(shù)據(jù)寫(xiě)入到新的動(dòng)畫(huà)文件,先寫(xiě)入所述光柵圖像數(shù)據(jù)再寫(xiě)入所述動(dòng)作控制數(shù)據(jù)。
6.一種移動(dòng)終端動(dòng)畫(huà)的處理方法,應(yīng)用于包括編碼器、解碼器、服務(wù)器和移動(dòng)終端的移動(dòng)終端動(dòng)畫(huà)處理系統(tǒng),其特征在于,包括步驟61,根據(jù)動(dòng)畫(huà)故事情節(jié)指定移動(dòng)終端動(dòng)畫(huà)的場(chǎng)景切換點(diǎn),根據(jù)所述場(chǎng)景切換點(diǎn)將所述移動(dòng)終端動(dòng)畫(huà)劃分為一個(gè)或者多個(gè)場(chǎng)景;步驟62,所述編碼器將所述每個(gè)場(chǎng)景的移動(dòng)終端動(dòng)畫(huà)中矢量圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù),將對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)轉(zhuǎn)換成自有數(shù)據(jù)格式的動(dòng)作控制數(shù)據(jù),然后將轉(zhuǎn)換后的所述光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)逐個(gè)場(chǎng)景的編碼進(jìn)新的移動(dòng)終端動(dòng)畫(huà)文件,并上傳至所述服務(wù)器;步驟63,所述移動(dòng)終端從所述服務(wù)器逐個(gè)場(chǎng)景的下載所述新的移動(dòng)終端動(dòng)畫(huà)文件,通過(guò)所述解碼器解碼出所述場(chǎng)景的光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù),根據(jù)所述動(dòng)作控制數(shù)據(jù)將所述光柵圖像數(shù)據(jù)渲染在所述移動(dòng)終端屏幕上
7.根據(jù)權(quán)利要求6所述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其特征在于,所述步驟63進(jìn)一步包括步驟71,所述移動(dòng)終端下載所述新的動(dòng)畫(huà)文件的第一個(gè)場(chǎng)景的數(shù)據(jù);步驟72,所述移動(dòng)終端的解壓器解壓縮獲取所述場(chǎng)景的光柵圖像數(shù)據(jù)并存儲(chǔ)在所述內(nèi)存中;步驟73,所述移動(dòng)終端的解壓器解壓縮獲取所述場(chǎng)景的動(dòng)作控制數(shù)據(jù)并存儲(chǔ)在所述內(nèi)存中;步驟74,將所述內(nèi)存中保存的所述場(chǎng)景的光柵圖像數(shù)據(jù)按照所述動(dòng)作控制數(shù)據(jù)進(jìn)行播放,并下載下一場(chǎng)景的數(shù)據(jù),然后返回所述步驟72。
8.根據(jù)權(quán)利要求7所述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其特征在于,所述步驟74進(jìn)一步包括所述移動(dòng)終端逐幀播放一個(gè)場(chǎng)景的數(shù)據(jù),在各幀圖像的播放期間和相鄰兩幀圖像播放的間隔期間內(nèi),選擇任意一段或全部時(shí)間下載下一場(chǎng)景的數(shù)據(jù)的步驟。
9.根據(jù)權(quán)利要求1所述的移動(dòng)終端動(dòng)畫(huà)的處理方法,其特征在于,所述光柵圖像數(shù)據(jù)的格式為png格式。
全文摘要
本發(fā)明提出了一種移動(dòng)終端動(dòng)畫(huà)的處理方法,應(yīng)用于包括編碼器、解碼器、服務(wù)器和移動(dòng)終端的移動(dòng)終端動(dòng)畫(huà)處理系統(tǒng),其中,包括以下步驟步驟一,編碼器將移動(dòng)終端動(dòng)畫(huà)文件中矢量圖像數(shù)據(jù)轉(zhuǎn)換為光柵圖像數(shù)據(jù),將對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)轉(zhuǎn)換成自有數(shù)據(jù)格式的動(dòng)作控制數(shù)據(jù),然后將轉(zhuǎn)換后的光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù)編碼成新的移動(dòng)終端動(dòng)畫(huà)文件,并上傳至服務(wù)器;步驟二,移動(dòng)終端從服務(wù)器下載新的移動(dòng)終端動(dòng)畫(huà)文件,通過(guò)解碼器解碼出光柵圖像數(shù)據(jù)及其對(duì)應(yīng)的動(dòng)作控制數(shù)據(jù),根據(jù)動(dòng)作控制數(shù)據(jù)將光柵圖像數(shù)據(jù)渲染在移動(dòng)終端屏幕上,此外本發(fā)明還提供了一種將動(dòng)畫(huà)分成多個(gè)場(chǎng)景進(jìn)行編碼并由移動(dòng)終端分場(chǎng)景下載、播放的方法。
文檔編號(hào)H04M11/08GK101031078SQ20071006490
公開(kāi)日2007年9月5日 申請(qǐng)日期2007年3月28日 優(yōu)先權(quán)日2007年3月28日
發(fā)明者蒲然, 顏承, 周野 申請(qǐng)人:中國(guó)聯(lián)合通信有限公司