Toybrick

RK3568中通过RGA进行globalAlpha方式的混合时的问题

MadDog

中级会员

积分
402
楼主
发表于 2021-12-27 10:34:03    查看: 5204|回复: 4 | [复制链接]    打印 | 只看该作者
我希望通过RGA实现动态的淡入淡出效果,前景是一个带Alpha的RGBA格式图像,背景是NV12/NV21格式的图像,我的思路是通过动态控制前景的globalAlpha,然后和背景叠加,我发现出来的效果不对;
目前我已经实现了带Alpha的RGBA格式前景图像,通过improcess叠加到NV12/NV21格式的背景图像上:
int usage = 0;
usage |= IM_ALPHA_BLEND_DST_OVER;
usage |= IM_ALPHA_BLEND_PRE_MUL;
usage != IM_SYNC;
status = improcess(background_buffer, background_buffer, foreground_buffer, rect_background, rect_background, rect_foreground, usage);      
其中: foreground_buffer是带Alpha的RGBA格式图像, background_buffer是NV12/NV21格式的图像,效果是对的;
但是我 在调用 improcess前加上:
foreground_buffer.global_alpha = alpha;
其中alpha是自己给定的一个Alpha值,发现没有效果,请问是为什么?或者如何通过RGA实现我需要的效果?
谢谢!

回复

使用道具 举报

jefferyzhang

版主

积分
13574
沙发
发表于 2021-12-27 10:55:10 | 只看该作者
官方回复:不支持
文档也写了只支持SRC_GLOBALAPHA,
但不是所有rk芯片都能正常工作。
回复

使用道具 举报

MadDog

中级会员

积分
402
板凳
 楼主| 发表于 2021-12-27 11:15:35 | 只看该作者
请问:“文档也写了只支持SRC_GLOBALAPHA,”是什么含义?是指只是Src Buffer能设置globalAlpha?还是什么别的含义?
"但不是所有rk芯片都能正常工作",请问哪些芯片能够满足我上面的工作需求?
我可以用OpenCL来实现这个功能,但是我希望搞明白。
谢谢

回复

使用道具 举报

jefferyzhang

版主

积分
13574
地板
发表于 2021-12-27 12:01:24 | 只看该作者
本帖最后由 jefferyzhang 于 2021-12-27 12:04 编辑
MadDog 发表于 2021-12-27 11:15
请问:“文档也写了只支持SRC_GLOBALAPHA,”是什么含义?是指只是Src Buffer能设置globalAlpha?还是什么 ...

RGA部门官方回复:你用的3568芯片,不支持该功能
我个人回复:
1. 按文档上只能设置src_globalapha,而你想设置的是dst_globalapha,这个不支持。你可以试试设置src_globalapha。
2. 硬件实际上对该功能支持并不友好,可能会出现问题。

回复

使用道具 举报

MadDog

中级会员

积分
402
5#
 楼主| 发表于 2021-12-27 12:06:33 | 只看该作者
jefferyzhang 发表于 2021-12-27 12:01
RGA部门官方回复:你用的3568芯片,不支持该功能
我个人回复:
1. 按文档上只能设置src_globalapha,而你 ...

收到,我尝试过设置src_globalalpha,但是同样没有效果,故有此一问。
看来是系统硬件不支持,只能自己通过opencl来实现了。
谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表