我使用Dm368连接摄像头进行视频采集,摄像头输出为YUV16bit信号,现在出现个问题,采集到的图形左侧有16个像素左右的黑边,我是用的是Dvsdk4.02. 无论使用1080P、720P、还是D1都存在同样问题,并且黑边宽度不便,请问这是VPFE的配置问题吗,该如何设置?
peter li1:
回复 Changhui Liu:
你好,我现在遇到的问题,是图像右边有8个像素的黑边,这个就不能像你上面说的方法来解决了。
请问,你有什么建议吗?
Tuff Li:
回复 peter li1:
用示波器抓一下水平同步信号, 算一下水平方向有效点数, 看看你的寄存器设置是否正确
peter li1:
回复 Tuff Li:
你好,机芯是sony的1080P的摄像机,水平方向有效点数应该是1080。
peter li1:
回复 peter li1:
不好意思,水平方向有效点数是1920,这个我跟厂家那边已经确认过了。
Tuff Li:
回复 peter li1:
用示波器抓一下, HD同步头之间的宽度/pixel clock freq应该等于输出的有效像素数, 看看你设置的是多少?
另外一个,VPFE 4.2.1的图表已经很清楚了,你看看相关的寄存器
peter li1:
回复 Tuff Li:
Tuff,你好。我采集到的1080P的图像,最上边有48个像素的黑边。
我在ccdc_setwin 里面设置了 image_win->top = 48;
然后后面有设置寄存器
regw(vert_start & START_VER_ONE_MASK, SLV0);
regw(vert_start & START_VER_TWO_MASK, SLV1);
但是图像还是有黑边,没有任何变化。请问要如何设置才能生效?
我在设置寄存器之前 调用了ccdc_enable(0);
最后再调用ccdc_enable(1);
但是还是无效。
peter li1:
回复 peter li1:
今天我仔细阅读了代码,发现直接修改ccdc_setwin ,和在应用层设置capture的crop是一样的。
cAttrs.cropX= 0;
cAttrs.cropY= 48;
cAttrs.cropWidth= envp->imageWidth;
cAttrs.cropHeight= envp->imageHeight-48;
hCapture = Capture_create(hBufTab, &cAttrs);
ioctl(hCapture->fd, VIDIOC_S_CROP, &crop) 最终会调用到set_image_window(&crop->c);
所以我的问题跟这个帖子是一回事
www.deyisupport.com/…/5504.aspx
我现在的问题是,我从tvp7002得到的有效像素就是1920X1080的,最上边有黑边,我要是裁剪掉上边的黑边,那么整个图像就要上下拉伸,就会变形。
公司没有高级点的示波器之类的设备,没办法进行数字分析,只好看大家有什么能帮到我的了。
Yongfa Chen:
回复 peter li1:
这是行同步位置的问题,行同步的后肩比设置的后肩像素偏大,将无效数据记录下来了就是这个样子的。