RGA的使用?
请问一下官方的RGA应该怎么使用?root@firefly:/usr/lib/aarch64-linux-gnu# strings librga.so |grep rga_api |grep version
RGA版本为1.3.0,但是教程https://wiki.t-firefly.com/zh_CN/Firefly-Linux-Guide/manual_ubuntu.html#rga并没有说明如何使用RGA,请问是否有相关demo?
sdk里的external\linux-rga\samples 本帖最后由 lee.123 于 2024-1-5 14:44 编辑
找到了,在编译的时候报错以下内容,请问这是遇到什么问题呢?
后面我用了板子上自带的librga.so库给编译了一个demo,但是上面的问题还是没有解决。
同时还想请问RGA对比GPU的优势在哪里呢,看资料的rk3568带的GPU性能也算不错的。 zhangzhenzhao 发表于 2024-1-3 09:02
sdk里的external\linux-rga\samples
好的,谢谢您,还请您看看下面的问题 本帖最后由 lee.123 于 2024-1-9 14:47 编辑
Q3:
我现在改了一下提供的demo,做了一个yuv数据转rgb的测试,大概720*1280的yuv图像转换为同分辨率下的rgb图像效率为8ms/frame;但是cpu占用率还是很高。看到了官方文档有以下说明:
现在我想要使用dma_buf_alloc()提升一下速率,请问一下有没有进一步的教程呢?
我没有找到/dev/dma_heap/*这个路径。
--------------------------------------------------
---------------------------------------------------
没有具体步骤,都在例程里和参考文档,如果你的测试代码包含类似memcpy拷贝的函数肯定有问题,一般是用importbuffer_fd引用 zhangzhenzhao 发表于 2024-1-9 15:00
没有具体步骤,都在例程里和参考文档,如果你的测试代码包含类似memcpy拷贝的函数肯定有问题,一般是用impo ...
我使用了fread来作拷贝,这样是有问题吗?
src_buf = (char*)malloc(SRC_WIDTH * SRC_HEIGHT * get_bpp_from_format(SRC_FORMAT));
dst_buf = (char*)malloc(DST_WIDTH * DST_HEIGHT * get_bpp_from_format(DST_FORMAT));
// // 从文件中获取源缓冲区数据
// ret = get_buf_from_file(src_buf, SRC_FORMAT, SRC_WIDTH, SRC_HEIGHT, 0);
// if (!ret)
// printf("打开文件1\n");
// else
// printf("无法打开文件2\n");
// 如果是其他模式,将目标缓冲区清零
memset(dst_buf, 0x00, DST_WIDTH * DST_HEIGHT * get_bpp_from_format(DST_FORMAT));
// 包装源和目标缓冲区,创建相应的结构体
src = wrapbuffer_virtualaddr(src_buf, SRC_WIDTH, SRC_HEIGHT, SRC_FORMAT);
dst = wrapbuffer_virtualaddr(dst_buf, DST_WIDTH, DST_HEIGHT, DST_FORMAT);
fseek(src_file, 0, 0);
gettimeofday(&start, NULL);
while(1){
i++;
printf("%d \n",i);
if(fread(src_buf, SRC_WIDTH * SRC_HEIGHT * get_bpp_from_format(SRC_FORMAT), 1, src_file) == 0){
break;
}
STATUS = imcvtcolor(src, dst, src.format, dst.format);
}
页:
[1]