用户您好,请详细描述您所遇到的问题:
需求背景:使用J3平台接入的相机,采集了NV12格式的图像(1920*1080)信息,并通过网络传输给其他应用进行图像应用,如果直接传输NV12格式的图像信息,一帧图像大约3MB,网络带宽占用较大,出现严重丢帧。经过调研,希望使用J3平台支持的MeidaCodec模块,将NV12编码为JPG格式图像机进行传输(JPG格式的图像一帧500KB以内),降低了网络带宽,并满足帧率要求,接收端进行JPG解码为NV12后进行图像应用解析。
系统软件版本:x3j3_lnx_db_20221121 debug
问题涉及的技术领域: MeidaCodec图像编解码
问题描述:参考了SDK中PlatformSDK/unittest/testapp/multimedia_test中的示例,NV12转JPG,以及JPG转NV12相关的示例,直接使用NV12格式的图像帧数据,media_codec_context_t进行NV12编码为JPG,接收端使用JPG文件数据内容给media_codec_context_t进行解码,没有按示例中通过读写文件进行验证,但是相关编解码参数一致。出现的问题是,NV12编码JPG时,图像正常,但是JPG解码为NV12时,图像成图时颜色空间与灰度空间错位。具体可看附件中的图像和代码。
NV12编码为正常的JPG图像(部分截图):

JPG解码为NV12,成图后出现颜色空间错位图像(部分截图):

复现概率:(必现) 已进行的排查措施、分析及结果:
NV12编码为JPG时,设置external_frame_buf为true;
JPG解码为NV12时,设置external_bitstream_buf为true,gs_pAvpacket->size = static_cast<int>(stCodecInfo.ui32JPGDataLen);
gs_pAvpacket->data = stCodecInfo.pJPGData;等;
提供必要的问题日志: 无
软件上是否有做自定义修改:无




