使用CPIS_colorSpcConv做YUV422I转RGB遇到颜色不对问题,麻烦帮忙看一下。
//VICP参数初始化
SpacConvBase->srcFormat[0] = CPIS_YUV_422ILE; //原数据格式
SpacConvBase->srcFormat[1] = CPIS_YUV_422ILE; //原数据格式
SpacConvBase->srcFormat[2] = CPIS_YUV_422ILE; //原数据格式
SpacConvBase->srcBuf[0].ptr = pSrc; //源数据地址
SpacConvBase->srcBuf[0].stride = width; //源数据
SpacConvBase->dstFormat[0] = CPIS_RGB_P;
SpacConvBase->dstFormat[1] = CPIS_RGB_P;
SpacConvBase->dstFormat[2] = CPIS_RGB_P;
SpacConvBase->dstBuf[0].ptr = pDst;
SpacConvBase->dstBuf[0].stride = width;
SpacConvBase->dstBuf[1].ptr = pDst + width*height;
SpacConvBase->dstBuf[1].stride = width;
SpacConvBase->dstBuf[2].ptr = pDst + 2*width*height;
SpacConvBase->dstBuf[2].stride = width;
SpacConvBase->roiSize.width = width;
SpacConvBase->roiSize.height = height;
SpacConvBase->procBlockSize.width = 32;
SpacConvBase->procBlockSize.height = 16;
SpacConvBase->numInput = (width * height);
SpacConvBase->numOutput = (width * height);
for (i=0;i<9;i++)
SpacConvParams->matrix[i]= (Int16)(yuv2rgbf[i]*32768.0);
SpacConvParams->qShift = 15;
SpacConvParams->preOffset[0] = 0;
SpacConvParams->preOffset[1] = -128;
SpacConvParams->preOffset[2] = -128;
SpacConvParams->postOffset[0] = 0;
SpacConvParams->postOffset[1] = 0;
SpacConvParams->postOffset[2] = 0;
SpacConvParams->signedInput[0] = 0;
SpacConvParams->signedInput[1] = 1;
SpacConvParams->signedInput[2] = 1;
SpacConvParams->signedOutput[0] = 0;
SpacConvParams->signedOutput[1] = 0;
SpacConvParams->signedOutput[2] = 0;
SpacConvParams->colorDsMode = CPIS_DS_NONE;
iStatus = CPIS_colorSpcConv(
SpacConvHandle,
SpacConvBase,
SpacConvParams,
ExecType
);
输入pSrc数据源第一个数据为Y1,这样输出图片颜色不对 ,尝试修改为U1也不对。