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

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 可配置的媒體處理器:無線多媒體解決方案

          可配置的媒體處理器:無線多媒體解決方案

          作者:MediaWorksTechnology公司,LarryPrzybylski 時間:2004-06-22 來源:電子設計應用 收藏
          依賴于復雜的視頻軟件/服務器技術,而流視頻和音頻的生成又依賴復雜的處理技術。有一種產(chǎn)品無疑會從技術中得益,這就是個人數(shù)字助理(PDA)。然而,不同的PDA所采用的微處理器性能水平不同,如某些支持低幀速率的視頻流和用軟件處理低分辨率,而另有一些則不支持任何類型的視頻流。一個能支持高質量雙向視頻通信的PDA的系統(tǒng)需要很強的系統(tǒng)計算能力。


          圖1 Mediaworks可配置處理器體系的評估結構,用Altera APEX 20K1500 FPGA實現(xiàn)。

          提高性能的方法之一是采用常見的小型接口標準,如PCMCIA卡和CF卡,最新的PDA都支持這些接口標準。高級視頻和無線處理系統(tǒng)都可以采用PCMCIA和CF電路卡的標準進行開發(fā)。為PDA提供優(yōu)秀流視頻產(chǎn)品的最大問題是上述接口標準無法滿足高分辨率視頻的高數(shù)據(jù)帶寬要求,而視頻數(shù)據(jù)壓縮算法可以部分或全部地解決問題。然而,流視頻編解碼器,如MPEG4是為帶寬相對無限的系統(tǒng)開發(fā)的,如幾個GHz的PC處理,這無法滿足市場上大量設備對質量、成本、功耗和性能的需求。因此,加速流視頻復雜處理器的視頻編解碼器的開發(fā)成為關鍵問題。
          本文介紹了幾種用PDA實現(xiàn)高質量流視頻的方法。MediaWorks構建了可配置的媒體處理器,提升了基于可編程邏輯的設計方式,開發(fā)出一整套優(yōu)化的解決方案。采用可配置媒體處理器還可啟用軟硬件協(xié)同設計過程,這對于工程生產(chǎn)效率是非常關鍵的,能夠加快不同性能的視頻編解碼器的設計開發(fā)。
          PDA設備都具有觀看圖形的屏幕和恢復捕獲音頻的揚聲器和麥克風,通常未集成用于視頻捕捉的相機??紤]成本關系,多采用最經(jīng)濟的處理器,這些處理器通常不支持雙向流視頻。因此,需要額外的處理器和壓縮/解壓硬件和軟件。本文試圖解決在現(xiàn)有的PDA設備中實現(xiàn)MPEG4視頻捕捉、傳送和播放的問題。
          設計方案中,第一步是增加視頻捕捉能力,即利用能以足夠的幀速率和圖像尺寸工作的傳感器開發(fā)基于PCMCIA的VGA解析度的相機。雖然絕大部分的PDA無法顯示完整的VGA圖像,但是可以通過Internet把圖像傳送給PC用戶,就能觀看整個圖像。選用PCMCIA接口標準很容易開發(fā),也可將Compcat Flash規(guī)范作為備用,基本的結構是通過PCMCIA總線把所有圖像數(shù)據(jù)傳送給PDA,用軟件對輸出的圖像進行編碼,對輸入的圖像進行解碼。
          初始結果是每秒7-12幀的幀速率,適合于QCIF(176×144)圖像(本地用戶看到的圖像和正在發(fā)送給本地用戶的圖像)。這些結果證明了這種概念的可行性。但是我們感到,要滿足傳遞圖像給PC用戶的要求,圖像尺寸應該更大一些,幀速率也應該更快一些,使觀看起來更流暢。下一代設計中就應該涉及結構的變化來解決上述問題。
          因為要在PDA上增加視頻功能,需要提供基于PCMCIA/CF的VGA相機。然而,為了增加系統(tǒng)的視頻性能,必須解決PCMCIA總線瓶頸和PDA的計算性能限制。設計中通過將視頻編碼器放置在PCMCIA接口的相機側來實現(xiàn)這一目標。根據(jù)圖像序列,編碼視頻只需要不到未壓縮視頻流數(shù)據(jù)速率的十分之一,在接口總線的相機側編碼視頻流,允許將更大的視頻圖像傳送給PDA,同時還可傳送更多的視頻幀。
          編碼需要部分解碼能力,因此視頻編碼的計算量比解碼大。因此用可配置的處理技術為VGA相機開發(fā)一個編碼器。這種新的視頻架構也適用于增加無線功能的下一代產(chǎn)品。視頻解碼仍在PDA的軟件中。
          采用這種新的結構,可以得到:
          * 每秒30幀的CIF分辨率圖像
          * 大于每秒20幀的VGA圖像
          目前的設計方式是尋找最符合任務需求的處理器,但采用諸如Altera的Nios或Tensilica的Xtensa等可配置處理器,能夠根據(jù)特定的任務定制處理器。采用可配置處理器的設計有以下幾步:第一,用APEX 20KE FPGA開發(fā)系統(tǒng)或指令集仿真器評估初始的軟件和硬件配置,通過分析結果確定性能瓶頸。用硬件、軟件或二者結合的方案解決目前最大瓶頸的方法理論上已經(jīng)通過,正在不斷改進。方案已經(jīng)實現(xiàn)(參數(shù)化指令,處理器配置變化,協(xié)處理器,新體系等等),正在對結果進行評估。評估結果應證實性能的改進情況。評估;提出方案;通過進一步的評估驗證方案,這樣周而復始直到硬件/軟件方案滿足性能要求為止,如圖1所示。經(jīng)過此過程,可能還有一些不可避免的瓶頸,但會逐漸達到最佳點。
          可配置處理器方案必須具備以下條件:
          * 處理器具有參數(shù)化指令集。
          * 處理器具有可改變的部件如緩沖尺寸等。
          * 處理器具有外部或特定的協(xié)處理器。
          * 處理器能夠在多處理器條件下運行。
          * 以上條件的組合。
          采用參數(shù)化指令處理,開發(fā)者可以用基本的處理器配置評估代碼,發(fā)現(xiàn)瓶頸。常見的瓶頸是缺少高速緩沖。用可配置處理器,開發(fā)者能夠回退和重新配置處理器,提供更多的指令或數(shù)據(jù)緩沖,或從2路到3路到4路組合指令。另一類瓶頸是過窄的數(shù)據(jù)通道限制了一塊或大量像素塊的編碼效率。采用可配置處理器,可以拓寬數(shù)據(jù)通道,一次對整行像素進行處理,從而節(jié)省處理器周期??梢詣?chuàng)建特定的指令,以便充分利用這個更寬的數(shù)據(jù)通道。以MPEG4操作為例,能夠定制絕對差值之和(SAD)的計算,這樣16個獨立的8位像素求和可以用一個所有16像素值的128位同時求和指令替代。
          還可以為離散余弦變換(DCT)定制指令,但用專用協(xié)處理器可能會更好。采用專用的協(xié)處理器,流水線DCT協(xié)處理器能夠勝任這種工作。軟件DCT很容易就占用15%到20%的處理器周期。如果處理器沒有所需的帶寬,可以用60到80MHz速率的硬件替代DCT軟件。
          多處理器設計方案類似于使用專用協(xié)處理器。因為每幀要量化或模擬化,所以視頻編碼和解碼具有串行特性。DCT或逆DCT(iDCT)順序對每幀進行處理,因此一幀可以從一個處理器傳送到下一個處理器,每個處理器執(zhí)行特定的功能。因此,整個的幀速率為最慢的處理器的幀速率。采用這種方案,處理器流水線的初始啟動會有延遲,原有的編碼/解碼軟件需要重新設計結構并行操作。
          以上設計方案的初步結果說明處理周期有明顯改善,但還需要進一步優(yōu)化(分布式數(shù)字DCT,重新設計結構,減少中間存儲等)。
          目前的結果歸納于表1至表4中。
          一旦確定了最終設計方案,就可以把方案移植到ASIC,或從FPGA設計轉換為Altera HardCopy器件,可以降低成本。
          本文簡要探討了用可配置媒體處理器解決如何為現(xiàn)有的PDA重新配備多媒體功能,其中的關鍵是硬件/軟件協(xié)同設計。在為消除性能瓶頸開發(fā)解決方案時,設計者需要在可能的硬件和軟件方案之間進行權衡取舍?!?BR>



          關鍵詞: 無線多媒體

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();