当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]嵌入式Linux下的AU 1200 MAE驱动程序设计

 随着移动多媒体终端的口益普及,功能的日益强大,人们已经不满足于自己的手持终端仅仅能够听MP3音乐,而是希望终端在播放音乐的同时能够播放高质量视频,并支持多种视频格式。AU 1200作为一款基于MIPS架构的处理器,由于其片上集成了视频硬件设备(Media Accel-eration Engine,MAE),使得该处理器无需配合其他视频解码芯片即可完成多种格式的视频解码功能,所以AU 1200非常适合应用于像PMP这样的移动多媒体终端,而MAE也成为AU 1200的特色。

1 MAE概述
    MAE是AU 1200的片上硬件设备,除了可以实现视频解码功能外,还可以完成色彩空间转换、滤波等工作。MAE在硬件结构上可以分为前端和后端两部分,各自完成一些特定的功能。MAE前端主要完成视频的实时解码,包括反量化、IDCT、运动补偿等;而后端主要完成图像的滤波、色彩空间转换等。除此之外,MAE还可以通过AU 1200片上外设CIM(Camera InterfaceModule)处理从摄像头获取的数据。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的实时解码。

2 开发环境的建立
    硬件开发板采用华恒科技的HHAU 1200,该板提供丰富的接口,并已将Bootloader固化在板上的FLASH当中,通过烧写工具可对其软件系统进行更新升级。只要建立交叉编译环境便可在HHAU 1200上开发硬件设备驱动程序和应用程序。
2.1 宿主机开发环境的建立
    宿主机(PC)通过串口线连接至开发板的串口1,同时通过交叉网线连接至开发板的网口。宿主机安装Red Hat Linux操作系统,所安装的版本是EnterpriseLinux AS4,建议采用完全安装。由于HHAU 1200开发板在烧写时默认的IP为192.168.2.222,所以PC机的IP也要设置在该网段。在Linux PC下配置好NFS(为交叉开发时Mount所用)、TFTP服务器(为下载烧写所用)和Minicom。以上几项配置好后启动Minicom,当开发板上电后便可看到启动信息。
    在PC的Linux终端提示符下键入mount-onolock 192.168.2.222://mnt,即把AU 1200开发板根目录下的所有文件和目录Mount到宿主机Linux下的mnt目录,在Linux终端提示符下可通过ls命令查看。
2.2 交叉编译工具链的建立
    按照以下步骤:
    (1)下载交叉编译工具软件包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命令查看其属性可得到如图1所示信息。


    这说明交叉编译工具可以正常使用,编译出的可执行文件可以在MIPS处理器上直接运行。

3.MAE前端驱动软件设计及测试
3.1 驱动软件设计

    MAE可分为前端和后端,前端的主要功能是完成多种视频格式的实时解码,其方框图如图2所示。


    MAE前端的输入数据是一系列的数据宏块,宏块数据以及头信息、系数矩阵、运动向量等都以DMA的方式传送给MAE。所以在程序中首先要定义指针maefe_dmadscr[PTR]来描述DMA。并把maefe_dreadbell[DB]寄存器设置为1来启动DMA控制器。头信息一共包含4个word,每个word有32 b,这4个word分别保存到AU 1200寄存器mae_hdr0到mae_hdr3中,这些word包含了关于编码宏块的信息,如量化参数,运动补偿参数,变换运算等信息。
    驱动程序首先要把每一帧的地址写入MAE的相关寄存器中,在每处理一帧后,上述宏块信息都要及时更新。MAE的前端对宏块数据进行反量化,其结果输入至逆变换单元进行逆变换运算。逆变换运算单元通过查看maefe_config寄存器的COD标志位来决定采用哪种标准的视频Cod-ec,从而执行相应的运算。逆变换运算完成后,数据送入运动补偿单元。运动补偿单元根据运动向量计算出参考像素值,并把它们插入当前帧中,从而完成一次解码。以上过程通过编写函数fe_process_mb来实现,该函数的几个参数分别是:[!--empirenews.page--]
    mae_fe_cfg:MAE前端的配置信息;mb_in:输入的宏块数据;cur_y_frame:当前帧Y分量;cur_cb_frame:当前帧Cb分量;cur_cr_fr-ame:当前帧Cr分量;mb_num:表示宏块数据的序号。该函数的流程图如图3所示。


    函数中的关键部分及说明注释如下所示:
   
   
3.2 驱动软件测试
    将以上程序交叉编译,生成mae-driver.ko,动态加载到Linux内核:#insmod - f mae-driver.ko。用MAIplayer验证是否可以正常工作:启动minicom,进入MAIplayer所在路径,该路径下有编译好的播放器应用程序及各种视频解码库。执行视频文件播放命令MYM./maipl-ayer auto-a-l jolin.mpg。播放效果如图4所示。经测试,MAIplayer可正常播放多媒体视频,说明MAE已被驱动起来完成视频解码工作。



4 结语
    本文给出了AU 1200 MAE驱动程序开发的流程,包括开发环境的搭建及驱动程序的编写。MAE作为AU 1200片上专用于图像、视频的外部设备,相当于一个视频协处理器。它的使用大大提高了MIPS核的工作效率,而以AU 1200为核心的多媒体终端具有更低的成本,因此。其市场前景将更加广阔。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭