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

          關 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 設計應用 > 基于異構多核全高清H264解碼系統(tǒng)設計

          基于異構多核全高清H264解碼系統(tǒng)設計

          作者: 時間:2015-03-31 來源:網(wǎng)絡 收藏

            3.2 Cortex-M3軟件實現(xiàn)

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

            雙核Cortex-M3運行TI BIOS實時操作系統(tǒng),負責與主處理核的virtio緩存隊列通信及通過codec engine調(diào)用IVA-HD加速引擎實現(xiàn)解碼,運行流程圖如圖6所示,主要包括以下內(nèi)容:

            1) virqueue_create( virtio發(fā)送及接收緩存隊列。

            2) Message_get_queue( M3的消息隊列中。

            3) App M3將獲取消息鏈表的消息,設置IVA-HD加速引擎的工作狀態(tài)并初始化,如果為解碼消息則通過Codec Engine調(diào)用IVA-HD加速引擎來完成解碼過程。

            4)將解碼后的圖像緩存封裝成virtio緩存,調(diào)用Message_send_queue()通過virtio緩存隊列發(fā)送回主處理核A9調(diào)用DRM進行顯示輸出。

            4測試

            本文在OMAP4430開發(fā)平臺上設計實現(xiàn)了基于異構多核的全高清解碼,為了測試解碼器的性能,將針對不同比特率的720P、1080P的網(wǎng)絡視頻文件Big_Buck _Bunny_Sunflower進行解碼測試,測試結果如表1所示,同時采用FFmpeg開源庫項目的軟解碼進行測試,其對比圖如圖7所示

            

           

            圖7 IVA-HD硬解碼和軟解碼效率對比圖

            從圖6可以看出本次設計的解碼器在解碼720P(1280*720)和1080P(1920*1080)視頻時分別達到60和34幀每秒,相比FFmpeg開源H264軟解碼器效率提高了一倍。而普遍全高清流暢視頻的幀率為30幀每秒,達到實時解碼性能需求。

            5結束語

            隨著移動互聯(lián)網(wǎng)時代的到來,在移動終端上流暢播放全高清視頻成為任務日常需求。為此本文采用移動Soc OMAP4430異構多核處理器為實驗平臺,通過基于virtio緩存隊列和RPMsg消息框?qū)崿F(xiàn)了異構多核間多媒體數(shù)據(jù)通信,同時結合IVA-HD多媒體硬件加速引擎設計了一款全高清H264視頻硬解碼系統(tǒng)。實驗結果表明設計的解碼系統(tǒng)比開源FFmpeg軟解碼器在性能上提升了一倍,達到實時性要求。具有解碼速度快、解碼過程由硬件加速器完成無需消耗主核運算資源、核間通信效率高、功耗小等優(yōu)點。


          上一頁 1 2 3 下一頁

          關鍵詞: H264 DaVinci

          評論


          相關推薦

          技術專區(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); })();