exynos 4412 mfc 介绍

exynos 系列处理器的多媒体编解码依靠的是mfc硬件模块

目前对MFC的介绍较少。

这里粗略的总结一下


exynos 4412 mfc 介绍_第1张图片

MFC  有个RISC的小核,有8K的Icache,4K的Dcache,这个RISC可以对ES流每一帧的头数据进行分析或者合成


MFC由以下部分构成:RISC, MFC core(各种加速器),寄存器组,总线接口,内存接口

RISC和HOST都可以访问寄存器组,通过寄存器组互相通信,RISC通过产生一个中断,告诉HOST有消息,HOST收到消息后处理,

然后写MFC_RISC_HOST_INT 寄存器清掉中断位


MFC有两个AXI 总线接口。构成两个通道,可以同时全速运行。从而同时进行两路的编解码。
上图中的Search SRAM用来防止参考image,  这个主要是在运动估计和运动补偿的时候用到

Share SRAM的作用主要是保存共享当前视频帧。供前后帧在编码的时候使用。

Pixel cache, 这个位于MFC core内部,用来减少对参考帧的访问次数。对亮度数据有2K的缓存,对色度数据有1K的缓存

Host 和MFC之间通过共享内存来交换要解码的数据和解码完毕的数据


MFC的固件版本会更新,很多编解码的内部的状态设置,参数设置会变化,所以不能用寄存器这种固定的东西来实现,要用共享内存来实现主机和MFC的互联


S5PV210 mfc寄存器分为以下几类
1,buffer地址设置类
2,R2H,H2R设置类
3,一些相对固定的编解码器状态设置/读取类


R2H H2R是什么东西?

  R2H,主要用在了中断,H2R主要用在告诉MFC的一些状态,例如wake up,sleep等,似乎和解码的具体细节无关














































你可能感兴趣的:(linux,驱动开发)