GD32450i-EVAL学习笔记 16 - 图像处理加速器(IPA)

目录

1. 初始化

2. 设置背景层

2.1 停止IPA

2.2 设置颜色格式

2.3 设置颜色

2.4 设置地址

2.5 设置背景层大小

2.6 设置偏移

2.7 总结

3. 设置前景层

3.1 设置数据地址

3.2 设置颜色格式

 3.3 设置颜色

 3.4 设置alpha值计算算法

3.5 设置偏移


上一篇2个层的显示内容对应显存,IPA就是实现快速更新这个显存的方式,包括更新同时完成格式的转换。

IPA定义了前景层和背景层,背景层可以简单的理解为TLI的Layer0和Layer1(实际就是对应这2个层的TLI_LxFBADDR地址值),而前景层是需要更新到背景层的数据。

IPA的背景层只支持ARGB8888,RGB888,RGB565,ARGB1555,ARGB4444。

1. 初始化

使能IPA的RCU,并复位IPA

RCU_AHB1EN |= ((uint32_t)1 << 23);
//IPA Reset
RCU_AHB1RST |= ((uint32_t)1 << 23);
RCU_AHB1RST &= ~((uint32_t)1 << 23);

2. 设置背景层

2.1 停止IPA

IPA_CTL |= ((uint32_t)1 << 2);

2.2 设置颜色格式

IPA_DPCTL = format;

这个一般是和TLI中的层的格式对应。

2.3 设置颜色

颜色对应寄存器IPA_DPV,设定的值和格式有关,如果是ARGB8888,则这个寄存器的颜色值就是ARGB8888,比如纯红色值为0x00FF0000, 如果是RGB565,颜色就需要设置为RGB565,比如纯红色值为0xF800。这个颜色的设定应该是设置为填充颜色的模式时才有效。

2.4 设置地址

对应寄存器IPA_DMADDR,目标地址。

2.5 设置背景层大小

IPA_IMS = ((uint32_t)setting.w << 16) | setting.h;

2.6 设置偏移

对应寄存器IPA_DLOFF

2.7 总结

背景层一般对应TLI的层0或者层1。

TLI的层中数据地址如上图层的起始地址,而背景层可以实现层中的局部更新(当然也可以全部更新),在定义背景层的起始地址就可以决定背景层在层中的位置。

偏移值如上图a+b,这样前景层数据更新到背景层是可以做到在背景层的区域内。

3. 设置前景层

3.1 设置数据地址

对应寄存器IPA_FMADDR

3.2 设置颜色格式

对应寄存器IPA_FPCTL

 3.3 设置颜色

对应寄存器IPA_FPV和IPA_FPCTL,IPA_FPV配置RGB值,IPA_FPCTL的位24-31对应Alpha值。

 3.4 设置alpha值计算算法

对应寄存器IPA_FPCTL

 有3种计算方式。

3.5 设置偏移

对应寄存器IPA_FLOFF。

假设定义宽高为10,20的矩形框作为TLI的层0和层1,层0为黑色作为背景用来参考层1的变化。层0和层1的位置一样。

IPA的背景层对应层1,y方向偏移10,即IPA更新层1的下半部分空间。同样,前景层和背景层一样大小,改变这个偏移值看效果。

当前景层的偏移值为2和4时,显示效果如下图,红色是层1原来的颜色,绿色是前景层数据更新到背景层的颜色,即一个10x10的数组都是绿色值,黑色是层0.

offset = 2时,下面黑色部分有16个像素没有更新,而offset = 4时,有28个像素没有更新。规律有点奇怪,偏移值的含义不是太明显。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值