以文本方式查看主题

-  曙海教育集团论坛  (http://peixun0.cn/bbs/index.asp)
--  Linux驱动开发  (http://peixun0.cn/bbs/list.asp?boardid=33)
----  嵌入式Linux下的AU1200MAE驱动程序设计  (http://peixun0.cn/bbs/dispbbs.asp?boardid=33&id=1744)

--  作者:wangxinxin
--  发布时间:2010-11-24 11:48:38
--  嵌入式Linux下的AU1200MAE驱动程序设计
驱动程序首先要把每一帧的地址写入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 驱动软件测试

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