S5PV210 多媒体预留内存空间 2 - FIMD和G2D控制器

FIMD FrameBuffer

S5PV210_VIDEO_SAMSUNG_MEMSIZE_FIMD是为framebuffer预留的物理内存空间,下面的公式是framebuffer预留空间大小

 4 表明 LCD屏的像素位数,一般为32bit; CONFIG_FB_S3C_BUFFERS是framebuffer的数目; S5PV210_LCD_WIDTH和S5PV210_LCD_HEIGHT是屏的宽高

#define S5PV210_VIDEO_SAMSUNG_MEMSIZE_FIMD (S5PV210_LCD_WIDTH * S5PV210_LCD_HEIGHT * 4 * CONFIG_FB_S3C_NR_BUFFERS) 

G2D

#define  S5PV210_VIDEO_SAMSUNG_MEMSIZE_G2D (8192 * SZ_1K)

FIMG-2D是2D图形加速器,包括如下features

1. Bit Block Transfer(BLT)

  • 内存到内存
  • 内存到屏幕

2. 像素操作

  • 窗口剪切
  • 翻转和旋转
  • 光栅操作: ROP4(Mask, pattern, Source, Destination)
  • Alpha操作
  • color key


系统会为FIMG-2D生成一个misc设备节点/dev/sec-g2d,通过这个设备节点的文件操作接口(主要是ioctl),上层应用可以实现2D硬件图形加速

上层对FIMG-2D驱动的使用在samsung/properity/libfimg/目录的ligfimg库,libfimg库主要对外提供了stretchSecFimg接口,这个接口实现硬件加速的图片拉伸,旋转颜色空间转换等。进一步的查找libfimg的使用者,可以发现只有libhdmi链接了这个动态库,libhdmi是HDMI TV视频输出实现。

因此如果系统不支持hdmi tvout输出,这个libfimg 2D加速库是不会被系统使用的,因此无须保留FIMG-2D内存空间,甚至都不需要FIMG-2D驱动。

如果支持HDMI输出,可以按照如下计算公式:

FIMG-2D memory size = max(lcd_width * lcd_height, tvout_width * tvout_height) *  (32 / 8) * 2

fimg-2d驱动简单粗暴的把预留内存二等分为两个部分,src buffer和dest buffer,src buffer是LCD framebuffer内容,dest buffer是tvout输出framebuffer。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值