您好!
我在编译DM8127 mcfw的时候,把mctnf功能给打开了,在低照下对噪声具有较好的抑制效果,但在光照条件较好的情况下,会影响清晰度,就算把所有的相关参数设置到最低,依然会影响清晰度。有没有什么好的方法手动的开启与关闭MCTNF功能(也就是白天关闭,等到晚上照度值低的时候开启)呢?
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.
您好!
我在编译DM8127 mcfw的时候,把mctnf功能给打开了,在低照下对噪声具有较好的抑制效果,但在光照条件较好的情况下,会影响清晰度,就算把所有的相关参数设置到最低,依然会影响清晰度。有没有什么好的方法手动的开启与关闭MCTNF功能(也就是白天关闭,等到晚上照度值低的时候开启)呢?
你好,
请尝试配置minWtForCurQ8=255来关闭MCTNF。
请注意MctnfLink_drvUpdateDCC(&pMctnfParam);可能会更新minWtForCurQ8参数,请确保你调用control命令配置参数时候配置了正确的值。
你好,
请问你使用的是IPNC RDK3.8么?如果是,在full feature demo里面MCTNF和VNF的使用是互斥的。MCTNF是时域降噪和其配合使用的空域降噪就是VNF里面的SNF(NSF2)。所以你说VNF里面的SNF效果很弱觉得不太可能。
我建议MCTNF和VNF的时域二选一,不需要两个都使用的。
IPNC_RDK_CFLAGS += -DVNF_BEFORE_MCTNF表示是先运行MCTNF(时域降噪)还是VNF里面的NSF2(空域降噪)。请问你出问题的代码对原始的代码做了改动么?如果有,返回默认代码是否有类似问题?
您好。我现在碰到的问题类似,同时开启了mctnf和vnf,DVNF_BEFORE_MCTNF没有开启。
现在我在切换分辨率的时候,1080P下ie画面正常,但别的分辨率比如720p会花屏,请问有可能是什么问题?
切换分辨率是给cameraLink发送CAMERA_LINK_CMD_CHANGE_RESOLUTION。
rdk版本v3.8
调了好几天了,麻烦您能提供一个思路吗,十分感谢
你好,
如果不添加MCTNF就不会出现花屏么?如果是只是VNF切换分辨率会花屏么?
建议你打印一下MCTNF的参数,看里面的长宽,pitch等是否正常?
首先感谢您的回复。
你好,
请问你关闭MCTNF的时候,VNF里面的NSF2是否有使能?VNF里面的NSF2是需要对图像做padding的。
是关闭的。
我又尝试了楼上说到的,DVNF_BEFORE_MCTNF开启之后编了一下,现象和他贴出的图是一样的。上边有一个花边。不过切换分辨率倒是不花屏了。= _ =!
Ricky,
是buffer偏移的问题。我做了一下下面的小测试,把输入MCTNF的buffer向下偏移量32行,就没有上面的花屏了。下面的测试仅限于非tiler,1920x1080的场景。
MCTNF_ProcessFrame()
/*------------------------------------------------------------------------*/
/* Assign memory pointers adn sizes for the all the input buffers */
/*------------------------------------------------------------------------*/
for(i = 0; i < MctnfChObj->gInputBufDesc.numPlanes; i++)
{
MctnfChObj->gInputBufDesc.planeDesc[i].bufSize.bytes = (XDAS_Int32)bufSize[i];
if(MctnfChObj->chCreateArgs.tilerEn)
MctnfChObj->gInputBufDesc.planeDesc[i].buf = (XDAS_Int8 *) Utils_tilerAddr2CpuAddr((UInt32)currentImageBuffer->addr[1][i]);
else
MctnfChObj->gInputBufDesc.planeDesc[i].buf = currentImageBuffer->addr[1][i];
MctnfChObj->gOutputBufDesc.planeDesc[i].memType = MctnfChObj->chCreateArgs.tilerEn ? XDM_MEMTYPE_TILED16 : XDM_MEMTYPE_RAW;
}
//add by chris for test non-tiler mode/1080p
MctnfChObj->gInputBufDesc.planeDesc[0].buf = (unsigned char *) ((unsigned int) currentImageBuffer->addr[1][0]+32*1920);
MctnfChObj->gInputBufDesc.planeDesc[1].buf = (unsigned char *) ((unsigned int) currentImageBuffer->addr[1][1]+32*1920/2);
我的理解是这两种滤波器至少部分复用了硬件模块,以及会导致内存占用导致的性能降低。所以不要同时打开使用。
譬如同一种类型的滤波,你过一次滤波器,和过两次差不多的滤波器,恐怕效果就不如预期了。