DM8127+tvp5150,采集红外相机的PAL信号,红外相机的分辨率为720*576,有效像素是640*480,也就是说四周会有黑边。
开发包为rdk3.5,如果把tvp5150设置为黑屏模式,采集结果如下:
如果对着台灯拍,采集结果如下:
在matlab中,把采集的图像进行处理,把分辨率设为736*564,得到的连续3帧图像如下:
请问,这是什么原因啊?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
DM8127+tvp5150,采集红外相机的PAL信号,红外相机的分辨率为720*576,有效像素是640*480,也就是说四周会有黑边。
开发包为rdk3.5,如果把tvp5150设置为黑屏模式,采集结果如下:
如果对着台灯拍,采集结果如下:
在matlab中,把采集的图像进行处理,把分辨率设为736*564,得到的连续3帧图像如下:
请问,这是什么原因啊?
应用程序以/opt/ipnc/Source/ipnc_rdk/ipnc_mcfw/mcfw/src_linux/mcfw_api/usecases/multich_encode_decode.c为基础进行例程的修改,captureLink参数设置如下:
CaptureLink_CreateParams capturePrm;
capturePrm.numVipInst = 1;
capturePrm.outQueParams[0].nextLink = gIpcFramesOutVpssToHostId;
capturePrm.tilerEnable = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.numBufsPerCh = 6;
capturePrm.numExtraBufs = 0;
capturePrm.fakeHdMode = FALSE;
capturePrm.doCropInCapture = FALSE;
capturePrm.isPalMode = Vcap_isPalMode();
for(i=0; i<capturePrm.numVipInst; i++)
{
pCaptureInstPrm = &capturePrm.vipInst[i];////
pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP5150_DRV;
//added by qiu
capturePrm.numVipInst = 1;
//capturePrm.outQueParams[0].nextLink = gIpcOutVpssId;
capturePrm.outQueParams[0].nextLink = gIpcFramesOutVpssToHostId;
capturePrm.tilerEnable = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.numBufsPerCh = 6;
capturePrm.numExtraBufs = 0;
capturePrm.fakeHdMode = FALSE;
capturePrm.doCropInCapture = FALSE;
capturePrm.isPalMode = Vcap_isPalMode();
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = SYSTEM_STD_D1;
pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[i];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
}
/opt/ipnc/Source/ipnc_rdk/ipnc_mcfw/mcfw/src_bios6/links_m3vpss/capture/captureLink_drv.c中的设置为
pVipCreateArgs->videoCaptureMode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
pVipCreateArgs->videoIfMode = VPS_CAPT_VIDEO_IF_MODE_8BIT;
调试发现,原来是在/opt/ipnc/Source/ipnc_rdk/ipnc_mcfw/mcfw/src_bios6/links_m3vpss/capture/captureLink_drv.c中用VPS_BUFFER_ALIGNMENT=16进行了对齐,改掉对齐就好了:
/* Create capture driver */
Int32 CaptureLink_drvCreateInst(CaptureLink_Obj * pObj, UInt16 instId)
{
//pVipOutPrm->pitch[0] =
//VpsUtils_align(pObj->maxWidth, VPS_BUFFER_ALIGNMENT * 2);
pVipOutPrm->pitch[0] = pObj->maxWidth ;
}