Toybrick

RGA从解码出来的NV12转换到BGR格式后,发现明显颜色不对

whx_huxin

注册会员

积分
115
楼主
发表于 2020-10-16 13:42:47    查看: 7183|回复: 3 | [复制链接]    打印 | 只看该作者
本帖最后由 whx_huxin 于 2020-10-16 13:44 编辑

在成功硬件解码一路RTSP H264流后,调用FFMPEG sws_scale可成功完成到BGR的格式转换,转换后的BGR帧正常,但是A72 单核CPU占用率高达90%,时延达到85ms一帧,为了降低CPU占用率和时延,替换FFMPEG代码为下面RGA代码,发现转换出来的BGR帧明显颜色不对(请看附件chn0-0-RGA.jpg),不知道问题出来哪里,感觉是RGA库存在问题(基于samples-toybrick-rga-master.zip编译的静态库),麻烦答复确认:               
{
                        RockchipRga *rga = RgaCreate();
                        if (!rga)
                        {
                            IPC_LOG_ERR(pstHandle->iChannelIndex,"create rga failed (FrameIndex=%u)!\n",pstHandle->uiFrameIndex);
                                iRet = IPC_ERRCODE_NOK;
                                goto failed;
                        }
                        rga->ops->initCtx(rga);
                        rga->ops->setSrcFormat(rga, V4L2_PIX_FMT_NV12, width, height);  //注意图像格式需要用RGA本身的枚举RockchipRgaCheckFormat
                        rga->ops->setDstFormat(rga, V4L2_PIX_FMT_BGR24, pstImage->uiWidth, pstImage->uiHeight);

                        rga->ops->setSrcBufferPtr(rga, base);
                        rga->ops->setDstBufferPtr(rga, (RK_U8 *)pstImage->ulAddr_virt);

                        rga->ops->go(rga);               
                        RgaDestroy(rga);
                }

本帖子中包含更多资源

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

x
回复

使用道具 举报

jefferyzhang

版主

积分
12937
沙发
发表于 2020-10-17 11:51:36 | 只看该作者
你这个是UV反了,请把NV12改成NV21就好了。
这个UV反了的最新的kernel应该是和最新的rga库匹配的,除非你kernel是旧的,rga库是新的可能会出这个问题。
回复

使用道具 举报

whx_huxin

注册会员

积分
115
板凳
 楼主| 发表于 2020-10-19 09:25:01 | 只看该作者
谢谢。换成NV21后,rga运行直接报错,因为rga里面检查不支持NV21格式,我先刷新一下kernel吧
回复

使用道具 举报

whx_huxin

注册会员

积分
115
地板
 楼主| 发表于 2020-10-26 11:17:39 | 只看该作者
不使用samples-toybrick-rga-master.zip编译的静态库,切换为使用单板自带的librga.so库(/usr/lib),这个问题已经解决,尺寸和格式转换后颜色正常,单路解码和转换时延没有问题
回复

使用道具 举报

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

本版积分规则

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


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