Toybrick

标题: 使用rga将nv12转rgb问题 [打印本页]

作者: 闲花落地    时间: 2020-11-20 15:00
标题: 使用rga将nv12转rgb问题
本帖最后由 闲花落地 于 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图像是这样的:



作者: 闲花落地    时间: 2020-11-20 16:12
使用自带的im2d转换出的nv12图片也有问题

作者: jefferyzhang    时间: 2020-11-22 12:12
什么板子? 这个看过去是驱动问题
作者: 闲花落地    时间: 2020-11-23 16:55
jefferyzhang 发表于 2020-11-22 12:12
什么板子? 这个看过去是驱动问题

TB96AI的板子
作者: 闲花落地    时间: 2020-11-26 14:56
jefferyzhang 发表于 2020-11-22 12:12
什么板子? 这个看过去是驱动问题

哥们,驱动问题要怎么解决啊
作者: jefferyzhang    时间: 2020-11-26 15:10
闲花落地 发表于 2020-11-26 14:56
哥们,驱动问题要怎么解决啊

要等96AI的代理商来解决。
不过看过去也就是颜色反色了,nv12改nv21或者rgba改argb之类的可以试试,
一般就是驱动上的设置和rga不匹配造成的。
作者: 闲花落地    时间: 2020-11-26 15:42
jefferyzhang 发表于 2020-11-26 15:10
要等96AI的代理商来解决。
不过看过去也就是颜色反色了,nv12改nv21或者rgba改argb之类的可以试试,
一般 ...

好吧,那多谢啦
作者: xiaozhang    时间: 2020-12-8 07:17
手动nv12转nv21试试,看这样子只是uv顺序反了
作者: 闲花落地    时间: 2020-12-8 15:35
xiaozhang 发表于 2020-12-8 07:17
手动nv12转nv21试试,看这样子只是uv顺序反了

嗯嗯,已经解决了,转换的时候我传的图片格式错了




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