你好,
我在用DM8168,Link的架构如下所示
DEI -> Merge -> Dup -> Nsf -> Enc
我把 nsfParam[].bypassNsf = FALSE,看到nsf_Link_drv.c中有一些对nsf参数的配置
//nsfProcCfg->temporalStrength = VPS_NSF_PROCESSING_CFG_DEFAULT; //nsfProcCfg->temporalTriggerNoise = VPS_NSF_PROCESSING_CFG_DEFAULT; //nsfProcCfg->noiseIirCoeff = VPS_NSF_PROCESSING_CFG_DEFAULT; //nsfProcCfg->maxNoise = VPS_NSF_PROCESSING_CFG_DEFAULT; //nsfProcCfg->pureBlackThres = VPS_NSF_PROCESSING_CFG_DEFAULT; //nsfProcCfg->pureWhiteThres = VPS_NSF_PROCESSING_CFG_DEFAULT;
但是我发现 nsfParam[].bypassNsf = FALSE 或者 nsfParam[].bypassNsf = TRUE,也就是bypassNsf或者不bypassNsf,图像噪点没有任何变化,
请问这是什么原因?谢谢!
Chris Meng:
你好,
下面是NSF相关配置寄存器在不同去噪等级下的值,请尝试:
// Level 1 { 0x00001001u, 0x00000000u, 0x00000C0Cu, 0x14141414u, 0x0000060Bu, 0x000000ADu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, }, // Level 2 { 0x00001001u, 0x00000000u, 0x00001010u, 0x18181818u, 0x0000060Fu, 0x000000ADu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, }, // Level 3 { 0x00001001u, 0x00000000u, 0x00001212u, 0x1C1C1C1Cu, 0x00000612u, 0x000000CDu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, }, // Level 4 { 0x00001001u, 0x00000000u, 0x00001414u, 0x1E1E1E1Eu, 0x00000614u, 0x000000DDu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, }, // Level 5 { 0x00001001u, 0x00000000u, 0x00001616u, 0x20202020u, 0x00000616u, 0x000000FDu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, }, // Level 6 { 0x00001001u, 0x00000000u, 0x00001616u, 0x20202020u, 0x00000630u, 0x000000FDu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, }, // Level 7 { 0x00001001u, 0x00000000u, 0x00003030u, 0x30303030u, 0x00000630u, 0x000000FDu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, }, // Level 8 { 0x00001001u, 0x00000000u, 0x00004040u, 0x40404040u, 0x00000630u, 0x000000FDu, 0x00001616u, 0x00000000u, 0x00000000u, 0x00000000u, },
guanghui pan:
回复 Chris Meng:
你好,
请问这些寄存器要写到哪里去。我只在nsfLink_drv.c中发现了这些,但是个数对应不上,请明示,谢谢!
nsfProcCfg->frameNoiseAutoCalcEnable = (nsfProcCfg->bypassMode == VPS_NSF_DISABLE_SNF_TNF) ? FALSE : TRUE; nsfProcCfg->frameNoiseCalcReset = FALSE; nsfProcCfg->subFrameModeEnable = FALSE; nsfProcCfg->numLinesPerSubFrame = 128;
for (i = 0; i < 3; i++) { nsfProcCfg->staticFrameNoise[i] = 0; nsfProcCfg->spatialStrengthLow[i] = VPS_NSF_PROCESSING_CFG_DEFAULT; nsfProcCfg->spatialStrengthHigh[i] = VPS_NSF_PROCESSING_CFG_DEFAULT; }
nsfProcCfg->temporalStrength = VPS_NSF_PROCESSING_CFG_DEFAULT; nsfProcCfg->temporalTriggerNoise = VPS_NSF_PROCESSING_CFG_DEFAULT; nsfProcCfg->noiseIirCoeff = VPS_NSF_PROCESSING_CFG_DEFAULT; nsfProcCfg->maxNoise = VPS_NSF_PROCESSING_CFG_DEFAULT; nsfProcCfg->pureBlackThres = VPS_NSF_PROCESSING_CFG_DEFAULT; nsfProcCfg->pureWhiteThres = VPS_NSF_PROCESSING_CFG_DEFAULT;
Chris Meng:
回复 guanghui pan:
Guanghui,
请参考DVRRDK_04.01.00.02\ti_tools\device_collateral\dm816x目录下hdvpss文档里面NF的十个寄存器的地址。之前提供的就是这十个NF寄存器需要配置的不同滤波强度的值。
TI中文支持网
