大家好!
现在正在用dm385做一个项目,前端输入是YUV4:2:2的1920*1080的图像,时钟为74.25MHz。时序图如下:

——————————————————————————————————————————————————
DM385的型号是:DM385AAARD21F,DM385的ARM、HDVICP、CORE的电压都是1.35V,DDR3也是用的1.35V的DDR3L,时钟为533MHz。
使用的rdk版本是ipnc rdk 3.8.0,是在MN34041基础上修改的。按照full_feature进行的编译。
代码做了如下修改:
在cameraLink_drv.c中添加:
pVipCreateArgs->inFmt.dataFormat = FVID2_DF_YUV422SP_UV;
pVipCreateArgs->videoIfMode = ISS_CAPT_YUV_16BIT;
在issdrv_captureApi.c中添加:
ipipeif_reg->CFG2 = 0x08;
ipipe_reg->SRC_FMT = 0x03;
ipipe_reg->SRC_HPS = 192;
ipipe_reg->SRC_VPS = 41;
isif_reg->MODESET = 1000;
isif_reg->SPH = 192;
isif_reg->SLV0 = 41;
isif_reg->SLV1 = 41;
isif_reg->CLDCOFST = 0;
isif_reg->SYNCEN = 0x1;
其余的都是按照mn34041的demo来的,没有做什么修改
——————————————————————————————————————————————————
当在镜头前晃动物体的时候(或者晃动相机),通过网页或者vlc查看图像的时候,发现图像有问题,于是采用dcc分别采集raw和yuv的图像,发现raw的图像的问题是:修改vdint0的大小,图像会出现分层,vdint越大,中间的分割线越往下。
vdint0=100时,如下图:

vdint=1000时,如下图:

yuv的图像就跟严重了,如下图:

现在不知道这个问题到底出在什么地方?一开始怀疑ddr3的频率不够,不过通过示波器测试ddr3的时钟的确是533Mhz。检测电压也一直很稳定。目前不知道该从何入手?希望大家给提供一些建议。
Chris Meng:
PSC当在镜头前晃动物体的时候(或者晃动相机),通过网页或者vlc查看图像的时候,发现图像有问题
请问这时候的问题和抓取的raw数据的问题是一样的么?
vint的值一般设置是图像高度-5.
PSC:
回复 Chris Meng:
你好!
当我把vdint设置为1075的时候,用dcc采集的raw数据,只有1036行,而且1036行并没有采集完,只有1087个点,原始的bmp都在上传到附件里面了,后面的数据全部都是80h。
通过vlc将看到的图像我录像了,下一个帖子传上了,从视频中可以看到,当在镜头前晃动手的时候,图像中间会出现分层的情况。有时候还会出现花屏。所以就采集的yuv的数据,yuv的效果请看我发的第一个帖子。
PSC:
回复 Chris Meng:
录制的视频在附件中。
屏幕截图的效果如下:
前面帖子里贴出来的dcc采集出来的这样的yuv的图像应该是不正常的吧?
Chris Meng:
回复 PSC:
你好,
请问你是否有尝试修改过VSYNC的极性,看是否有改善。
下面的文章不知道你看过没有?
《DM368 视频前端信号采集详解》- 该文对理解DM8127/DM38x的并口采集也有帮助http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/70099.aspx
PSC:
回复 Chris Meng:
你好!
后来发现图像其实是ok的,由于我主机装的是ubuntu系统,更换了n卡的驱动,web和vlc显示就没有问题了。
但是为什么dcc采集的yuv数据是这个样子的,就真不知道了呀,莫非itt_server在传输数据的时候,buffer被别的线程/link给重新覆盖了么?
TI中文支持网


