<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 數(shù)字視頻系統(tǒng)中的集成新概念(下)

          數(shù)字視頻系統(tǒng)中的集成新概念(下)

          ——
          作者:聞亭數(shù)字系統(tǒng)(北京)有限公司 德州儀器半導(dǎo)體技術(shù)(上海)有限公司 時間:2006-10-12 來源:電子產(chǎn)品世界 收藏

          配置工具

          嵌入應(yīng)用中的首要難題在于實施視頻的復(fù)雜性要遠遠超過簡單的圖像與音頻壓縮和解壓縮。可以采用形形色色的形式與格式,開發(fā)人員需要支持繁雜的配置和各種不同的方面,其中包括不同的分辨率/顯示器尺寸、不同的比特率、實時問題乃至視頻源的可靠性等,例如來自硬盤驅(qū)動器的視頻流與來自無線通信鏈路的視頻流的區(qū)別和處理。即使是那些看似簡單明了的任務(wù)—如高效管理音頻/視頻同步以及在IP 網(wǎng)絡(luò)上實現(xiàn)可靠的視頻傳輸,仍然會讓開發(fā)人員傷透腦筋。

          如何使這些技術(shù)難題迎刃而解就成為采用成功實現(xiàn)數(shù)字視頻系統(tǒng)設(shè)計的關(guān)鍵。所包含的四大要素,即處理器、開發(fā)工具、軟件以及系統(tǒng)專業(yè)技術(shù)對于數(shù)字視頻設(shè)計的集成具有重要的作用,其中一個極為有效的工具就是包含在TI為配合達芬奇開發(fā)所提供的數(shù)字視頻開發(fā)包(DVSDK)中的數(shù)字視頻配置工具(eXpressDSP Configuration Kit)。

          由于在軟件結(jié)構(gòu)中引入了編解碼引擎(Codec Engine)結(jié)構(gòu),Codec Engine就提供了對DSP標準化算法(XDAIS)的完全包裝,使得應(yīng)用程序與DSP程序的開發(fā)分離,更為方便簡捷,Codec Engine使得DSP開發(fā)人員不必關(guān)心應(yīng)用程序端,只需按照相應(yīng)的標準開發(fā)出Codec Server,即可被應(yīng)用程序正確調(diào)用。有了eXpressDSP配置工具的支持,開發(fā)人員模塊之間的接口,eXpressDSP配置工具會自動綁定編解碼器(CODEC)以及符合xDM標準的軟件模塊,不需要任何其它的操作,幾乎可以將開發(fā)時間從數(shù)月降到幾周之內(nèi),使軟件的重使用率大大增加。eXpressDSP配置工具匯集了Linux和達芬奇技術(shù)的CODEC ENGINE以及DSP/BIOS,DSP/BIOS LINK。圖1為系統(tǒng)集成圖。



          圖1  系統(tǒng)集成圖

          數(shù)字視頻配置工具使得配置一個CODEC的過程極其簡單,只需進行簡單的腳本配置,無需DSP編程便可以完成,首先得到在DSP上的符合xDM標準Codec庫,通過腳本配置語言進行簡單的配置,將此Codec庫至于Codec Engine中,進行再次編譯鏈接。至此已經(jīng)完成了Codec上的全部工作。下面將逐步描述一個基于達芬奇開發(fā)板的應(yīng)用程序的生成過程:

          第一步,開發(fā)并完成Codec。就是要開發(fā)音視頻編解碼的核心算法,按照xDM標準封裝成為Codec庫,Codec主要完成音視頻的核心算法,應(yīng)用程序運行時被調(diào)用,并不參與其他功能。

          第二步,將Codec集成到Codec Engine中。將第一步開發(fā)完成的Codec或已有的符合xDM的Codec集成到Codec Engine中,這一步需要配置兩個JavaScript的腳本文件,其中一個腳本文件表明了,Codec的使用和配置信息,文件名一般為*.cfg,另一個描述了Codec在達芬奇上的內(nèi)存分配的配置,文件名一般為*tcf,配置好這兩個文件后,使用make命令即可生成Codec Engine,其文件名一般為*.X64P??杀粦?yīng)用程序直接調(diào)用。

          第三步,開發(fā)音視頻應(yīng)用程序,并在其中調(diào)用Codec Engine。在Linux下開發(fā)音視頻應(yīng)用程序,包括用戶界面,音視頻的采集、播放、同步等,其中完成對Codec Engine的調(diào)用,應(yīng)用程序也要完成一個擴展名為cfg的腳本配置文件,以表明對Codec Engine的使用狀況。

          第四步,加載DSPLINK和CMEM模塊,運行應(yīng)用程序

          至此一個完整的達芬奇音視頻應(yīng)用程序就完成了,其中許多過程是通過腳本文件配置完成的,過程非常簡單易懂,下面我們需要在達芬奇上運行它,首先要加載DSPLINK和CMEM兩個驅(qū)動程序模塊,其中DSPLINK主要實現(xiàn)了arm和dsp的底層通信,而CMEM則主要是完成了在物理段上分配連續(xù)內(nèi)存的功能,加載完這兩個模塊,我們便可以直接運行已完成的應(yīng)用程序。

          圖形系統(tǒng)可視化工具

          將多個軟件模塊集成只是整個開發(fā)過程的第一步,DVDSK還包含一個圖形系統(tǒng)可視化工具,可用于分析和顯示整個系統(tǒng)的性能,從而幫助快速開發(fā)數(shù)字媒體軟件?;赥MS320DM644x SoC分析器的可視化分析,以最小化的干預(yù)快速辨別和分離系統(tǒng)的各部分執(zhí)行狀況,并通過捕捉數(shù)據(jù)鑒定程序運行狀況,以及顯示系統(tǒng)交互,負載分布和其它類型的行為。在消除大量不必要的斷點跟蹤調(diào)試后,開發(fā)者便可判斷出系統(tǒng)的瓶頸在哪里并加以解決。

          TMS320DM644x SoC分析器使用戶花費時間解決問題而不僅僅是發(fā)現(xiàn)問題,作為一個完全的可視化分析工具,通過它用戶可以得到諸如系統(tǒng)交互分析、各部分負荷分析、瓶頸分離、異常行為分析和應(yīng)用的基準性能等功能。

          當(dāng)一個任務(wù)在DSP和ARM上同時運行時,分析器采集并顯示數(shù)據(jù),提供了對應(yīng)用程序完全的系統(tǒng)可視化,消除了手工收集、對比數(shù)據(jù)的繁瑣過程,如圖2所示可視化分析流程。



          圖2  可視化分析流程

          TI所實現(xiàn)的業(yè)界首創(chuàng)的圖形系統(tǒng)可視化技術(shù)為數(shù)字視頻系統(tǒng)設(shè)計帶來了最大化的設(shè)計效率與性能,其多窗的圖形界面極為友好,在同一圖象上顯示 ARM 與 DSP 的任務(wù)運行情況,如圖3所示。



          圖3  數(shù)據(jù)可視化工具界面

          結(jié)語:實現(xiàn)集成新概念

          現(xiàn)在用達芬奇技術(shù)搭建一個視頻應(yīng)用系統(tǒng)已經(jīng)成為一件輕松愉快的事情,而集成的概念已經(jīng)在小小的單片系統(tǒng)上展開。數(shù)字視頻的開發(fā)人員首先需要搭建DSP的通用集成開發(fā)環(huán)境,然后利用業(yè)界首款優(yōu)化的數(shù)字視頻配置工具即可盡可能減小設(shè)計工作的復(fù)雜性,進而利用首款全面的圖形系統(tǒng)可視化工具實現(xiàn)設(shè)計效率與性能的最大化。新技術(shù)和新手段的應(yīng)用就可以這樣一來全面簡化數(shù)字視頻系統(tǒng)的設(shè)計開發(fā)過程而獲得更高層次的數(shù)字視頻創(chuàng)新。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();