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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > MIPS架構(gòu)的醫(yī)院智能導(dǎo)診系統(tǒng)設(shè)計(jì)

          MIPS架構(gòu)的醫(yī)院智能導(dǎo)診系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-05-09 來源:網(wǎng)絡(luò) 收藏

          c.jpg


          SMP8654分層服務(wù)模型如圖3所示。最下面的一層是相關(guān)硬件,如CPU、視頻解碼器、音頻解碼器、并行I/O接口。中間的一層MRUA(Movim iento rectiline unitormemente acelerado)提供了訪問這些硬件的抽象接口,另外DCC(Decoding Chain Control)是通過訪問MRUA的接口實(shí)現(xiàn)對(duì)視頻播放控制、音頻解碼的操作。最頂層是軟件播放器,可以基于DCC實(shí)現(xiàn)網(wǎng)絡(luò)流媒體應(yīng)用,或者定制自己的軟件播放器。
          3.2 利用圖形加速引擎優(yōu)化文字和高清圖片顯示
          DCC是為應(yīng)用程序提供的編程接口,而MRUA面向底層硬件,為上層的DCC提供硬件抽象和功能接口。在深入理解了DCC是如何控制硬件顯示文字、處理圖片以及播放視頻之后,利用MRUA庫(kù)函數(shù)直接操作硬件特性,加快字體顯示、圖片處理效率,以及提升視頻播放等各方面性能。DCC提供的多個(gè)對(duì)象為應(yīng)用程序完成實(shí)際的功能提供函數(shù)接口,這些對(duì)象包括:
          ①Route??梢詫oute理解為某個(gè)具體的媒體內(nèi)容(Content)到硬件視頻混合器(Hardware Video Mixer)的數(shù)據(jù)通道,它只負(fù)責(zé)把具體的媒體內(nèi)容傳送到硬件視頻混合器中。
          ②Surface??梢詫urface理解為視頻對(duì)象層(Video Object layer)。視頻信息,屏幕顯示以及字幕組成了一個(gè)完整的Content。在每一個(gè)Route對(duì)象中,通常會(huì)存在相同類型的多個(gè)Surface對(duì)象。
          ③VideoSource??梢詫ideoSource理解為一個(gè)專為Surface生成圖片的生產(chǎn)者,這個(gè)生成者可能是一個(gè)硬件視頻解碼器(Hardware MPEG decoder)。
          ④AudioMixer??梢詫udioMixer理解為一個(gè)類似Route的東兩,它代表的也是一個(gè)數(shù)據(jù)通道,只不過它只負(fù)責(zé)將AudioSource這個(gè)音頻生產(chǎn)者生成的音頻幀信息組合成一個(gè)輸出。
          ⑤AudioSource。可以將AudioSource理解為音頻幀的生產(chǎn)者。
          ⑥D(zhuǎn)emuxSource。它是一個(gè)可分離流,并且將數(shù)據(jù)發(fā)送到視頻、音頻解碼器的一個(gè)對(duì)象。當(dāng)然也可以將它理解為一個(gè)生成者,負(fù)責(zé)將流(stream)數(shù)據(jù)分離出音頻和視頻信息,并發(fā)送到相關(guān)處理單元處理。
          如圖3所示,流解析器從內(nèi)存中檢索到與文件有關(guān)的信息之后,將數(shù)據(jù)流分解,然后組包成視頻解碼器以及音頻解碼器所處理的數(shù)據(jù),并且交由DSP和Display Engine這樣的設(shè)備進(jìn)行處理。這些都可以由DCC控制,是由MRUA層抽象出的相關(guān)硬件功能。只要通過DCC層去控制相關(guān)硬件設(shè)備,便可以實(shí)現(xiàn)圖片和文字的高清顯示。下面將介紹如何通過DCC去控制GFX引擎實(shí)現(xiàn)圖片和文字的顯示。
          GFX在圖中沒有畫出,它是某個(gè)具體的圖形加速設(shè)備。當(dāng)要播放一個(gè)高清的圖片或者繪制文字時(shí),通常要經(jīng)過幾個(gè)步驟:RUA實(shí)例初始化,DCC實(shí)例初始化,設(shè)置圖片的顯示窗口,初始化GFX引擎,執(zhí)行繪制,清空資源并退出。下面以偽碼的方式給出其具體實(shí)現(xiàn)過程:
          int main(int argc,char*argv[]){
          創(chuàng)建RUA實(shí)例;
          創(chuàng)建DCC對(duì)象實(shí)例;
          初始化圖片的顯示選項(xiàng);
          初始化視頻的濕示選項(xiàng);
          初始化播放控制選項(xiàng);
          從命令行參數(shù)獲得欲顯示的文件信息以及圖片、視頻播放控制選項(xiàng)(如果沒有就使用默認(rèn)值)
          裝載相關(guān)硬件單元微碼;
          創(chuàng)建硬件混合器Mixer;
          創(chuàng)建ScaIer對(duì)象;
          //scaler=EMHWLIB_MODULE(DispGFXMultiScaler,0);
          為當(dāng)前的Mixer對(duì)象創(chuàng)建一個(gè)關(guān)聯(lián)Scaler對(duì)象的索引;
          初始化GFX引擎;
          設(shè)置GFX對(duì)象的各通道屬性;
          開始在GFX上投遞繪制請(qǐng)求;
          關(guān)閉GFX引擎,并依次關(guān)閉DCC實(shí)例對(duì)象,RUA實(shí)例對(duì)象;
          }

          結(jié)語(yǔ)
          基于MiniGUI和SMP8654的SDK完成了視頻播放、文字圖片顯示的功能?;贛iniGUI的圖形及文字繪制函數(shù),如CreateLog Font、DrawText、LoadBitmap等的使用以及利用與硬件相關(guān)的圖形加速引擎繪制圖片和文件相結(jié)合的方式,增加了的圖形繪制效果,提升了系統(tǒng)性能。
          綜上所述,系統(tǒng)基于實(shí)現(xiàn)了高清播放機(jī)所要完成的視頻播放以及圖片文字顯示功能。通過研究基于下的高清播放機(jī)最終選擇了速度比較好的高清播放機(jī)芯片SMP8654,使得視頻處理更加穩(wěn)定,圖片的加速解碼及顯示的速度更快?;诖?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/架構(gòu)">架構(gòu)的系統(tǒng),可以擴(kuò)展到各種信息發(fā)布系統(tǒng)中,如的信息發(fā)布系統(tǒng)、車載娛樂系統(tǒng),具有很好的應(yīng)用前景。

          光耦相關(guān)文章:光耦原理


          萬用表相關(guān)文章:萬用表怎么用


          dc相關(guān)文章:dc是什么


          手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)


          c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


          linux相關(guān)文章:linux教程


          c++相關(guān)文章:c++教程



          上一頁(yè) 1 2 3 下一頁(yè)

          評(pí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); })();