新手求助关于DM642做反 {MOD}实验图像有亮线

2019-07-15 19:48发布

在DM642的示例程序中加了一段进行反 {MOD}处理的代码,但是显示出来之后会有视频亮线,如果直接对整幅图像循环处理,在显示的时候图像会乱序抖动闪烁,有前辈说是因为要分奇数场和偶数场来进行处理,但是不知道缓冲区中那些行是奇数行哪些是偶数行,代码应该如何修改,求助大神,一下为部分代码

while(1){/* loop for 4 seconds */                  capFrameBuf= (FVID_Frame *)SCOM_getMsg(fromInput1toDIS, SYS_FOREVER);                   /* copy data from capture buffer to display buffer */       /***************************************************/      for(i = 0; i < numLines; i ++) {                                                      DAT_copy(capFrameBuf->frame.iFrm.y1 + i * capLinePitch,                      disFrameBuf->frame.iFrm.y1+ i * disLinePitch,                     numPixels);           DAT_copy(capFrameBuf->frame.iFrm.cb1 + i * (capLinePitch >> 1),                    disFrameBuf->frame.iFrm.cb1 + i * (disLinePitch >> 1),                     numPixels>>1);            DAT_copy(capFrameBuf->frame.iFrm.cr1 +i * (capLinePitch >> 1),                     disFrameBuf->frame.iFrm.cr1 + i * (disLinePitch >> 1),                     numPixels>>1);                                             }          //自己加的代码开始       for(i=200;i<400;i++)       {               for(j=200;j<400;j++)            {                   *(Uint8*)((Uint32)(disFrameBuf->frame.iFrm.y1)+i*numPixels+j)=0xFF-                *(Uint8*)((Uint32)(disFrameBuf->frame.iFrm.y1)+i*numPixels+j);             }             for(j=100;j<200;j++)             {                *(Uint8*)((Uint32)(disFrameBuf->frame.iFrm.cb1)+i*(numPixels>>1)+j)=0x80;                *(Uint8*)((Uint32)(disFrameBuf->frame.iFrm.cr1)+i*(numPixels>>1)+j)=0x80;              }                            }       //自己加的代码结束              /*-----------------------------------------------------------*/              /*Display the decoded frame.              */                                            /*-----------------------------------------------------------*/                DAT_wait(DAT_XFRID_WAITALL);                CACHE_clean(CACHE_L2ALL,NULL,NULL);             FVID_exchange(disChan, &disFrameBuf);

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。