瑞芯微Rockchip开发者社区
直播中

番茄番茄

12年用户 637经验值
私信 关注
[问答]

怎样去解决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实现我需要的效果?
谢谢!


回帖(4)

江左盟

2022-4-8 15:19:46
官方回复:不支持
文档也写了只支持SRC_GLOBALAPHA,
但不是所有rk芯片都能正常工作。
举报

番茄番茄

2022-4-8 15:20:26
  请问:“文档也写了只支持SRC_GLOBALAPHA,”是什么含义?是指只是Src Buffer能设置globalAlpha?还是什么别的含义?

  “但不是所有rk芯片都能正常工作”,请问哪些芯片能够满足我上面的工作需求?

  我可以用OpenCL来实现这个功能,但是我希望搞明白。

  谢谢
举报

江左盟

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

番茄番茄

2022-4-8 15:22:04
  收到,我尝试过设置src_globalalpha,但是同样没有效果,故有此一问。

  看来是系统硬件不支持,只能自己通过opencl来实现了。

  谢谢!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分