新闻中心

EEPW首页>嵌入式系统>设计应用> 嵌入式Linux下的AU1200MAE驱动程序设计

嵌入式Linux下的AU1200MAE驱动程序设计

作者: 时间:2011-06-10 来源:网络 收藏

  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所示。

  函数中的关键部分及说明注释如下所示:

32软件测试

  将以上程序交叉编译,生成mae-driver.ko,动态加载到内核:#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为核心的多媒体终端具有更低的成本,因此。其市场前景将更加广阔。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭