当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于MIPS架构的处理器AU1200 的MAE驱动程序开发流程介绍

AU 1200作为一款基于MIPS架构的处理器,由于其片上集成了视频硬件设备(Media Accel-eration Engine,MAE),使得该处理器无需配合其他视频解码芯片即可完成多种格式的视频解码功能

 
  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来实现,该函数的几个参数分别是:
  mae_fe_cfg:MAE前端的配置信息;mb_in:输入的宏块数据;cur_y_frame:当前帧Y分量;cur_cb_frame:当前帧Cb分量;cur_cr_fr-ame:当前帧Cr分量;mb_num:表示宏块数据的序号。该函数的流程图如图3所示。
  函数中的关键部分及说明注释如下所示:
 
  3.2 驱动软件测试
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

德国康佳特亮相上海工博会,展示多款应用就绪的嵌入式解决方案平台

关键字: 嵌入式 传感器 处理器

9月10日消息,在最近的高盛Communacopia +科技大会上,Intel副总裁John Pitzer透露了Intel在x86和IFS计划方面的一些新细节。

关键字: Intel 处理器

在当今的高性能计算领域,确保处理器、存储和加速器之间快速可靠的通信对系统性能和可扩展性至关重要。因此,就诞生了Compute Express Link®(CXL®)标准:其目标是实现一致的内存访问、低延迟的数据传输,以及...

关键字: 芯片设计 处理器 加速器

9月9日消息,Intel宣布了一系列重大人事调整,涉及数据中心事业部(DCG)、客户端计算事业部(CCG)以及新成立的中央工程事业部(CEG)。

关键字: Intel 处理器

在半导体行业的风云变幻中,英特尔公司近来可谓麻烦不断。

关键字: 英特尔 半导体 处理器

9月2日消息,Intel近日坦承,自家高端桌面CPU竞争力不如AMD的锐龙9000系列,但强调Panther Lake系列将按计划在今年内上市,同时下一代Nova Lake将全力反击。

关键字: Intel 处理器

8月26日消息,据报道,美国政府不仅通过股权投资Intel,还积极协助其在美国本土生产先进芯片,包括主动联系潜在主要客户,以提振其晶圆代工业务。

关键字: Intel 处理器

8月21日消息,据报道,Intel正在开发的新一代AI芯片Jaguar Shores近日首次得到曝光。

关键字: Intel 处理器

8月21日消息,据报道,Intel近期因资金困境等问题,导致多个关键项目被取消,大量核心人才流失。

关键字: Intel 处理器
关闭