【嵌入式FLASH播放器的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第1頁(yè)
【嵌入式FLASH播放器的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第2頁(yè)
【嵌入式FLASH播放器的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第3頁(yè)
【嵌入式FLASH播放器的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第4頁(yè)
【嵌入式FLASH播放器的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式FLASH播放器的設(shè)計(jì)與實(shí)現(xiàn)研究摘要Flash是以流控制技術(shù)和矢量圖形技術(shù)等技術(shù)為代表的一種多媒體形式。通過(guò)將矢量圖、位圖、音頻、動(dòng)畫(huà)、交互動(dòng)作有機(jī)地、靈活地結(jié)合在一起,F(xiàn)lash這種多媒體形式能夠制作出美觀、新奇、交互性更強(qiáng)的動(dòng)畫(huà)。Flash動(dòng)畫(huà)具有短小精悍、交互性好、傳輸速度快、播放采用流式技術(shù)、制作成本低等特點(diǎn)。正因?yàn)檫@些特點(diǎn),F(xiàn)lash在網(wǎng)絡(luò)上非常受歡迎,網(wǎng)絡(luò)上有大量以Flash文件形式存在的資源。隨著后PC時(shí)代的來(lái)臨,嵌入式系統(tǒng)將廣泛應(yīng)用在人們的日常生活中,人們對(duì)嵌入式系統(tǒng)中的多媒體應(yīng)用需求也越來(lái)越強(qiáng)烈。近年來(lái)隨著嵌入式硬件的快速發(fā)展,嵌入式系統(tǒng)的計(jì)算速度進(jìn)一步提高和存儲(chǔ)容量的不斷擴(kuò)大,使得在嵌入式設(shè)備上進(jìn)行矢量圖形技術(shù)的開(kāi)發(fā)成為可能。以便攜式設(shè)備為主、并且具有網(wǎng)絡(luò)互聯(lián)功能的嵌入式平臺(tái)的不斷普及,使移動(dòng)矢量圖形技術(shù)成為嵌入式領(lǐng)域的一個(gè)發(fā)展熱點(diǎn)。關(guān)鍵詞:嵌入式FLASH播放器;設(shè)計(jì);實(shí)現(xiàn)目錄摘要 2目錄 31. 序言 42. 基礎(chǔ)理論概述 62.1嵌入式開(kāi)發(fā)的基本理論 62.2建立交叉開(kāi)發(fā)環(huán)境的相關(guān)工具 82.3Flash文件基本知識(shí) 103. Cohen—Sutherland線段裁剪改進(jìn)算法 103.1改進(jìn)算法提出的背景 104. 播放器的總體設(shè)計(jì)方案 124.1播放器功能設(shè)計(jì) 124.2DMC-2440-k2.1嵌入式評(píng)估板的結(jié)構(gòu)及分析 145. 系統(tǒng)功能的實(shí)現(xiàn) 155.1模擬器中實(shí)現(xiàn)系統(tǒng)功能 155.2開(kāi)發(fā)板中實(shí)現(xiàn)系統(tǒng)功能 185.3播放器系統(tǒng)性能分析 206. 結(jié)論 21參考文獻(xiàn) 23序言隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)不斷趨向于微型化和嵌入化,使它更廣泛地融入人們的工作、生活和娛樂(lè)等各個(gè)方面。進(jìn)入21世紀(jì)以來(lái),嵌入式技術(shù)逐漸成熟并全面展開(kāi),已經(jīng)成為通信和消費(fèi)類產(chǎn)品的共同發(fā)展方向。在信息家電領(lǐng)域,如網(wǎng)絡(luò)冰箱、家庭網(wǎng)關(guān)、數(shù)字機(jī)頂盒、數(shù)字電視等的發(fā)展,使得嵌入式系統(tǒng)正扮演著越來(lái)越重要的角色。在個(gè)人計(jì)算機(jī)領(lǐng)域中,嵌入式產(chǎn)品使個(gè)人商用、娛樂(lè)和通信功能相結(jié)合,以自然的人機(jī)交互界面和豐富的多媒體處理能力迅速得以推廣,并取得了巨大成功,而所有上述產(chǎn)品都離不開(kāi)嵌入式技術(shù)。所以嵌入式系統(tǒng)的開(kāi)發(fā),已被人們公認(rèn)為是一個(gè)具有良好發(fā)展?jié)摿Φ男袠I(yè)。而且隨著嵌入技術(shù)的不斷發(fā)展,嵌入式處理器的運(yùn)算能力不斷地增強(qiáng)。音頻、視頻等用Smart-phone、PDA、UMD等高端產(chǎn)品中已經(jīng)非常普遍。Flash作為一種交互式矢量多媒體技術(shù),表現(xiàn)形式靈活多樣,而文件體積又較小的文件格式。在各類場(chǎng)合,特別是Internet上取得了廣泛應(yīng)用。隨著我國(guó)3G通訊的推進(jìn),基于移動(dòng)設(shè)備的高速Internet網(wǎng)將成為現(xiàn)實(shí),通過(guò)高速移動(dòng)Internet網(wǎng)連接多媒體資源進(jìn)行媒體播放;或者便攜式媒體播放器作為獨(dú)立設(shè)備通過(guò)連接線與移動(dòng)設(shè)備相連接,借助移動(dòng)設(shè)備通過(guò)高速移動(dòng)Internet網(wǎng)連接多媒體資源進(jìn)行媒體播放。這樣可以降低便攜式媒體播放器的成本、功耗,同時(shí)延長(zhǎng)播放時(shí)間。所以便攜式媒體播放器仍然有較大的發(fā)展?jié)摿洼^為廣闊的發(fā)展前景,而且便攜式播放器的設(shè)計(jì)應(yīng)改變成基于網(wǎng)絡(luò)的便攜式媒體播放器。用戶也很希望通過(guò)與網(wǎng)絡(luò)連接共享更多的多媒體資源,而網(wǎng)絡(luò)上存在大量以Flash格式形式存在的多媒體資源。隨著通信網(wǎng)絡(luò)技術(shù)的發(fā)展、嵌入式技術(shù)的不斷發(fā)展、用戶的需求,提出了便攜式播放器對(duì)Flash文件格式的播放需求,如PMP和嵌入式網(wǎng)頁(yè)瀏覽器等;而且,由于Flash快速開(kāi)發(fā)的特性,還適合開(kāi)發(fā)嵌入式系統(tǒng)的用戶界面。但根據(jù)調(diào)查,現(xiàn)在網(wǎng)絡(luò)廣泛存在的媒體資源格式FLASH并沒(méi)有在便攜式播放器中得到很好的支持。特別是在wmce下的Flash播放器對(duì)FLASH支持并不完善,迫切需要能夠支持更新的flash文件格式的播放器應(yīng)用在嵌入式設(shè)備本文根據(jù)這些情況提出并設(shè)計(jì)一款基于處理器為ARM9及操作系統(tǒng)為wmCe5.0的嵌入式flash播放器,使這一平臺(tái)下的flash播放器性能高。同時(shí)也為嵌入式軟件開(kāi)發(fā)、PC平臺(tái)下的軟件向嵌入式平臺(tái)移植、flash的播放進(jìn)行更深入的研宄奠定良好的的基礎(chǔ)。隨著后PC時(shí)代的到來(lái)及Internet網(wǎng)絡(luò)的飛速發(fā)展,人們已經(jīng)不滿足于被局限在PC平臺(tái)上的矢量圖形顯示,比如汽車上使用的導(dǎo)航電子地圖,GIS系統(tǒng)。現(xiàn)在的網(wǎng)絡(luò)資源豐富,但大多數(shù)只在傳統(tǒng)的PC機(jī)上運(yùn)行。限制FLASH在嵌入式系統(tǒng)上播放的主要問(wèn)題是播放的速度和質(zhì)量。如果技術(shù)上能實(shí)現(xiàn)對(duì)Flash在嵌入式系統(tǒng)的快速播放,則Flash的資源將會(huì)被充分的利用,其編程技術(shù)也將得到更好的推廣。但由于嵌入式系統(tǒng)提供的硬件資源和軟件資源在性能上一般低于PC機(jī),其遵循的原則是“夠用”原則,而FLASH文件的組成大多數(shù)是矢量圖形,在恢復(fù)的時(shí)候要求硬件的性能要好。本文的出發(fā)點(diǎn)就是在現(xiàn)有的硬件性能的基礎(chǔ)上,XtFlash的矢量圖形數(shù)據(jù)的存儲(chǔ)、顯示算法的實(shí)現(xiàn)過(guò)程進(jìn)行改進(jìn),使嵌入式FLASH播放器能夠流暢的播放Flash,而且功能完備。算法完成以后,可應(yīng)用在需要播放flash的環(huán)境中。Flash文件播放技術(shù)在SNS應(yīng)用中的應(yīng)用前景在互聯(lián)網(wǎng)領(lǐng)域SNS有三層含義:服務(wù)SocialNetworkService,軟件SocialNetworkSoftware,網(wǎng)站SocialNetworkSite。SocialNetworkService中文直譯為社會(huì)性網(wǎng)絡(luò)服務(wù)或社會(huì)化網(wǎng)絡(luò)服務(wù),意譯為社交網(wǎng)絡(luò)服務(wù)。中文的網(wǎng)絡(luò)含義包括硬件、軟件、服務(wù)及網(wǎng)站應(yīng)用,加上四字構(gòu)成的詞組更符合中國(guó)人的構(gòu)詞習(xí)慣,因此人們習(xí)慣上用社交網(wǎng)絡(luò)來(lái)代指SNS(包括SocialNetworkService的三層含義),用社交軟件代指SocialNetworkSoftware,用社交網(wǎng)站代指SocialNetworkSite。SNS專指旨在幫助人們建立社會(huì)性網(wǎng)絡(luò)的互聯(lián)網(wǎng)應(yīng)用服務(wù)。在互聯(lián)網(wǎng)中,PC機(jī)、智能手機(jī)都沒(méi)有強(qiáng)大的計(jì)算及帶寬資源,它們依賴網(wǎng)站服務(wù)器,才能瀏覽發(fā)布信息。如果將每個(gè)設(shè)備的計(jì)算及帶寬資源進(jìn)行重新分配與共享,這些設(shè)備就有可能具備比那些服務(wù)器更為強(qiáng)大的能力。這就是分布計(jì)算理論誕生的根源,是SNS技術(shù)誕生的理論基礎(chǔ)。SNS是一個(gè)采用分布式技術(shù),通俗地說(shuō)是采用P2P技術(shù),構(gòu)建的下一代基于個(gè)人的網(wǎng)絡(luò)基礎(chǔ)軟件。SNS通過(guò)分布式軟件編程,將現(xiàn)在分散在每個(gè)人的設(shè)備上的CPU、硬盤、帶寬進(jìn)行統(tǒng)籌安排,并賦予這些相對(duì)服務(wù)器來(lái)說(shuō)很渺小的設(shè)備更強(qiáng)大的能力。這些能力包括:計(jì)算速度,通信速度,存儲(chǔ)空間。多媒體處理技術(shù)將在SNS中得到更大范圍的運(yùn)用,這其中包含矢量圖形的產(chǎn)生,傳輸,存儲(chǔ),使用等環(huán)節(jié)。因此,F(xiàn)lash文件播放技術(shù)在SNS應(yīng)用開(kāi)發(fā)中具有良好的前景。Flash文件播放技術(shù)在WebGIS應(yīng)用開(kāi)發(fā)中的應(yīng)用前景WebGIS的基本思想是在互聯(lián)網(wǎng)上提供地理信息,讓用戶通過(guò)瀏覽器瀏覽,獲得地理信息系統(tǒng)中的數(shù)據(jù)和功能服務(wù)[25]。WebGIS由于操作簡(jiǎn)單、跨平臺(tái)、可擴(kuò)展、信息分布共享、高效的負(fù)載平衡等特點(diǎn),已經(jīng)在資源、交通、通訊、城市建設(shè)、教育、人口、海洋以及軍事等幾十個(gè)領(lǐng)域中的嵌入式平臺(tái)中得到應(yīng)用。以地圖形式表達(dá)為主的地理信息要有效的發(fā)布在Internet上,現(xiàn)存方法很多,但是會(huì)造成服務(wù)器端較大負(fù)載,數(shù)據(jù)量和交互頻率較高;安裝定制的插件,運(yùn)行開(kāi)發(fā)難度較大的JavaApplet程序,靈活性高但通用性受到限制。產(chǎn)生矛盾的根本原因是實(shí)現(xiàn)GIS在網(wǎng)上瀏覽尚沒(méi)有建立成型的體系,目前流行的瀏覽器本身不支持一定的矢量圖形標(biāo)準(zhǔn),而WebGIS離不開(kāi)矢量圖形,因此要實(shí)現(xiàn)WebGIS,建立一種矢量圖形標(biāo)準(zhǔn),使瀏覽器能夠支持矢量圖形成了當(dāng)務(wù)之急。而W3C近年推出的可伸縮矢量圖形技術(shù)SVG(ScalableVectorGraphics)正是一種針對(duì)于Web的矢量圖形顯不標(biāo)準(zhǔn)。而SVG的播放器的研宄與flash播放器的研宄所處理的問(wèn)題基本一致。因?yàn)樗鼈兲幚淼闹饕獙?duì)象是都是網(wǎng)絡(luò)矢量矢量圖形,所以隨著技術(shù)的發(fā)展flash播放器的相關(guān)技術(shù)會(huì)在WebGIS中得到應(yīng)基礎(chǔ)理論概述2.1嵌入式開(kāi)發(fā)的基本理論嵌入式系統(tǒng)以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬可裁剪,適應(yīng)應(yīng)用系統(tǒng),對(duì)功能、可靠性、成本、體積和功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)ra。對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),硬件是支撐,軟件是靈魂。將現(xiàn)有的PC機(jī)算法,在嵌入式平臺(tái)中進(jìn)行移植,是開(kāi)發(fā)嵌入式軟件的一個(gè)方向。但是嵌入式應(yīng)用軟件和普通應(yīng)用軟件有一定的區(qū)別,它不僅要求其準(zhǔn)確性、安全性和穩(wěn)定性等方面能夠滿足實(shí)際應(yīng)用的需要,而且還要盡可能地進(jìn)行優(yōu)化,以減少對(duì)系統(tǒng)資源的消耗,降低硬件成本;如果直接采用現(xiàn)有的PC上的算法,嵌入式設(shè)備有限的電池能源和運(yùn)算能力難以滿足進(jìn)行實(shí)時(shí)視頻通信的需求,因此需要依據(jù)嵌入式設(shè)備的特點(diǎn)對(duì)算法進(jìn)行改進(jìn)和優(yōu)化,從而降低運(yùn)算的復(fù)雜度。由于一般嵌入式系統(tǒng)使用的ARM7,ARM9的CPU大部分不具備硬件浮點(diǎn)運(yùn)算器,進(jìn)行一次浮點(diǎn)數(shù)運(yùn)算操作需要編譯器轉(zhuǎn)換成大量定點(diǎn)指令進(jìn)行模擬,導(dǎo)致進(jìn)行浮點(diǎn)數(shù)運(yùn)算操作要耗費(fèi)大量的CPU時(shí)間。還會(huì)產(chǎn)生如流水線和總線寬度等問(wèn)題。由于一部分位用來(lái)表示指數(shù),所以浮點(diǎn)計(jì)算得出的值可以比整數(shù)計(jì)算得出的值大很多或是小很多。換句話說(shuō),對(duì)于給定數(shù)量的位,浮點(diǎn)計(jì)算的精度沒(méi)有整數(shù)計(jì)算高,但浮點(diǎn)計(jì)算結(jié)果的范圍卻比整數(shù)計(jì)算大很多。非常多的通用寄存器ARM7TDMI內(nèi)核中一共包括37個(gè)通用寄存器,這個(gè)與傳統(tǒng)的CISC機(jī)器有非常大的區(qū)別,當(dāng)然這也是ARM作為RISC處理器的一個(gè)非常重要的特征,寄存器多了就可以盡量減少對(duì)存儲(chǔ)器的訪問(wèn)(比如傳參,比如臨時(shí)變量等等)。雖然在一個(gè)CPU狀態(tài)下,我們能夠看到的寄存器只有最多18個(gè),但是ARM的寄存器堆確實(shí)較X86或者68K要多了不少。沒(méi)有硬件堆棧ARM的處理器本身在硬件上沒(méi)有堆棧的概念。這么說(shuō)的意思是ARM本身在硬件上不會(huì)自己維護(hù)堆棧。比如在發(fā)生函數(shù)調(diào)用的時(shí)侯,返回地址是由硬件自動(dòng)保存在R14寄存器中的,硬件不會(huì)將返回地址自動(dòng)壓棧。在中斷或異常的時(shí)侯,硬件也只是將返回地址保存到R14,CPSR保存到相應(yīng)狀態(tài)的SPSR中。如果用戶需要函數(shù)嵌套調(diào)用或是中斷嵌套的話,必須自己通過(guò)軟件管理自己的堆棧。改進(jìn)型哈佛結(jié)構(gòu)ARM9有獨(dú)立的指令和數(shù)據(jù)存儲(chǔ)器接口,允許處理器同時(shí)進(jìn)行取指和讀寫(xiě)數(shù)據(jù)。這叫作改進(jìn)型哈佛結(jié)構(gòu)。而ARM7只有數(shù)據(jù)存儲(chǔ)器接口,它同時(shí)用來(lái)取指令和數(shù)據(jù)訪問(wèn)。嵌入式操作系統(tǒng)EOS(EmbeddedOperatingSystem)嵌入式系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制協(xié)調(diào)并發(fā)活動(dòng);它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過(guò)裝卸某些模塊來(lái)達(dá)到系統(tǒng)所要求的功能。嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。除具備了一般操作系統(tǒng)最基本的功能,還有以下特點(diǎn):(1)可裝卸性。開(kāi)放性、可伸縮性的體系結(jié)構(gòu)。(2)強(qiáng)實(shí)時(shí)性。EOS實(shí)時(shí)性一般較強(qiáng),可用于各種設(shè)備控制當(dāng)中。(3)統(tǒng)一的接口。提供各種設(shè)備驅(qū)動(dòng)接口。(4)操作方便、簡(jiǎn)單、提供友好的圖形GUI,圖形界面,追求易學(xué)易用。(5)提供強(qiáng)大的網(wǎng)絡(luò)功能,支持TCP門P協(xié)議及其它協(xié)議,提供TCP、UDP、IP、PPP協(xié)議支持及統(tǒng)一的MAC訪問(wèn)層接口,為各種移動(dòng)計(jì)算設(shè)備預(yù)留接口。(6)強(qiáng)穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開(kāi)始運(yùn)行就不需要用戶過(guò)多的干預(yù),這就要負(fù)責(zé)系統(tǒng)管理的EOS具有較強(qiáng)的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接日一般不提供操作命令,它通過(guò)系統(tǒng)調(diào)用命令向用戶程序提供服務(wù)。(71)固化代碼。在嵌入系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計(jì)算機(jī)的ROM中。輔助存儲(chǔ)器在嵌入式系統(tǒng)中很少使用,因此,嵌入式操作系統(tǒng)的文件管理功能應(yīng)該能夠很容易地拆卸,而用各種內(nèi)存文件系統(tǒng)。(8)更好的硬件適應(yīng)性,也就是良好的移植性。2.2建立交叉開(kāi)發(fā)環(huán)境的相關(guān)工具交叉開(kāi)發(fā)環(huán)境是進(jìn)行嵌入式軟件開(kāi)發(fā)的物質(zhì)基礎(chǔ),在進(jìn)程開(kāi)發(fā)時(shí)常用到以下軟件或工具。EmbeddedVisualC++4.0EVC是微軟專門針對(duì)嵌入式操作系統(tǒng)WINCE開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境。EVC集成開(kāi)發(fā)環(huán)境與VC的較為相似,只是在工具欄下面多了一個(gè)特性工具欄,用于選擇嵌入式設(shè)備類型、仿真器類型和CPU類型[15]。EVC自帶較多實(shí)用的輔助開(kāi)發(fā)工具。如RemoteFileViewer顯示目標(biāo)設(shè)備上的目錄層次和文件;RemoteProcessViewer完成在桌面計(jì)算機(jī)上瀏覽遠(yuǎn)程設(shè)備上運(yùn)行的進(jìn)程以及線程,同時(shí)可以終止指定進(jìn)程;RemoteZoomm抓取遠(yuǎn)程設(shè)備上的屏幕圖像;RemoteRegistyEditor在桌面計(jì)算機(jī)上管理遠(yuǎn)程設(shè)備注冊(cè)表;RemoteHeapWalkor顯不在遠(yuǎn)程目標(biāo)設(shè)備上運(yùn)行的進(jìn)程、堆標(biāo)識(shí)和標(biāo)志信息;RemoteSpy++在桌面計(jì)算機(jī)上顯示遠(yuǎn)程設(shè)備上運(yùn)行的窗口。ActiveSync4.0在開(kāi)發(fā)完應(yīng)用程序后,就要用到ActiveSync.這是一款管理WindowsMobile設(shè)備連接、與PC進(jìn)行數(shù)據(jù)同步的工具。ActiveSync提供了一種支持,用來(lái)同步基于桌面Windows系統(tǒng)和基于CENET的便攜式系統(tǒng)間的數(shù)據(jù),它使用時(shí)間標(biāo)記和用戶參數(shù)來(lái)跟蹤兩個(gè)系統(tǒng)間的數(shù)據(jù)改變,并傳送相應(yīng)的數(shù)據(jù)使得每個(gè)系統(tǒng)上的數(shù)據(jù)都是最新的,過(guò)時(shí)的或者冗余的數(shù)據(jù)會(huì)被刪除。ActiveSync支持USB、紅外、調(diào)制解調(diào)器,以及Ethernet等多種連接。它不支持CE設(shè)備間的數(shù)據(jù)同步,也不支持CE設(shè)備和服務(wù)器間的數(shù)據(jù)同步。遠(yuǎn)程工具是用來(lái)在PC機(jī)上查看WindowsCE設(shè)備信息的一些工具。就功能而言,可以分為三類:用來(lái)進(jìn)行調(diào)試的;用來(lái)進(jìn)行性能監(jiān)測(cè)的;用來(lái)進(jìn)行遠(yuǎn)程信息管理的。這里只用到了第三類中的RemoteZoom-in,它是一個(gè)遠(yuǎn)程截屏軟件,可遠(yuǎn)程截取WindowsCE設(shè)備上正在運(yùn)行的畫(huà)面。第4章中的部分圖片就是由此工具截得。PlatformBuilder5.0該工具主要用于定制WinceCE5.0嵌入式操作系統(tǒng)的集成開(kāi)發(fā)環(huán)境,也可以進(jìn)行簡(jiǎn)單的運(yùn)用程序開(kāi)發(fā)。2.3Flash文件基本知識(shí)Flash生成過(guò)程中有幾種文件格式形式,如fla、swf。本文重點(diǎn)分析swf文件格式。Flash播放文件米用的格式是swf文件格式,swf(ShockWaveFlash)是Micromedia公司開(kāi)發(fā)的基于Flash輸出的矢量圖形文件格式,主要用于Web頁(yè)面上的動(dòng)畫(huà)發(fā)布以及遠(yuǎn)程網(wǎng)絡(luò)教學(xué)等。swf采用二進(jìn)制方式存儲(chǔ)信息,文件格式簡(jiǎn)練,具有體積小、功能強(qiáng)、交互能力和畫(huà)面質(zhì)量好等特點(diǎn)。swf使用矢量來(lái)顯示大量的動(dòng)畫(huà)內(nèi)容,而矢量圖的筆觸和填充都是進(jìn)行科學(xué)計(jì)算的,因此所制作的動(dòng)畫(huà)具有高度的精確性與靈活性。在圖像傳輸方面,swf不必等到文件全部下載才能觀看,因此特別適合網(wǎng)絡(luò)傳輸。即使是在網(wǎng)絡(luò)傳輸速率不佳的情況下,也能取得較好的效果。其獨(dú)特的二維網(wǎng)頁(yè)多媒體技術(shù),將矢量量動(dòng)畫(huà)、音頻壓縮編碼和動(dòng)作腳本等多種要素結(jié)合在一起,從而創(chuàng)造出了一種有聲有色、精彩互動(dòng)的新的多媒體形式,成為事實(shí)上的新一代網(wǎng)絡(luò)動(dòng)畫(huà)標(biāo)準(zhǔn)。Cohen—Sutherland線段裁剪改進(jìn)算法本章簡(jiǎn)述了改進(jìn)的Cohen—Sutherland線段裁剪算法的意義,并重點(diǎn)闡述了本文提出的Cohen—Sutherland線段裁剪改進(jìn)算法的原理。討論了在處理器是ARM9、操作系統(tǒng)是wince5.0、編程語(yǔ)言是EVC4.0的平臺(tái)下改進(jìn)算法的性能。3.1改進(jìn)算法提出的背景隨著計(jì)算機(jī)技術(shù)的發(fā)展,多媒體技術(shù)將成為計(jì)算機(jī)技術(shù)研宄的熱點(diǎn)之一。由于用戶對(duì)圖形的要求、計(jì)算機(jī)容量的限制、設(shè)備條件的限制等原因需要對(duì)圖形進(jìn)行裁剪,因此對(duì)線段進(jìn)行裁剪是一個(gè)很常見(jiàn)的問(wèn)題。由于在屏幕上需要顯示的圖形和圖像都可以利用多面體進(jìn)行模擬,每一個(gè)面由一個(gè)多邊形組成。而多邊形的裁剪基礎(chǔ)技術(shù)是線段裁剪,因此線段裁剪速度是裁剪算法的核心指標(biāo)。針對(duì)這個(gè)問(wèn)題,目前廣泛使用的3種經(jīng)典裁剪算法分別是梁友棟一Batsky參數(shù)裁剪算法、Ncholl-Lee-Ncholl多區(qū)域判別算法和Cohen-Sutherland編碼裁剪算法。這些算法各有特色,相比較而言Cohen-SutherLand算法是一個(gè)應(yīng)用廣泛的裁剪算法[3°]。其中,Cohen—Sutherland分區(qū)編碼算法是為被裁剪線段兩端點(diǎn)進(jìn)行編碼,通過(guò)判斷兩端點(diǎn)的編碼按位相與的結(jié)果來(lái)確定被裁剪線段與窗口的位置關(guān)系,如果兩端點(diǎn)編碼皆為零,則該線段位于窗口內(nèi)部,應(yīng)保留;如果兩端點(diǎn)編碼相與不為零,則該線段位于窗口某一邊框線外側(cè),應(yīng)整體舍棄;如果兩端點(diǎn)編碼相與為零,則該線段與窗邊框線有交點(diǎn),應(yīng)在交點(diǎn)處分割線段或進(jìn)行取舍,然后繼續(xù)判斷直至滿足上面的整體取舍條件。該算法對(duì)于裁剪那些不與窗邊框線相交的線段時(shí),效率較高;而對(duì)與那些與窗邊框線相交的線段,裁減效率較低。在最壞情況下被裁剪線段與4條邊框線都要計(jì)算交點(diǎn)。Nicholl—Lee—Nicholl多區(qū)域判別算法在Cohen一Sutherland算法的基礎(chǔ)上,通過(guò)對(duì)二維平面的更詳細(xì)劃分,消除C一S算法中線段在被裁剪時(shí)需多次求交的情況,算法效率有所提高。中點(diǎn)分割算法采用中點(diǎn)對(duì)分方法分別為被裁剪線段兩端點(diǎn)尋找最近可被裁剪線段與多條邊框線相交見(jiàn)點(diǎn),兩個(gè)最近可見(jiàn)點(diǎn)的連線便是線段的可見(jiàn)部分。由于算法主要計(jì)算過(guò)程只用到加法和除2運(yùn)算,所以特別適合用硬件實(shí)現(xiàn),用軟件實(shí)現(xiàn)則效率不高,同時(shí)該算法也適合于并行計(jì)算。梁友棟一Barsky參數(shù)裁剪算法利用線段的參數(shù)表示形式,把被裁剪線段所在直線與裁剪窗口邊框線交點(diǎn)的計(jì)算簡(jiǎn)化為對(duì)交點(diǎn)對(duì)應(yīng)參數(shù)值的計(jì)算,再根據(jù)交點(diǎn)參數(shù)與被裁剪線段的參數(shù)定義區(qū)間比較的結(jié)果,確定出有效的交點(diǎn),從而得到裁剪后應(yīng)保留的部分。該算法處理速度較快,但當(dāng)線段在某窗口邊界線的不可見(jiàn)一側(cè)時(shí)或完全落在窗口內(nèi)部可見(jiàn)時(shí),仍需要進(jìn)行算術(shù)運(yùn)算。由于嵌入式系統(tǒng)的特點(diǎn),在嵌入式系統(tǒng)中對(duì)于矢量圖形的裁剪尤其重要。本文設(shè)計(jì)的播?放器主要播放的是Flash文件,F(xiàn)lash文件主要由矢量圖形組成,因此采用本文提出的Cohen一Sutherland線段裁剪改進(jìn)算法來(lái)提高flash文件的播放速度。Cohen—Sutherland裁剪算法對(duì)不與邊框相交的線段進(jìn)行裁剪時(shí)效率較高,而對(duì)與窗口邊界有交點(diǎn)的線段裁剪效率低。而且很多的時(shí)候,被裁剪線段僅與窗口邊界延長(zhǎng)線相交,求交點(diǎn)到最后是無(wú)效的操作,因?yàn)榫€段可能完全被丟棄;并且被裁剪線段與窗口邊界相交時(shí)交點(diǎn)的取得比較復(fù)雜。根據(jù)點(diǎn)與直線位置的關(guān)系性質(zhì),利用線段端點(diǎn)的編碼的特性,做出相關(guān)的輔助線,判斷輔助線與線段之間的關(guān)系。本文提出了基于Cohen—Sutherland算法的圖形裁剪思路。本文提出的Cohen—Sutherland裁剪改進(jìn)算法在繼承現(xiàn)有的主要裁剪算法優(yōu)點(diǎn)的基礎(chǔ)上,結(jié)合其他裁剪算法的優(yōu)點(diǎn),能較快的減少無(wú)效交點(diǎn)的計(jì)算;對(duì)跨越三個(gè)區(qū)域的可見(jiàn)與不可見(jiàn)線段能快速判決,因此能快速判決并且對(duì)于跨越三個(gè)區(qū)域且不可見(jiàn)的線段能夠盡快的丟棄。提高了裁剪的速度,讓圖像圖形的顯示更具有實(shí)時(shí)性。Cohen—Sutherland線段裁剪改進(jìn)算法的原理假設(shè)一條線段AB,將其無(wú)限延長(zhǎng)后將二維平面上的點(diǎn)為三個(gè)區(qū)域:在線的右部分,在線的左部分,在線上。播放器的總體設(shè)計(jì)方案本章詳細(xì)介紹了播放器總體設(shè)計(jì)方案的思路、結(jié)構(gòu)設(shè)計(jì)、算法設(shè)計(jì)。詳細(xì)介紹了播放器關(guān)鍵功能的實(shí)現(xiàn)過(guò)程及相關(guān)的關(guān)鍵算法原理。最后從本文的目標(biāo)及開(kāi)發(fā)板性能的角度分析了平臺(tái)選擇DMC-2440-K2.1開(kāi)發(fā)板的原因。4.1播放器功能設(shè)計(jì)因?yàn)榍度胧较到y(tǒng)遵循的原則是“夠用”原則,所以嵌入式系統(tǒng)提供的硬件資源一般低于PC機(jī)。而FLASH文件的組成大多數(shù)是矢量圖形,在顯示的時(shí)候要求微處理器的速度快、內(nèi)存大、顯示設(shè)備的屏幕尺寸大等硬件的性能要好?。但是這在資源有限的嵌入式平臺(tái)下達(dá)到這個(gè)目的是比較困難的。因此,在開(kāi)始創(chuàng)建嵌入式系統(tǒng)的flash考慮應(yīng)用程序性能和優(yōu)化是非常重要的。因而為了解決flash是矢量圖形顯示的問(wèn)題必須多從軟件的角度入手。本文的出發(fā)點(diǎn)就是在現(xiàn)有的硬件性能的基礎(chǔ)上,將本文提出的Cohen—Sutherland裁剪改進(jìn)算法、較先進(jìn)的分層剪切域算法、較好的優(yōu)化幀間切換方式算法、較先進(jìn)的位圖緩存算法等算法有機(jī)地融合在該嵌入式播放器的影片執(zhí)行模塊中,對(duì)flash的矢量圖形數(shù)據(jù)的存儲(chǔ)、顯示算法的實(shí)現(xiàn)過(guò)程進(jìn)行了改進(jìn)。同時(shí)在設(shè)計(jì)時(shí)利用以下方法:在進(jìn)行播放flash時(shí)呈現(xiàn)三種不同品質(zhì)等級(jí)的矢量圖形:低、中和高。減少同時(shí)發(fā)生的補(bǔ)間動(dòng)畫(huà)。減少補(bǔ)間數(shù)或設(shè)置動(dòng)畫(huà)序列,以使一個(gè)動(dòng)畫(huà)結(jié)束后另一個(gè)動(dòng)畫(huà)再開(kāi)始。適度地對(duì)元件使用透明度(Alpha)效果,因?yàn)橥该鞫确浅O腃PU。特別是,最好避免對(duì)具有不完全不透明(小于100%)的Alpha級(jí)別的元件進(jìn)行補(bǔ)間。避免使用消耗CPU的可視效果,如大遮罩層、劇烈運(yùn)動(dòng)、Alpha混合、劇烈漸變和復(fù)雜的矢量圖形。嘗試使用補(bǔ)間、關(guān)鍵幀動(dòng)畫(huà)和ActionScript驅(qū)動(dòng)運(yùn)動(dòng)的組合以生成最有有效的結(jié)果。經(jīng)常在目標(biāo)設(shè)備上測(cè)試動(dòng)畫(huà)。位圖值越高,生成的圖像品質(zhì)越高,但也會(huì)生成更大的swf文件。較低的圖像品質(zhì)會(huì)生成較小的SWF文件。使用不同的設(shè)置來(lái)確定文件大小和圖像品質(zhì)之間的最佳平衡點(diǎn)。盡量避免字符串和模擬數(shù)組處理,因?yàn)檫@會(huì)非常消耗CPU。本文根據(jù)以上情況提出并設(shè)計(jì)一款基于處理器為ARM9及操作系統(tǒng)為wince5.0的嵌入式flash播放器,使這一平臺(tái)下的flash播放器性能高。本文在將播放器分成六個(gè)模塊的基礎(chǔ)上,將標(biāo)簽解析模塊、影片執(zhí)行模塊、ActionScript解析引擎模塊作為核心模塊來(lái)完成,并將界面設(shè)計(jì)簡(jiǎn)潔化。能夠響應(yīng)用戶的交互行為并更好地控制Flash文檔的行為。在高版本的Flash文檔(6.0或者更高)中往往采用ActionScript來(lái)控制媒體元素的行為方式以及響應(yīng)用戶的交互行為。ActionScript代碼是一種編程代碼,可以將其添加到Flash文檔中,以便這些文檔響應(yīng)用戶的交互行為并更好地控制Flash文檔的行為。在不使用ActionScript的情況下,也能完成Flash中的大部分任務(wù),但使用Ac2tionScript帶來(lái)了更多的可能性。例如,可以添加代碼以便用戶在單擊某按鈕時(shí)顯示一幅新圖像,還可以使用ActioMScript向Flash文檔中添加邏輯。雖然ActionScript給Flash文檔帶來(lái)了很大的方便性,但如何正確地解析并執(zhí)行ActionScript腳本給本播放器的設(shè)計(jì)和實(shí)現(xiàn)工作帶來(lái)了很大的難度。因此,符合ActionScript3.0規(guī)范的AS解釋引擎是Flash播放器設(shè)計(jì)中的一個(gè)難點(diǎn)。以下是flash中最常用到的ActionScript集合。當(dāng)打開(kāi)一個(gè)文件時(shí),SWF標(biāo)簽解析模塊首先判斷此文件是不是flash文件,如果是則繼續(xù)解析出相應(yīng)的圖形、文字、聲音的tag,傳給影片執(zhí)行模塊。影片執(zhí)行模塊將根據(jù)調(diào)用聲音處理模塊子模塊,渲染引擎子模塊,解析引擎子模塊的算法將矢量圖形等標(biāo)簽進(jìn)行渲染顯示。當(dāng)影片執(zhí)行模塊接收到消息管理模塊的消息時(shí),根據(jù)消息的含義對(duì)影片進(jìn)行跳轉(zhuǎn)。在此框架中影片執(zhí)行模塊是核心模塊。4.2DMC-2440-k2.1嵌入式評(píng)估板的結(jié)構(gòu)及分析由于由自己設(shè)計(jì)并實(shí)現(xiàn)一個(gè)完整的硬件系統(tǒng)難度比較大,所以本文選擇的是使用現(xiàn)有的嵌入式開(kāi)發(fā)板,這樣使論文的主要精力放在軟件的開(kāi)發(fā)上。通過(guò)對(duì)市場(chǎng)上開(kāi)發(fā)板的了解,利用系統(tǒng)的穩(wěn)定性,外設(shè)接口的豐富性,CPU主頻的大小等指標(biāo),本文選擇了DMC2440開(kāi)發(fā)板作為硬件平臺(tái),這款開(kāi)發(fā)板基本情況如下:中央處理器,SamsungS3C2440A,主頻400MHz;外部存儲(chǔ)器NANDFlash:128MB;串口,兩個(gè)五線異步串行口,波特率高達(dá)115200bps;網(wǎng)絡(luò)接口,一個(gè)10M/100M網(wǎng)口,采用DM9000AEP,帶聯(lián)接和傳輸指示燈;USB接口,一個(gè)USB1.1HOST接口;一個(gè)USB1.1Device.系統(tǒng)功能的實(shí)現(xiàn)5.1模擬器中實(shí)現(xiàn)系統(tǒng)功能在將程序下載到開(kāi)發(fā)板之前,首先將程序基于POCKETPC2003SDK的POCKETPCEmulator上運(yùn)行。選擇flashMV《東北人都是活雷峰》進(jìn)行實(shí)驗(yàn)。Flah播放器部分程序偽代procedureTMain.Button1Click(Sender:TObject);varf,fw:File;fws:string[3];//標(biāo)不信息version:Byte;//SWF文件版本號(hào)CurrentPos:Integer;//內(nèi)存讀寫(xiě)位置zStream:TDecompressionStream;//實(shí)現(xiàn)壓縮數(shù)據(jù)還原inStream:TMemoryStream;//壓縮數(shù)據(jù)流beginifnotOpenDialog1.Executethenexit;FileMode:=fmOpenRead;AssignFile(f,OpenDialogl.FileName);Reset(f,l);SetLength(FileBuf,FileSize(f));BlockRead(f?FileBuf[0],Filesize(f));//將文件讀入內(nèi)存CloseFile(f);//下面為讀取SWF文件的文件頭Header部分CurrentPos:=0;//讀取’FWS'標(biāo)示SetLength(fws,3);Move(FileBuf[CurrentPos]?fws[1],3);Inc(CurrentPos,3);iffwso'CWS*thenbeginSetLength(FileBuf?0);ShowMessage〔該文件不是FlashSWF壓縮文件!?);exit;end;//讀取版本號(hào)Moye(FileBuf[CurrentPos]?version,Sizeof(version));Inc(CurrentPos,Sizeof(version));ifVersion<5thenbeginSetLength(FileBuf?0);ShowMessageC該SWF文件不是Flash6以上版本,本程序當(dāng)前僅識(shí)別Flash6以上格式SWF文件!');exit;end;//讀取SWF文件長(zhǎng)度Move(FileBuf[CurrentPos]?FileLength,Sizeof(FileLength));Inc(CurrentPos,Sizeof(FileLength));//FileBuf下面的內(nèi)容都是壓縮數(shù)據(jù)inStream:=TMemoryStream.Create;//將壓縮數(shù)據(jù)讀入inStream壓縮數(shù)據(jù)流inStream.Write(FileBuf[CurrentPos],Length(FileBuf)-3-Sizeof(version)-Sizeof(FileLength));inStream.Position:=0;//實(shí)現(xiàn)還原zStream:=TDecompressionStream.Create(inStream);//數(shù)據(jù)還原后所需緩沖區(qū)長(zhǎng)度會(huì)加長(zhǎng)SetLength(FileBuf,FileLength);//將還原的數(shù)據(jù)寫(xiě)回緩沖區(qū)Stream.Free;inStream.Free;fws:=TWS';//將原CWS改為FWSMove(fws[1]?FileBuf[0],3);//此時(shí)將緩沖區(qū)數(shù)據(jù)存盤就是SWF的還原文件ShowMessage(?壓縮數(shù)據(jù)己經(jīng)實(shí)現(xiàn)還原,請(qǐng)存盤!?);ifnotSaveDialogl.Executethenexit;AssignFile(fw?SaveDialog1.Filename);ReWrite(fw?l);BlockWrite(fw?FileBuf[0],Length(FileBuf));CloseFile(fw);SetLength(FileBuf,0);5.2開(kāi)發(fā)板中實(shí)現(xiàn)系統(tǒng)功能由于嵌入式系統(tǒng)不具備自舉能力,所以必須要在S3C2440A處理器及wmCe5.0操作系統(tǒng)為平臺(tái)的開(kāi)發(fā)板與主機(jī)之間建立一個(gè)交叉開(kāi)發(fā)環(huán)境,建立的大概步驟如下:使用sj£2440工將bootloader燒寫(xiě)到NANDFLASH。用20針排線將DMC2440的20針JTAG接口(C0N7)與JTAG板的JTAG接口相連。然后將光盤里的“Flash燒寫(xiě)”文件夾拷貝到C盤。安裝giveio驅(qū)動(dòng),進(jìn)入“Flash燒寫(xiě)工具”文件夾下,點(diǎn)擊“安裝驅(qū)動(dòng).exe”。USB接口驅(qū)動(dòng)程序安裝根據(jù)開(kāi)發(fā)板所提供的驅(qū)動(dòng)程序和提示進(jìn)行安裝。需要注意的是先打開(kāi)DNW.exe配置好串口,再利用串口線和USB線將PC機(jī)與開(kāi)發(fā)板連接,最后才能打開(kāi)開(kāi)發(fā)板的電源。對(duì)于一些開(kāi)發(fā)板來(lái)說(shuō),這些步驟的次序和重要。5.3播放器系統(tǒng)性能分析通過(guò)EVC的romotezoomin工具將開(kāi)發(fā)板中顯示的影片截下來(lái)。收集三種CPU數(shù)據(jù):總體利用率,平均負(fù)載和每個(gè)進(jìn)程的CPU消耗量。總體利用率有助于確定系統(tǒng)中CPU的運(yùn)行速度是否是系統(tǒng)的性能瓶頸;平均負(fù)載可以對(duì)系統(tǒng)的總體性能有一個(gè)大概印象;每個(gè)進(jìn)程的CPU消耗量能夠搞清占用資源過(guò)多的進(jìn)程。運(yùn)行播放器CPU使用情況如表5.3所示。其中,r列表示運(yùn)行和等待cpu時(shí)間片的進(jìn)程數(shù),如果長(zhǎng)期大于1,說(shuō)明cpu不足,需要增加cpu;b列表示在等待資源的進(jìn)程數(shù),比如正在等待1/0、或者內(nèi)存交換等;us列顯示了用戶方式下所花費(fèi)CPU時(shí)間的百分比。us的值比較高時(shí),說(shuō)明用戶進(jìn)程消耗的cpu時(shí)間多,但是如果長(zhǎng)期大于50%,需要考慮優(yōu)化用戶的程序;sy列顯示了內(nèi)核進(jìn)程所花費(fèi)的cpu時(shí)間的百分比。其中us+sy的參考值為80%,如果us+sy大于80%說(shuō)明可能存在CPU不足;id列顯示了cpu處在空閑狀態(tài)的時(shí)間百分比;system顯示采集間隔內(nèi)發(fā)生的中斷數(shù)。結(jié)論本文深入討論了嵌入式flash播放器的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程。最終在采用微處理器為ARM9,操作系統(tǒng)為wince5.0,開(kāi)發(fā)環(huán)境EVC4.0+SP4的平臺(tái)下實(shí)現(xiàn)了一款播放器。文章具體完成的工作如下:深入分析了較高版本的flash文件組成結(jié)構(gòu)、現(xiàn)階段加快矢量圖形顯示的相關(guān)算法、flash播放器的硬件體系結(jié)構(gòu)。深入研宄了swf文件在嵌入式平臺(tái)下實(shí)現(xiàn)平穩(wěn)播放的難點(diǎn)和關(guān)鍵技術(shù)、flash文件的編解碼原理。提出了一種改進(jìn)后的Cohen—Sutherland線段裁剪算法,該算法基于點(diǎn)與直線的位置關(guān)系,通過(guò)對(duì)端點(diǎn)編碼多次應(yīng)用,再根據(jù)不同的線段與裁剪窗口的位置關(guān)系,對(duì)相應(yīng)參數(shù)進(jìn)行修改,提高了交點(diǎn)坐標(biāo)計(jì)算的有效性。設(shè)計(jì)了一款flash播放器,將fla

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論