DM642视频输出有大量横线问题Word文档下载推荐.docx
《DM642视频输出有大量横线问题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DM642视频输出有大量横线问题Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。
IntnumLinesDis=EVMDM642_vDisParamsChan.imgVSizeFld1。
IntnumLinesCap=EVMDM642_vCapParamsChan.fldYStop1-
EVMDM642_vCapParamsChan.fldYStrt1+1。
IntnumLines=(numLinesDis>
numLinesCap>
?
numLinesCap:
numLinesDis。
FVID_HandlecapChan。
IntnumPixels=EVMDM642_vCapParamsChan.fldXStop1-
EVMDM642_vCapParamsChan.fldXStrt1+1。
FVID_Frame*capFrameBuf。
IntcapLinePitch=EVMDM642_vCapParamsChan.fldXStop1-
IntdisLinePitch=EVMDM642_vDisParamsChan.imgHSizeFld1。
numLines*=2。
/*bothfields*/
/******************************************************/
/*allocatebothcaptureanddisplayframebuffers
*/
/*inexternalheapmemory
EVMDM642_vCapParamsChan.segId=EXTERNALHEAP。
EVMDM642_vDisParamsChan.segId=EXTERNALHEAP。
EVMDM642_vDisParamsSAA7121.hI2C=EVMDM642_I2C_hI2C。
EVMDM642_vCapParamsSAA7115.hI2C=EVMDM642_I2C_hI2C。
/*initializationofcapturedriver
capChan=FVID_create(\"
/VP0CAPTURE/A/0\"
IOM_INPUT,&
status,(Ptr>
&
EVMDM642_vCapParamsChan,NULL>
。
/*initializationofdisplaydriver
disChan=FVID_create(\"
/VP2DISPLAY/1\"
IOM_OUTPUT,
EVMDM642_vDisParamsChan,NULL>
/*configurevideoencoder&
decoder
//FVID_control(disChan,VPORT_CMD_EDC_BASE+EDC_CONFIG,
//
(Ptr>
EVMDM642_vDisParamsSAA7121>
FVID_control(capChan,VPORT_CMD_EDC_BASE+EDC_CONFIG,
(Ptr>
EVMDM642_vCapParamsSAA7115>
/*startcapture&
displayoperation
*/
FVID_control(disChan,VPORT_CMD_START,NULL>
FVID_control(capChan,VPORT_CMD_START,NULL>
/********************************************************/
/*requestaframebufferfromdisplay&
capturedriver*/
FVID_alloc(disChan,&
disFrameBuf>
FVID_alloc(capChan,&
capFrameBuf>
frames++。
while(1>
{/*loopforever*/
/*copydatafromcapturebuffertodisplaybuffer*/
/***************************************************/
//----------------------------------------------------
//mycodestart//
for(i=0。
i<
numLines*numPixels。
i++>
{
if(*(capFrameBuf->
frame.iFrm.y1+i>
>
0x3F>
*(capFrameBuf->
=0xFF。
else
=0x00。
}
//mycodeend//
//-----------------------------------------------------
numLines。
DAT_copy(capFrameBuf->
frame.iFrm.y1+i*capLinePitch,
disFrameBuf->
frame.iFrm.y1+i*disLinePitch,
numPixels>
frame.iFrm.cb1+i*(capLinePitch>
1>
frame.iFrm.cb1+i*(disLinePitch>
1>
frame.iFrm.cr1+i*(capLinePitch>
frame.iFrm.cr1+i*(disLinePitch>
DAT_wait(DAT_XFRID_WAITALL>
FVID_exchange(capChan,&
FVID_exchange(disChan,&
frames++。
labrador2006-3-1400:
19
tryCACHE_wbAllL2(CACHE_WAIT>
afteryourcode.b5E2RGbCAP
greenwang2006-3-1414:
23
[quote][i]labrador[/i]写道:
afteryourcode.[/quote]
谢谢,效果比以前好了许多,少了很多白线,不过还是有一些黑线影响,看来得从CATHE下手。
p1EanqFDPw
whyanqing2006-3-1612:
56
我也遇到同样问题,我是在输出图像缓冲区中写字符。
能不能说具体一点在什么地方加入CACHE_wbAllL2(CACHE_WAIT>
是在输出的
FVID_exchange(disChan,&
之前吗?
添加字符后感觉字符闪烁是什么缘故?
谢谢!
DXDiTa9E3d
landiya2006-3-1616:
58
如果把字符换成图片是不是整幅图像闪烁?
labrador2006-3-1704:
44
cacheincoherency是如此造成的:
如果你写图像缓冲区之后,没有writeback,
cache里面的内容就和sdram不一致,
而videodriver使用DMA将图像缓冲区
的内容写入videoport,结果就是如此。
[quote][i]whyanqing[/i]写道:
[/quote]RTCrpUDGiT
whyanqing2006-3-1713:
06
[quote][i]landiya[/i]写道:
[/quote]
把字符换成图片是整幅图像闪烁,
我是这样作的:
1、
利用DAT_copy(capFrameBufA->
frame.iFrm.y1+k*704+352,
frame.iFrm.y1+k*disLinePitch+360,
将采集到的背景图像送到disFrameBuf中。
2、
针对
frame.iFrm.y1进行操作将字符<
或图片)叠加到
disFrameBuf中
3、
现在的现象是背景图像不闪烁,添加的字符<
或图片)闪烁,不知道是为什么?
您说是关于cache的问题,不知道该如何对cache进行操作?
5PCzVD7HxA
labrador2006-3-1723:
对图像缓冲区直接操作结束后,需要
CACHE_wbAllL2(CACHE_WAIT>
可以就在FVID_exchange之前jLBHrnAILg
dm6432006-3-2209:
45
我也遇到类似的问题。
图像有横线并且会抖动。
可是在在FVID_exchange(disChan,&
前加了CACHE_clean(CACHE_L2ALL,0,0>
和CACHE_wbAllL2(CACHE_WAIT>
没有什么改善。
具体得情况是,我是把encode和decode后得yuv格式数据得yuv分量存储在malloc开辟得三个存储区里,然后把这三个存储区得数据转换成rgb格式放入disFrameBuf中播放。
播放的图像中有横线,并且好像时画面会突然水平移动一下<
也就是可以看到画面中得图像突然出现两个相同物体),造成抖动。
另外,把decode后存在三个存储区得的yuv分量使用yuv格式播放时<
未使disFrameBuf),播放画面中有横线,但是没有抖动。
以上,请求各位帮助,不胜感激~xHAQX74J0X
qiuxin_882006-9-711:
10
[quote][i]greenwang[/i]写道:
DAT_copy(capFra