999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Linux下的AU 1200 MAE驅動程序設計

2010-04-12 00:00:00
現代電子技術 2010年8期

摘 要:媒體加速引擎是AlchemyTM AU 1200的片上硬件設備,主要完成圖像及視頻的解碼。為了能在嵌入式Linux下使用媒體加速引擎完成視頻的硬解碼,在此介紹了該設備的硬件結構,以及在嵌入式Linux下構建其開發環境的方法和過程,包括主機開發環境的構建,交叉編譯工具的使用以及交叉編譯的過程,并重點介紹媒體加速引擎驅動程序的設計,交叉編譯,加載到Linux內核以及應用測試的整個流程。經測試,該驅動程序可動態加載入Linux內核并成功驅動媒體加速引擎,從而可將其應用于媒體播放器完成視頻的硬解碼功能。

關鍵詞:嵌入式Linux;AlchemyTM AU 1200;媒體加速引擎;驅動程序

中圖分類號:TP368.1文獻標識碼:B

文章編號:1004-373X(2010)08-0048-03

Design of AU 1200 MAE Driving Program under Condition ofEmbedded Linux

FENG Chao

(School of Information Science and Technology, Xiamen University, Xiamen 361005, China)

Abstract:The media acceleration engine(MPEG)which mainly performs the decoding of video and image,is an on-chip hardware of AlchemyTM AU 1200, In order to implement the video′s hardware decoding with MAE under the condition of embedded Linux, the hardware structure of MAE, the methods and process ofbuilding its developmentenvironment including the construction of the host development environment under the condition of embedded Linux, and the usage of the cross compiling tools and process ofcross compiling are introduced. The development of MAE driver is explained in detail, including the driver programming, cross compiling, loading into the kernel and its application testing. The driving program can be dynamically loaded into the Linux kernel and drive the MAE successfully. Therefore, it can be used in the multimedia player to accomplish the video′s hardware-decoding.

Keywords:embedded Linux; AlchemyTM AU 1200; MAE; driving program

隨著移動多媒體終端的日益普及,功能的日益強大,人們已經不滿足于自己的手持終端僅僅能夠聽MP3音樂,而是希望終端在播放音樂的同時能夠播放高質量視頻,并支持多種視頻格式。AU 1200作為一款基于MIPS架構的處理器,由于其片上集成了視頻硬件設備(Media Acceleration Engine,MAE),使得該處理器無需配合其他視頻解碼芯片即可完成多種格式的視頻解碼功能,所以AU 1200非常適合應用于像PMP這樣的移動多媒體終端,而MAE也成為AU 1200的特色。

1 MAE概述

MAE是AU 1200的片上硬件設備,除了可以實現視頻解碼功能外,還可以完成色彩空間轉換、濾波等工作。MAE在硬件結構上可以分為前端和后端兩部分,各自完成一些特定的功能。MAE前端主要完成視頻的實時解碼,包括反量化、IDCT、運動補償等;而后端主要完成圖像的濾波、色彩空間轉換等。除此之外,MAE還可以通過AU 1200片上外設CIM(Camera Interface Module)處理從攝像頭獲取的數據。MAE使AU 1200的MIPS32核不用再因為視頻的實時解碼而產生大量的開銷,從而使其能夠專注于完成接口、音頻處理等其他任務,這樣一來大大提高了系統的工作效率。MAE支持的視頻Codec格式包括:MPEG-2 Main Profile @ Main Level,MPEG- Advanced Simple Profile @Level 5,WMV 9 Media Profile @ Medium Level,最高支持D1 30 f/s的實時解碼[1]。

2 開發環境的建立

硬件開發板采用華恒科技的HHAU 1200,該板提供豐富的接口,并已將Bootloader固化在板上的FLASH當中,通過燒寫工具可對其軟件系統進行更新升級。只要建立交叉編譯環境便可在HHAU 1200上開發硬件設備驅動程序和應用程序[2]。

2.1 宿主機開發環境的建立

宿主機(PC)通過串口線連接至開發板的串口1,同時通過交叉網線連接至開發板的網口。宿主機安裝Red Hat Linux操作系統,所安裝的版本是Enterprise Linux AS4,建議采用完全安裝。由于HHAU 1200開發板在燒寫時默認的IP為192.168.2.222,所以PC機的IP也要設置在該網段[3]。在Linux PC下配置好NFS(為交叉開發時Mount所用)、TFTP服務器(為下載燒寫所用)和Minicom。以上幾項配置好后啟動Minicom,當開發板上電后便可看到啟動信息。

在PC的Linux終端提示符下鍵入mount -o nolock 192.168.2.222://mnt,即把AU 1200開發板根目錄下的所有文件和目錄Mount到宿主機Linux下的mnt目錄,在Linux終端提示符下可通過ls命令查看[4]。

2.2 交叉編譯工具鏈的建立

按照以下步驟:

(1) 下載交叉編譯工具軟件包[5]mipsel-linux-gcc-sdk-3.4.4-i386.tar.gz,解包至/opt路徑下;

(2) 添加交叉編譯工具環境變量:修改/etc/profile文件,在文件末尾添加export PATH=$PATH:/opt/mipsel-linux-gcc-sdk-3.4.4/cross/bin;

(3) 使新的環境變量生效:#source /etc/profile;

(4) 檢查是否將路徑加入PATH:#echo $PATH,若顯示的內容中有上述路徑,說明已經將交叉編譯工具的路徑加入PATH;

(5) 用hello.c進行交叉編譯測試:編譯出的可執行文件用file命令查看其屬性[6]可得到如圖1所示信息。

圖1 文件屬性信息

這說明交叉編譯工具可以正常使用,編譯出的可執行文件可以在MIPS處理器上直接運行。

3 MAE前端驅動軟件設計及測試

3.1 驅動軟件設計

MAE可分為前端和后端,前端的主要功能是完成多種視頻格式的實時解碼,其方框圖如圖2所示[7]。

MAE前端的輸入數據是一系列的數據宏塊,宏塊數據以及頭信息、系數矩陣、運動向量等都以DMA的方式傳送給MAE。所以在程序中首先要定義指針maefe_dmadscr[PTR]來描述DMA。并把maefe_dmadbell[DB]寄存器設置為1來啟動DMA控制器。頭信息一共包含4個word,每個word有32 b,這4個word分別保存到AU 1200寄存器mae_hdr0到mae_hdr3中,這些word包含了關于編碼宏塊的信息,如量化參數,運動補償參數,變換運算等信息[8]。

驅動程序首先要把每一幀的地址寫入MAE的相關寄存器中,在每處理一幀后,上述宏塊信息都要及時更新。MAE的前端對宏塊數據進行反量化,其結果輸入至逆變換單元進行逆變換運算。逆變換運算單元通過查看maefe_config寄存器的COD標志位來決定采用哪種標準的視頻Codec,從而執行相應的運算。逆變換運算完成后,數據送入運動補償單元。運動補償單元根據運動向量計算出參考像素值,并把它們插入當前幀中,從而完成一次解碼[9]。以上過程通過編寫函數fe_process_mb來實現,該函數的幾個參數分別是:

圖2 MAE前端方框圖

mae_fe_cfg:MAE前端的配置信息;mb_in:輸入的宏塊數據;cur_y_frame:當前幀Y分量;cur_cb_frame:當前幀Cb分量;cur_cr_frame:當前幀Cr分量;mb_num:表示宏塊數據的序號。該函數的流程圖如圖3所示。

圖3 MAE FE工作流程

函數中的關鍵部分及說明注釋如下所示:

void fe_process_mb(mae_fe_config * mae_fe_cfg,mae_fe_mb * mb_in,uint8 *cur_y_frame,uint8 *cur_cb_frame,uint8 *cur_cr_frame,uint32 mb_num)

{…

mae_init_once(mae_fe_cfg,mb_in);//MAE前端初始化配置

check_param_size(mae_fe_cfg,mb_in);//查看MAE前端參數設置

check_valid_cfg_changes(mae_fe_cfg,mb_in,mb_num);//查看MAE前端配置是否改變

do_malloc_if_necessary(mae_fe_cfg);//當宏塊數據送入是,為其分配內存空間

perform_iquant(mae_fe_cfg,mb_in,fixed_point_block,bn,wm,blk_mbmode);

//對宏塊數據執行反量化

if(!mae_fe_cfg->codstyl)//判斷編碼器類型

lee_idct_2d_fixed_point(fixed_point_block,dst_block,bn,exp_bc);

//執行IDCT變化

idct_output[c] = (char)dst_block[c];

copy_data_to_cur(mae_fe_cfg,mb_in,cur_y_frame,cur_cb_frame,cur_cr_frame);

//生成當前幀…}

3.2 驅動軟件測試

將以上程序交叉編譯,生成mae-driver.ko,動態加載到Linux內核:#insmod –f mae-driver.ko。用MAIplayer驗證是否可以正常工作:啟動minicom,進入MAIplayer所在路徑,該路徑下有編譯好的播放器應用程序及各種視頻解碼庫。執行視頻文件播放命令MYM./maiplayer auto –a –l jolin.mpg[10]。播放效果如圖4所示。經測試, MAIplayer可正常播放多媒體視頻,說明MAE已被驅動起來完成視頻解碼工作。

圖4 測試示意圖

4 結 語

本文給出了AU 1200 MAE驅動程序開發的流程,包括開發環境的搭建及驅動程序的編寫。 MAE作為AU 1200片上專用于圖像、視頻的外部設備,相當于一個視頻協處理器。它的使用大大提高了MIPS核的工作效率,而以AU 1200為核心的多媒體終端具有更低的成本,因此,其市場前景將更加廣闊。

參考文獻

[1]Raza MicroelectronicsIncorporation.. RMI AlchemyTM AU 1200TM , Au1210TM , Au1250TMprocessors media acceleration engine\\.\\: Raza MicroelectronicsInc., 2007.

[2]華恒科技. HHAU12XX開發平臺技術手冊\\. 2007.

[3]陳文智. 嵌入式系統開發原理與實踐[M]. 北京: 清華大學出版社, 2005.

[4]鄭靈翔. 嵌入式系統設計與應用開發[M]. 北京: 北京航空航天大學出版社, 2006.

[5]Raza Microelectronics Incorporation.. RMI AlchemyTM AU 1200TM , Au1210TM and Au1250TMprocessors media application interface software development kit\\. \\: Raza Microelectronics Inc., 2007.

[6]Raza MicroelectronicsIncorporation.. RMI AlchemyTM AU 1200TMprocessor data book\\. \\: Raza MicroelectronicsInc., 2006.

[7]楊文慧, 施芝元, 黃聯芬. 嵌入式AU 1200無線車載終端播放器設計實現[J]. 現代電子技術, 2009, 32(16): 42-43.

[8]宋丹, 馬昌萍, 馬幼鳴. MPlayer在嵌入式開發系統中的應用[J]. 電子產品世界, 2005(7): 68-71.

[9]Raza MicroelectronicsIncorporation.. RMI AlchemyTM AU 1200TMprocessor-based system media player software user′s guide\\. \\: Raza MicroelectronicsInc., 2006.

主站蜘蛛池模板: 激情五月婷婷综合网| 国产成人高清精品免费5388| 无码人妻热线精品视频| 欧美精品一区二区三区中文字幕| 亚洲日韩精品无码专区| 欧美影院久久| 国产亚洲精品97AA片在线播放| 色国产视频| 三级视频中文字幕| 国产成人一区免费观看 | 国产一级毛片高清完整视频版| 一级毛片高清| 国产在线日本| 日韩毛片在线播放| 国产成熟女人性满足视频| 欧美一区二区自偷自拍视频| 不卡无码h在线观看| 欧美色视频网站| a亚洲视频| 蜜臀AVWWW国产天堂| 在线观看av永久| 青草视频免费在线观看| 狠狠做深爱婷婷综合一区| 色综合中文字幕| 福利在线一区| 中文字幕2区| 中文字幕在线播放不卡| 性欧美久久| 精品国产网| 最新痴汉在线无码AV| 一区二区三区四区精品视频 | 国产人成乱码视频免费观看| 国产成人h在线观看网站站| 亚洲第一成年网| 欧美激情成人网| 91福利免费视频| 欧美一级视频免费| 91精品网站| 激情无码字幕综合| 国产对白刺激真实精品91| www.亚洲天堂| 狠狠v日韩v欧美v| 狠狠色丁香婷婷综合| 国产小视频a在线观看| 日韩在线视频网站| 91热爆在线| 亚洲天堂.com| 日本欧美中文字幕精品亚洲| 国产成人你懂的在线观看| 久久综合亚洲鲁鲁九月天| 免费看a级毛片| h视频在线播放| 亚洲性视频网站| 福利在线不卡一区| 亚洲高清日韩heyzo| 五月婷婷激情四射| 亚洲人成影视在线观看| 国产精品青青| 国产在线无码一区二区三区| 亚洲精品视频免费看| 亚洲天堂网在线播放| 国产在线一二三区| 久久国产亚洲欧美日韩精品| 99久久无色码中文字幕| 亚洲另类国产欧美一区二区| 欧美日本在线播放| 精品偷拍一区二区| 高清不卡一区二区三区香蕉| 亚洲天堂久久久| 97国产在线播放| 精品欧美视频| 高清久久精品亚洲日韩Av| 91www在线观看| 免费观看欧美性一级| 无码久看视频| JIZZ亚洲国产| 中文纯内无码H| 亚洲视频色图| 国产福利一区二区在线观看| 视频一区视频二区中文精品| 经典三级久久| 日韩毛片基地|