TIwilliam hill官网
直播中

张丽娟

7年用户 206经验值
私信 关注
[问答]

A8送入yuv420sp的1080P的数据到VideoM3 进行jpeg编码后,然后在传到A8,发现图像有问题,图像是绿的;

A8送入yuv420sp的1080P的数据到VideoM3 进行jpeg编码后,然后在传到A8,发现图像有问题,图像是绿的,将jpeg从工具在转换到yuv420sp,用yuv工具看,发现Y分量是正确的,UV分量有问题;哪位高手帮忙看下;

link的流程如下:
A8--->IpcFramesOutLink-->videoM3(jpeg编码)->A8
建IpcFramesOutLink的代码如下,link建好后,调用IpcFramesOutLink_putFullVideoFrames 将yuv420sp的数据送入到IpcFramesOutLink:
  A8SysLinkInfo.numCh = 1;
        A8SysLinkInfo.chInfo[0].bufType = SYSTEM_BUF_TYPE_VIDFRAME;//0;
        A8SysLinkInfo.chInfo[0].codingformat = 0;
        A8SysLinkInfo.chInfo[0].dataFormat = SYSTEM_DF_YUV420SP_UV;
        A8SysLinkInfo.chInfo[0].memType = SYSTEM_MT_NONtiLEDMEM;//0;
        A8SysLinkInfo.chInfo[0].startX = 0;
        A8SysLinkInfo.chInfo[0].startY = 0;
        A8SysLinkInfo.chInfo[0].width = g_ImageWidth;  //1920
        A8SysLinkInfo.chInfo[0].height = g_ImageHeight;  //1080
        A8SysLinkInfo.chInfo[0].scanFormat = SYSTEM_SF_PROGRESSIVE;//1;
        A8SysLinkInfo.chInfo[0].pitch[0] = g_ImageWidth;
        A8SysLinkInfo.chInfo[0].pitch[1] = g_ImageWidth;
        A8SysLinkInfo.chInfo[0].pitch[2] = 0;
  
   //link1
        create_host_frameout_link(ipcFramesOutHostId, ipcFramesInVideoId, A8SysLinkInfo);
 
create_host_frameout_link函数如下: 
  
void create_host_frameout_link(UInt32 ipcFramesOutHostId,  UInt32 nextLinkId,System_LinkQueInfo  queInfo)
[
        IpcFramesOutLinkHLOS_CreateParams  ipcFramesOutHostPrm;
        MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams ,ipcFramesOutHostPrm);
        ipcFramesOutHostPrm.baseCreateParams.noNotifyMode = FALSE;
        ipcFramesOutHostPrm.baseCreateParams.notifyNextLink = TRUE;
        ipcFramesOutHostPrm.baseCreateParams.notifyPrevLink = FALSE;
        ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkId = SYSTEM_LINK_ID_INVALID;
        ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcFramesOutHostPrm.baseCreateParams.outQueParams[0].nextLink = nextLinkId;
  
        ipcFramesOutHostPrm.baseCreateParams.numOutQue=1;
        ipcFramesOutHostPrm.baseCreateParams.notifyProcessLink=FALSE;
        ipcFramesOutHostPrm.cbFxn = rdk_frames_out_cbfxn;
        ipcFramesOutHostPrm.cbCtx = NULL;
        gVdisModuleContext.ipcFramesOutHostId = ipcFramesOutHostId;
        ipcFramesOutHostPrm.inQueInfo = queInfo ;
        System_linkCreate(ipcFramesOutHostId, &ipcFramesOutHostPrm, sizeof(ipcFramesOutHostPrm));
]

回帖(4)

张丽娟

2018-5-31 00:51:19
是不是哪个参数没有没有设置对呢,还是数据哪个没有对齐吗;
videoM3打印的日志:
ENCODE: Create CH0 of 1920*1080 ,pitch=(1920,1920) [PROGRESSIVE] [NON-TILED]
举报

刘颖

2018-5-31 00:58:04
引用: 送终鸡酒 发表于 2018-5-31 00:51
是不是哪个参数没有没有设置对呢,还是数据哪个没有对齐吗;
videoM3打印的日志:
ENCODE: Create CH0 of 1920*1080 ,pitch=(1920,1920)  [NON-TILED]

图像偏绿,UV的值应该是全0,有没有检查过在送进编码器之前的UV值,是否正确?
举报

张丽娟

2018-5-31 01:07:54
引用: cmh8 发表于 2018-5-31 00:58
图像偏绿,UV的值应该是全0,有没有检查过在送进编码器之前的UV值,是否正确?

UV的值不是0,我用yuv工具送入videoM3前的yuv420sp的数据是正确的;
举报

张丽娟

2018-5-31 01:23:53
引用: 送终鸡酒 发表于 2018-5-31 01:07
UV的值不是0,我用yuv工具送入videoM3前的yuv420sp的数据是正确的;

问题解决了,是送到videoM3时,没有对第2个通道的addr,phyAddr地址进行赋值;
举报

更多回帖

发帖
×
20
完善资料,
赚取积分