Toybrick

使用rga将nv12转rgb问题

闲花落地

注册会员

积分
96
发表于 2020-11-20 15:00:49    查看: 84|回复: 6 | [复制链接]    打印 | 显示全部楼层
本帖最后由 闲花落地 于 2020-11-20 15:02 编辑

rga模块使用的是git上最新的源码编译的这个是封装接口:
int RgaManager::RgaConvertColor(void* src, RgaSURF_FORMAT src_fmt, void* dst, RgaSURF_FORMAT dst_fmt, int mode, int width, int height)
{
    rga_buffer_t src_buf = wrapbuffer_virtualaddr(src, width, height, src_fmt);
    rga_buffer_t dst_buf = wrapbuffer_virtualaddr(dst, width, height, dst_fmt);
    IM_STATUS status = imcvtcolor_t(src_buf, dst_buf, src_fmt, dst_fmt, mode, 1);
    if(status != IM_STATUS_SUCCESS)
    {
        printf("rga convert color failed: %d\n", status);
        return -1;        
    }

    return 0;
}

这个是调用位置:
RgaConvertColor(ptr, RK_FORMAT_YCbCr_420_SP, rgb_ptr, RK_FORMAT_RGB_888, IM_YUV_TO_RGB_BT709_LIMIT, 1920, 1088);

将转出的rgb数据保存到文件:
            FILE *fp = fopen("test.rgb", "wb");
            if(fp)
            {
                fwrite(rgb_ptr, 1, 1920*1088*3, fp);
                fclose(fp);
            }

得到的rgb图像是这样的:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

闲花落地

注册会员

积分
96
 楼主| 发表于 2020-11-20 16:12:45 | 显示全部楼层
使用自带的im2d转换出的nv12图片也有问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

jefferyzhang

超级版主

积分
6550
发表于 2020-11-22 12:12:06 | 显示全部楼层
什么板子? 这个看过去是驱动问题
回复

使用道具 举报

闲花落地

注册会员

积分
96
 楼主| 发表于 7 天前 | 显示全部楼层
jefferyzhang 发表于 2020-11-22 12:12
什么板子? 这个看过去是驱动问题

TB96AI的板子
回复

使用道具 举报

闲花落地

注册会员

积分
96
 楼主| 发表于 4 天前 | 显示全部楼层
jefferyzhang 发表于 2020-11-22 12:12
什么板子? 这个看过去是驱动问题

哥们,驱动问题要怎么解决啊
回复

使用道具 举报

jefferyzhang

超级版主

积分
6550
发表于 4 天前 | 显示全部楼层
闲花落地 发表于 2020-11-26 14:56
哥们,驱动问题要怎么解决啊

要等96AI的代理商来解决。
不过看过去也就是颜色反色了,nv12改nv21或者rgba改argb之类的可以试试,
一般就是驱动上的设置和rga不匹配造成的。
回复

使用道具 举报

闲花落地

注册会员

积分
96
 楼主| 发表于 4 天前 | 显示全部楼层
jefferyzhang 发表于 2020-11-26 15:10
要等96AI的代理商来解决。
不过看过去也就是颜色反色了,nv12改nv21或者rgba改argb之类的可以试试,
一般 ...

好吧,那多谢啦
回复

使用道具 举报

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

本版积分规则

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


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