各位好,
硬件:DM368+IT66121。
软件:DVSDK4.0.02
场景:采集1080i的视频。
问题:采集到的视频左侧有黑色区域,有效图像偏右。
首先猜测是SDK的内核代码中,SPH和SLVx为零,实验按照1080i的标准设置SPH值为148,SLV0和SLV1为5,但是采集到的图像仍然如此。
随后猜测是SDK中默认的V/H SYNC为负脉冲,按照1080i的标准设置改为 正脉冲,问题 依然存在。
视频文件见附件。
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.
各位好,
硬件:DM368+IT66121。
软件:DVSDK4.0.02
场景:采集1080i的视频。
问题:采集到的视频左侧有黑色区域,有效图像偏右。
首先猜测是SDK的内核代码中,SPH和SLVx为零,实验按照1080i的标准设置SPH值为148,SLV0和SLV1为5,但是采集到的图像仍然如此。
随后猜测是SDK中默认的V/H SYNC为负脉冲,按照1080i的标准设置改为 正脉冲,问题 依然存在。
视频文件见附件。
feller shi 说:首先猜测是SDK的内核代码中,SPH和SLVx为零,实验按照1080i的标准设置SPH值为148,SLV0和SLV1为5,但是采集到的图像仍然如此。
修改SPH,图像是否有变化(左右移动)? 如果有就继续调整。
1.尝试在
static void ccdc_setwin(struct v4l2_rect *image_win, enum ccdc_frmfmt frm_fmt, int ppc, int mode)
代码中,修改sph的值,图像没有变化。采集图像后读取SPH寄存器,发现始终为0。怀疑是驱动什么地方是在清零。还在定位。
2.另外,如果黑色条框的宽度/高度像素很少,可以采用下面帖子的方法通过resize图像,将黑色边框去掉。
http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/16368.aspx 与 http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/5253.aspx
但是我们的图像采集回来左侧黑色条框大约400个像素,此时采用resize后,图像明显被裁剪,而且如果V方向没有resize的话,图像明显拉宽变形。
不知道有没有什么其他办法?
谢谢
feller shi 说:1.尝试在
static void ccdc_setwin(struct v4l2_rect *image_win, enum ccdc_frmfmt frm_fmt, int ppc, int mode)代码中,修改sph的值,图像没有变化。采集图像后读取SPH寄存器,发现始终为0。怀疑是驱动什么地方是在清零。还在定位。
是的,请定位现有代码不断修改sph的地方。
之前修改同步信号的极性是否也是没有修改成功?请确认一下。
情况说明:我们测试了视频源的HD与WE信号,信号的相位/脉冲宽度都正常。与标准的要求一致。
我们的解决方法是改变HD的宽度,从实际实验来看,的确采集到的图像偏移变小。
但是,这与标准要求不一致了。
不知道有没有见过?是不是WE信号没有起作用呢?
:)谢谢
Feller,
会否是时钟,同步信号极性不匹配?
之前修改同步信号的极性是否也是没有修改成功?请确认一下。
你好,
我们尝试修改以下几个信号极性,从采集视频来看,没有效果。
.fid_pol = VPFE_PINPOL_POSITIVE, .vd_pol = VPFE_PINPOL_POSITIVE, .hd_pol = VPFE_PINPOL_POSITIVE,
然后尝试修改了EDID,将视频的参数修改,然后达到了将黑框去掉的目的。:)
谢谢
Feller,
修改了HDMI receiver的EDID信息?
孟工,您好
是的,这里描述一下我们的实验情况。首先是通过修改HDMI receiver的EDID信息中,供摄像头获取的720p最佳输出时序部分(字节序0x36-0x47),
HSYNC的宽度改为原始宽度加上back porch,即从40改到260,但是HDMI receiver无法识别图像。HSYNC的宽度改为259,于是DM368获取到的图像
就不再有左侧的黑边了。
实验的情况说明图像的水平起始像素在和同步脉冲的右肩位置相关,似乎是WE信号无效。随后我们恢复EDID为标准时序,尝试修改内核代码dm365_ccdc.c的ccdc_config_ycbcr函数,修改如下:
modeset = modeset | ((params->pix_fmt & CCDC_INPUT_MASK)
<< CCDC_INPUT_SHIFT) |
((0 & CCDC_FRM_FMT_MASK) << CCDC_FRM_FMT_SHIFT) |
(((params->fid_pol & CCDC_FID_POL_MASK) << CCDC_FID_POL_SHIFT)) |
(((0 & CCDC_HD_POL_MASK) << CCDC_HD_POL_SHIFT)) |
(((0 & CCDC_VD_POL_MASK) << CCDC_VD_POL_SHIFT))| 0x20;
原始为
/* configure pixel format or input mode */
modeset = modeset | ((params->pix_fmt & CCDC_INPUT_MASK)
<< CCDC_INPUT_SHIFT) |
((params->frm_fmt & CCDC_FRM_FMT_MASK) << CCDC_FRM_FMT_SHIFT) |
(((params->fid_pol & CCDC_FID_POL_MASK) << CCDC_FID_POL_SHIFT)) |
(((params->hd_pol & CCDC_HD_POL_MASK) << CCDC_HD_POL_SHIFT)) |
(((params->vd_pol & CCDC_VD_POL_MASK) << CCDC_VD_POL_SHIFT));