Toybrick

标题: RK3568中通过RGA进行globalAlpha方式的混合时的问题 [打印本页]

作者: MadDog    时间: 2021-12-27 10:34
标题: RK3568中通过RGA进行globalAlpha方式的混合时的问题
我希望通过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    时间: 2021-12-27 10:55
官方回复:不支持
文档也写了只支持SRC_GLOBALAPHA,
但不是所有rk芯片都能正常工作。
作者: MadDog    时间: 2021-12-27 11:15
请问:“文档也写了只支持SRC_GLOBALAPHA,”是什么含义?是指只是Src Buffer能设置globalAlpha?还是什么别的含义?
"但不是所有rk芯片都能正常工作",请问哪些芯片能够满足我上面的工作需求?
我可以用OpenCL来实现这个功能,但是我希望搞明白。
谢谢


作者: jefferyzhang    时间: 2021-12-27 12:01
本帖最后由 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    时间: 2021-12-27 12:06
jefferyzhang 发表于 2021-12-27 12:01
RGA部门官方回复:你用的3568芯片,不支持该功能
我个人回复:
1. 按文档上只能设置src_globalapha,而你 ...

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




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3