<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于MIPS架構的處理器AU1200 的MAE驅動(dòng)程序開(kāi)發(fā)流程介紹

基于MIPS架構的處理器AU1200 的MAE驅動(dòng)程序開(kāi)發(fā)流程介紹

作者: 時(shí)間:2012-04-03 來(lái)源:網(wǎng)絡(luò ) 收藏

AU 1200作為一款基于,由于其片上集成了視頻硬件設備(Media Accel-eration Engine,),使得該無(wú)需配合其他視頻解碼芯片即可完成多種格式的視頻解碼功能

本文引用地址:http://dyxdggzs.com/article/149294.htm
  1 概述
  是AU 1200的片上硬件設備,除了可以實(shí)現視頻解碼功能外,還可以完成色彩空間轉換、濾波等工作。MAE在硬件結構上可以分為前端和后端兩部分,各自完成一些特定的功能。MAE前端主要完成視頻的實(shí)時(shí)解碼,包括反量化、IDCT、運動(dòng)補償等;而后端主要完成圖像的濾波、色彩空間轉換等。除此之外,MAE還可以通過(guò)AU 1200片上外設CIM(Camera InteRFaceModule)處理從攝像頭獲取的數據。MAE使AU 1200的32核不用再因為視頻的實(shí)時(shí)解碼而產(chǎn)生大量的開(kāi)銷(xiāo)。從而使其能夠專(zhuān)注于完成接口、音頻處理等其他任務(wù),這樣一來(lái)大大提高了系統的工作效率。MAE支持的視頻Codec格式包括:MPEG-2 Main Profile@Main Level,MPEG- Advanced Simple Profile @ Level 5,WMV 9 Media Profile @ Medium Level,最高支持D1 30 f/s的實(shí)時(shí)解碼。
  2 開(kāi)發(fā)環(huán)境的建立
  硬件開(kāi)發(fā)板采用華恒科技的HHAU 1200,該板提供豐富的接口,并已將Bootloader固化在板上的FLASH當中,通過(guò)燒寫(xiě)工具可對其軟件系統進(jìn)行更新升級。只要建立交叉編譯環(huán)境便可在HHAU 1200上開(kāi)發(fā)硬件設備程序和應用程序。
  2.1 宿主機開(kāi)發(fā)環(huán)境的建立
  宿主機(PC)通過(guò)串口線(xiàn)連接至開(kāi)發(fā)板的串口1,同時(shí)通過(guò)交叉網(wǎng)線(xiàn)連接至開(kāi)發(fā)板的網(wǎng)口。宿主機安裝Red Hat Linux操作系統,所安裝的版本是EnterpriseLinux AS4,建議采用完全安裝。由于HHAU 1200開(kāi)發(fā)板在燒寫(xiě)時(shí)默認的IP為192.168.2.222,所以PC機的IP也要設置在該網(wǎng)段。在Linux PC下配置好NFS(為交叉開(kāi)發(fā)時(shí)Mount所用)、TFTP服務(wù)器(為下載燒寫(xiě)所用)和Minicom。以上幾項配置好后啟動(dòng)Minicom,當開(kāi)發(fā)板上電后便可看到啟動(dòng)信息。
  在PC的Linux終端提示符下鍵入mount-onolock 192.168.2.222://mnt,即把AU 1200開(kāi)發(fā)板根目錄下的所有文件和目錄Mount到宿主機Linux下的mnt目錄,在Linux終端提示符下可通過(guò)ls命令查看。
  2.2 交叉編譯工具鏈的建立
  按照以下步驟:
  (1)下載交叉編譯工具軟件包mipsel-linux-gcc-sdk-3.4.4-i386.tar.gz,解包至/opt路徑下;
  (2)添加交叉編譯工具環(huán)境變量:修改/etc/profile文件,在文件末尾添加export PATH=$PATH:/opt/mipsel-linux-gcc-sdk-3.4.4/cross/bin;
  (3)使新的環(huán)境變量生效:#source/etc/profile;
  (4)檢查是否將路徑加入PATH:#echo$PATH,若顯示的內容中有上述路徑,說(shuō)明已經(jīng)將交叉編譯工具的路徑加入PATH;
  (5)用hello.c進(jìn)行交叉編譯測試:編譯出的可執行文件用file命令查看其屬性可得到如圖1所示信息。
  這說(shuō)明交叉編譯工具可以正常使用,編譯出的可執行文件可以在上直接運行。
  3.MAE前端軟件設計及測試
  3.1 軟件設計
  MAE可分為前端和后端,前端的主要功能是完成多種視頻格式的實(shí)時(shí)解碼,其方框圖如圖2所示。
  MAE前端的輸入數據是一系列的數據宏塊,宏塊數據以及頭信息、系數矩陣、運動(dòng)向量等都以DMA的方式傳送給MAE。所以在程序中首先要定義指針maefe_dmadscr[PTR]來(lái)描述DMA。并把maefe_dreadbell[DB]寄存器設置為1來(lái)啟動(dòng)DMA控制器。頭信息一共包含4個(gè)word,每個(gè)word有32 b,這4個(gè)word分別保存到AU 1200寄存器mae_hdr0到mae_hdr3中,這些word包含了關(guān)于編碼宏塊的信息,如量化參數,運動(dòng)補償參數,變換運算等信息。
 驅動(dòng)程序首先要把每一幀的地址寫(xiě)入MAE的相關(guān)寄存器中,在每處理一幀后,上述宏塊信息都要及時(shí)更新。MAE的前端對宏塊數據進(jìn)行反量化,其結果輸入至逆變換單元進(jìn)行逆變換運算。逆變換運算單元通過(guò)查看maefe_config寄存器的COD標志位來(lái)決定采用哪種標準的視頻Cod-ec,從而執行相應的運算。逆變換運算完成后,數據送入運動(dòng)補償單元。運動(dòng)補償單元根據運動(dòng)向量計算出參考像素值,并把它們插入當前幀中,從而完成一次解碼。以上過(guò)程通過(guò)編寫(xiě)函數fe_process_mb來(lái)實(shí)現,該函數的幾個(gè)參數分別是:
  mae_fe_cfg:MAE前端的配置信息;mb_in:輸入的宏塊數據;cur_y_frame:當前幀Y分量;cur_cb_frame:當前幀Cb分量;cur_cr_fr-ame:當前幀Cr分量;mb_num:表示宏塊數據的序號。該函數的圖如圖3所示。
  函數中的關(guān)鍵部分及說(shuō)明注釋如下所示:
  3.2 驅動(dòng)軟件測試


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>