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

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于i.MX27的網(wǎng)絡(luò)音視頻通信的實(shí)現(xiàn)

          基于i.MX27的網(wǎng)絡(luò)音視頻通信的實(shí)現(xiàn)

          作者:缐曉林 游向東 潘力 北京郵電大學(xué)信息與通信工程學(xué)院 時間:2009-09-08 來源:電子產(chǎn)品世界 收藏

            添加H264硬件視頻編解碼器

          本文引用地址:http://www.ex-cimer.com/article/97894.htm

            1.6.0本身具有視頻編解碼功能,默認(rèn)具有H263 、mpeg4、mjpeg等編解碼器,我們要仿照這些編解碼器的源碼結(jié)構(gòu)添加H264解碼器,重要的是將編解碼器的軟件編解碼部分替換成的VPU(視頻處理單元)來進(jìn)行硬件編解碼,因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/i.MX27">i.MX27的CPU處理速度有限,遠(yuǎn)及不上PC的CPU,而的VPU則是專門進(jìn)行視頻編解碼處理的協(xié)處理器,在處理視頻數(shù)據(jù)的時候是不需要CPU參與。

            代碼的添加過程如下:在向注冊編解碼器的地方添加H264編解碼器,使得具備H264編解碼器的功能選項(xiàng),注冊的內(nèi)容包括:編解碼器id,一些名稱文本等標(biāo)識符,編解碼器初始化,視頻數(shù)據(jù)預(yù)處理、處理、后處理,編解碼器銷毀(釋放系統(tǒng)資源)等函數(shù)鏈接,編解碼器方法(進(jìn)行基本視頻編解碼處理之外的操作)等。注冊好編解碼器后,就是如何真正實(shí)現(xiàn)編解碼器對視頻流的編解碼處理了,也就是編解碼器的初始化,視頻數(shù)據(jù)預(yù)處理、處理、后處理,編解碼器銷毀等函數(shù)的實(shí)現(xiàn)。視頻處理的軟件部分主要包括內(nèi)核空間的驅(qū)動和編解碼庫以及用戶空間的應(yīng)用程序。內(nèi)核驅(qū)動負(fù)責(zé)系統(tǒng)控制和系統(tǒng)資源的申請和釋放,提供一些IOCTRL接口給用戶空間的應(yīng)用程序使用調(diào)配系統(tǒng)硬件資源;用戶空間的應(yīng)用程序調(diào)用適當(dāng)?shù)腎OCTRL和編解碼庫函數(shù)來實(shí)現(xiàn)復(fù)雜的編解碼系統(tǒng)。

            VPU的內(nèi)核驅(qū)動主要包括以下功能:模塊初始化、器件初始化、中斷服務(wù)策略、文件操作策略、器件關(guān)閉、編解碼庫、系統(tǒng)IO操作等。

            視頻編解碼的計(jì)算和絕大部分視頻流的壓縮/解壓縮都是由i.MX27的硬件VPU單元來完成的,這樣軟件就不需要過多的控制或者時間消耗等來實(shí)現(xiàn)一個復(fù)雜的編解碼系統(tǒng)。VPU的硬件數(shù)據(jù)流可以用一個mpeg4格式數(shù)據(jù)的解碼實(shí)現(xiàn)過程展示(見圖2)。

            硬件編解碼速度快、效率高、功耗和熱功耗低,節(jié)省了CPU的資源,實(shí)現(xiàn)了良好畫質(zhì)的傳輸,這一點(diǎn)充分體現(xiàn)了i.MX27芯片在視頻處理方面的優(yōu)勢。



          評論


          相關(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); })();