强大的TI专家您好:
DM36x-Image/Video Tuning Tool工具调试摄像头LDC桶型失真现象,修改源码,但是图像没有变化;
现在通过手动调试生成了ldc_config.c 文件;文件中包含了ldcTable项。
我修改了如下文件中的如下参数,
①已经将ldc使能开关打开:
IPNC_RDK_V3.8.0.1/Source/ipnc_rdk/ipnc_mcfw/demos/mcfw_api_demos/multich_usecase/ti_mcfw_ipnc_main.c
gUI_mcfw_config.ldcEnable = TRUE; //改为了ture;
//gUI_mcfw_config.ldcEnable = FALSE;
②将ldc_config.c 中的值添写在了
IPNC_RDK_V3.8.0.1/Source/ipnc_rdk/ipnc_mcfw/mcfw/src_bios6/links_m3vpss/vnf/vnfLink_vnf.c文件中:
因为没有找到vnf_ldc_lut_0,自定义了vnf_ldc_lut_1;
//extern const MSP_U16 vnf_ldc_lut_0[]; const MSP_U16 vnf_ldc_lut_1[] = { 0, 9687, 9627, 9581, 9542, 9508, 9477, 9448,
9422, 9397, 9373, 9351, 9330, 9309, 9289, 9270,
。。。。。。。。。。。。。
/**
* 部分数据,此处的数据就是ldc_config.c 中的ldcTable中的数据;
*/
9252, 9234, 9217, 9200, 9184, 9168, 9152, 9137,
};
将这些值都做了直接修改;
=================修改2==vnfLink_vnf.c==============
ldc_params->tStartXY.unStartX = 0;
ldc_params->tStartXY.unStartY = 0;
lens_distortion_params->unLensCentreX = 540;//@wsxingjun 17-01-16 lens_distortion_params->unLensCentreY = 960; //@wsxingjun 17-01-16
#if 1
lut_params->unLdcKhl = 189; lut_params->unLdcKhr = 189; lut_params->unLdcKvl = 189; lut_params->unLdcKvu = 189; lut_params->unLdcRth = 2046; lut_params->ucRightShiftBits = 15; lut_params->punLdcLutTable = (MSP_U16 *) vnf_ldc_lut_1; //直接写为vnf_ldc_lut_1
#endif ===============修改3===vnfLink_vnf.c===========
if (!params->bLdcEn)
//lut_params->punLdcLutTable = (MSP_U16 *) vnf_ldc_lut_0;
lut_params->punLdcLutTable = (MSP_U16 *) vnf_ldc_lut_1; else
//lut_params->punLdcLutTable = (MSP_U16 *) vnf_ldc_lut_tamron;
lut_params->punLdcLutTable = (MSP_U16 *) vnf_ldc_lut_1;
将整个项目源码编译重写烧写,但是没有变化;
请问:
【1】怎样使用调试工具生成的ldc_config.c 文件呢?
【2】修改源码中哪些文件的哪些参数才能将LDC调试现象体现出来?
Chris Meng:
Zhang Ziyi,
请问你是否有修改模式为VNF_LINK_LDC?
请问你是否有阅读过文档LDC_VNF_UserGuide.pdf?
ziyi zhang:
回复 Chris Meng:
Chris Men 您好:
在源码中找到的是:
① vnfLink_drv.c (ipnc_mcfw\mcfw\src_bios6\links_m3vpss\vnf):
if ((chCreateParams->sParams.eOperateMode == VNF_LINK_LDC) ||(chCreateParams->sParams.eOperateMode == VNF_LINK_LDC_TNF) ||(chCreateParams->sParams.eOperateMode == VNF_LINK_LDC_AFFINE_NSF_TNF))chVnfCreateParams->bLdcEn = MSP_TRUE; elsechVnfCreateParams->bLdcEn = MSP_FALSE;② vnfLink.h (ipnc_mcfw\mcfw\interfaces\link_api):
typedef enum { VNF_LINK_LDC_AFFINE_NSF_TNF = 0, VNF_LINK_AFFINE_NSF_TNF = 1, VNF_LINK_TNF = 2, VNF_LINK_3DNF = 3, VNF_LINK_LDC_TNF = 4, VNF_LINK_LDC = 5,/* 此处是对操作模式中的枚举定义*/ VNF_LINK_TNF3 = 6, VNF_LINK_NSF2 = 7 } VNF_LINK_OPERATION_MODE;请问在哪里修改模式为VNF_LINK_LDC模式呢?
Chris Meng:
回复 ziyi zhang:
Zhang Ziyi,
请查看\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\usecases\multich_tristream_fullfeature.c
if (gUI_mcfw_config.ldcEnable) { vnfParams->sParams.eOperateMode = VNF_LINK_LDC_AFFINE_NSF_TNF; } else {#ifdef USE_TNF2_FILTER vnfParams->sParams.eOperateMode = VNF_LINK_3DNF;#elif defined (USE_TNF3_FILTER) vnfParams->sParams.eOperateMode = VNF_LINK_TNF3;#ifdef USE_MCTNF //LK- to check TNF3/MCTNF by controlling enable/disable from DCC tool vnfParams->sParams.eOperateMode = VNF_LINK_NSF2;#endif#else vnfParams->sParams.eOperateMode = VNF_LINK_AFFINE_NSF_TNF;#endif vnfParams->sParams.eNsfSet = VNF_LINK_NSF_LUMA_CHROMA; }
ziyi zhang:
回复 Chris Meng:
Chris Meng,
请问在\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\usecases\multich_tristream_fullfeature.c
需要修改哪个参数可以打开VNF_LINK_LDC呢?