ffmedia中RGA模块图像混合使用问题

固件类型:官方提供的固件
固件文件名称:ROC-RK3568-PC-TF-HDMI-MIPI-RK628_Ubuntu20.04-r240_
固件下载地址:百度网盘 请输入提取码
Log日志:log.zip

ffmedia中的demo程序demo_rgablend.cpp,使用rga模块进行图像叠加时,更改demo中的叠加参数后图像会叠加失败。demo中的设置代码:

rga->setPatPara(BGRA_para.v4l2Fmt, 0, 0, BGRA_para.width, BGRA_para.height, BGRA_para.hstride, BGRA_para.vstride);

该函数的定义:

void setPatPara(uint32_t fmt, uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint32_t hstride, uint32_t vstride);

问题:
1.请问该函数的功能是什么(麻烦详细说明一下),每个入参含义是什么?
2.该函数能否实现叠加一个小图像到一个背景图像的指定位置上,通过x,y指定叠加图像的位置,如下:


tchip_askquestions
log.zip (622 Bytes)

  1. setPatPara:设置背景图像参数:fmt图像格式,x,y图像混合坐标; w,h图像宽高,h,v图像虚宽高。
  2. 背景图像不能比前景图像小。背景图像格式不能是yuv,必须像rgba、bgra这种有a分量的图像格式。
    默认rga模块接收生产者模块的图像作为前景图像,而自己要合成的图像作为背景图像。

dengkx 发表于 2023-9-25 16:16

  1. setPatPara:设置背景图像参数:fmt图像格式,x,y图像混合坐标; w,h图像宽高,h,v图像虚宽高。
  2. 背 …

谢谢大佬
现在的问题是:

  1. 上文提到的"setPatPara:设置背景图像参数",那么x,y参数其实是没啥用的,因为背景图像不可能比叠加的图像大,也不需要设置坐标位置。我的理解是应该去调整叠加图像的x,y位置,而不是背景图像,背景图像应该是固定x=0,y=0,图像大小为屏幕分辨率大小(比如1920*1080)
    2.是不是应该叠加图像才是bgra这种带透明度格式的,背景图像是个普通格式就行,背景应该不需要透明度吧
    3.上文提到的"默认rga模块接收生产者的图像作为前景图像”这个是可以设置的么,能不能将rga接收的生产者图像作为背景图像?

本帖最后由 dengkx 于 2023-9-26 10:02 编辑

Valerian0 发表于 2023-9-25 22:47
谢谢大佬
现在的问题是:

  1. 上文提到的"setPatPara:设置背景图像参数",那么x,y参数其实是没啥用的, …

rk是这样设定的,合成的图像分为背景图像及前景图像,背景图像不能小于前景图像,且背景图像必须是有a分量的图像格式。
如果你想把你那个小的图混合到视频里,你可以创建一张和前景图像一样大(demo就是创建一样大的背景图像,然后用CV在里面绘制图像)的空白图像然后在开始前使用cv把小的图画到上面去。然后就可以一直使用他叠加。
当前版本没开放出设置前景图像数据接口,后续版本将提供设置前景图像接口,你就可以在回调中将前景图像和背景图像互换。回调传递进来参数buffer就是前景图像数据,

dengkx 发表于 2023-9-26 09:59
rk是这样设定的,合成的图像分为背景图像及前景图像,背景图像不能小于前景图像,且背景图像必须是有a分 …

我这边需要叠加的那个小图像实际是视频画面,不是固定的图像,所以不想在回调中每次都去重新画图,性能影响比较大。请问下你们计划哪个版本能更新到可以设置前景图像接口?

Valerian0 发表于 2023-9-26 10:21
我这边需要叠加的那个小图像实际是视频画面,不是固定的图像,所以不想在回调中每次都去重新画图,性能影 …

下个版本

dengkx 发表于 2023-9-26 11:59
下个版本

好的,谢谢,下个版本大概什么时候发布?

dengkx 发表于 2023-9-26 11:59
下个版本

大佬,上面提到的功能接口大概什么时候发布?我看上个版本没有包含这个功能的

下载下来学习一下。