[DESCRIPTION]


针对MT657X和MT6589平台上 Color shading 严重的问题,在MT6582之后的chip上导入了TSF 功能。主要用来改善Color shading问题。


[SOLUTION]


1:如何进入工程模式。在拨号界面输入” *#*#3646633#*#* ”(默认密码)。如果客户有修改进入工程模式输入正确的密码。进入工程模式。选择ISO100, Pure Raw, Capture size 。






如果是AF项目,拍摄RawData 时指定AF的Step。


参考如下操作进行:


(1)AF页面选取Through Focus Dump选项。






(2) 在Through Focus Dump选项中选择子选项Manual configure。






(3) Start position和End position填入指定的Step (找模组厂确认一下这个项目使用的远景3M左右的Step 为 A ,近景10cm左右的Step为B, 则指定的Step为C=(B+A)/2。或者可以使用fullScan自行测试A和B的数值,再计算出C的数值。下面的例子是A为200,B为900,则 指定位置为550 Step拍摄PureRawData) (使用CCT Gen色温的Previewshading时,请使用MF方式指定550Step做高色温Preview的Calibration)。






(4) 选择Start Preview拍照。






2:提供TSF调试需要的RawData案。


按照第一步的要求进入工程模式, 加上毛玻璃拍摄D65, DNP, CWF, TL84, Alight这五个光源下的PureRawData。为了排除A light的 Banding影响,需要加上ND Filter。


为了使做出来的shading Cover度更高,建议同时提供如下这些色温下加上毛玻璃后的PureRawData。


Sun (加上毛玻璃正对着正午太阳)


Sky(加上毛玻璃正对着没有白云的蓝天)


DF光源(5500K色温)


Horizon光源


D50光源(5000K色温)


D75光源(7500K色温)


假设A light 抓取到的 RawData 命名是Capture04000150ISOAuto__2592x1944_10_0.raw,则重命名为如下格式:


g-A__2592x1944_10_0.raw 蓝色字体 根据不同光源来命名。比如 CWF, D65, DNP 光源下的PureRawData被依次重新命名为: g-CWF__2592x1944_10_0.raw, gD65__2592x1944_10_0.raw , g-DNP__2592x1944_10_0.raw, 其它光源下的相类似。


3:提供GoldSimple和LimitSimple的PureRawData。


Golden Simple和Limit Simple的挑选,请参考FAQ11709。


Gold Simple参考上面的命名为g-CWF__2592x1944_10_0.raw或GoldenCWF__2592x1944_10_0.raw。 Limit Simple模组请命名为 UnitCWF__2592x1944_10_0.raw或u-CWF__2592x1944_10_0.raw。如果该模组有烧录OTP,请提交CR时 同步告知。


4:将上面重新命名后的RawData通过CR提供给贵司对应的Tuning Owner,做TSF的Calibration或者提供给Sensor FAE 直接去我司的lab做TSF的Calibration。生成生成camera_tsf_data.h和camera_tsf_para.h 件。


5:通过CR提供PureRawData的同时,请在CR上同步告知 Sensor 是那一颗?目前使用的OB值是多少?


6:根据Hal目录下对应Sensor使用的camera_info_XXXX.h 文件参考如下命名格式


#define INCLUDE_FILENAME_TSF_PARA "camera_tsf_para_XXXX.h"


#define INCLUDE_FILENAME_TSF_DATA "camera_tsf_data_XXXX.h"


将camera_tsf_data.h 和camera_tsf_para.h 文件 ReName 成该sensor 对应的TSF 文件。


7:对于95之前的Chip,请确认camera_tuning_para_XXXX.cpp 档案中有无增加如下TSF的相关文件导入?


const CAMERA_TSF_TBL_STRUCT CAMERA_TSF_DEFAULT_VALUE =

{

#include INCLUDE_FILENAME_TSF_PARA

#include INCLUDE_FILENAME_TSF_DATA

};

impGetDefaultData(CAMERA_DATA_TYPE_ENUM const CameraDataType, VOID*const

pDataBuf, UINT32 const size) const

{

UINT32 dataSize[CAMERA_DATA_TYPE_NUM] =

{sizeof(NVRAM_CAMERA_ISP_PARAM_STRUCT),

sizeof(NVRAM_CAMERA_3A_STRUCT),

sizeof(NVRAM_CAMERA_SHADING_STRUCT),

sizeof(NVRAM_LENS_PARA_STRUCT),

sizeof(AE_PLINETABLE_T),

0,

sizeof(CAMERA_TSF_TBL_STRUCT)};

if (CameraDataType > CAMERA_DATA_TSF_TABLE || NULL == pDataBuf || (size <dataSize[CameraDataType]))

{

return 1;

}

switch(CameraDataType)

{

case CAMERA_NVRAM_DATA_ISP:

memcpy(pDataBuf,&CAMERA_ISP_DEFAULT_VALUE,sizeof(NVRAM_CAMERA_ISP_PARAM_STRUCT));

break;

case CAMERA_NVRAM_DATA_3A:

memcpy(pDataBuf,&CAMERA_3A_NVRAM_DEFAULT_VALUE,sizeof(NVRAM_CAMERA_3A_STRUCT));

break;

case CAMERA_NVRAM_DATA_SHADING:

memcpy(pDataBuf,&CAMERA_SHADING_DEFAULT_VALUE,sizeof(NVRAM_CAMERA_SHADING_STRUCT));

break;

case CAMERA_DATA_AE_PLINETABLE:

memcpy(pDataBuf,&g_PlineTableMapping,sizeof(AE_PLINETABLE_T));

break;

case CAMERA_DATA_TSF_TABLE:

memcpy(pDataBuf,&CAMERA_TSF_DEFAULT_VALUE,sizeof(CAMERA_TSF_TBL_STRUCT));

break;

default:

break;

}

return 0;[/code]95 之后的平台已默认添加导入TSF相关文件代码块

[code]const CAMERA_TSF_TBL_STRUCT CAMERA_TSF_DEFAULT_VALUE =

{ {

1, // isTsfEn

2, // tsfCtIdx

{20, 2000, -110, -110, 512, 512, 512, 0} // rAWBInput[8]

},

#include INCLUDE_FILENAME_TSF_PARA

#include INCLUDE_FILENAME_TSF_DATA

};

typedef NSFeature::RAWSensorInfo<SENSOR_ID> SensorInfoSingleton_T;

namespace NSFeature {

template <>

UINT32

SensorInfoSingleton_T::

impGetDefaultData(CAMERA_DATA_TYPE_ENUM const CameraDataType, VOID*const

pDataBuf, UINT32 const size) const

{

UINT32 dataSize[CAMERA_DATA_TYPE_NUM] =

{sizeof(NVRAM_CAMERA_ISP_PARAM_STRUCT),

sizeof(NVRAM_CAMERA_3A_STRUCT),

sizeof(NVRAM_CAMERA_SHADING_STRUCT),

sizeof(NVRAM_LENS_PARA_STRUCT),

sizeof(AE_PLINETABLE_T),

0,

sizeof(CAMERA_TSF_TBL_STRUCT),

0,

sizeof(NVRAM_CAMERA_FEATURE_STRUCT)

};

if (CameraDataType > CAMERA_NVRAM_DATA_FEATURE || NULL == pDataBuf ||

(size < dataSize[CameraDataType]))

{

return 1;

}

switch(CameraDataType)

{

case CAMERA_NVRAM_DATA_ISP:

memcpy(pDataBuf,&CAMERA_ISP_DEFAULT_VALUE,sizeof(NVRAM_CAMERA_ISP_PARAM_ST

RUCT));

break;

case CAMERA_NVRAM_DATA_3A:

memcpy(pDataBuf,&CAMERA_3A_NVRAM_DEFAULT_VALUE,sizeof(NVRAM_CAMERA_3A_STRU

CT));

break;

case CAMERA_NVRAM_DATA_SHADING:

memcpy(pDataBuf,&CAMERA_SHADING_DEFAULT_VALUE,sizeof(NVRAM_CAMERA_SHADING_

STRUCT));

break;

case CAMERA_DATA_AE_PLINETABLE:

memcpy(pDataBuf,&g_PlineTableMapping,sizeof(AE_PLINETABLE_T));

break;

case CAMERA_DATA_TSF_TABLE:

memcpy(pDataBuf,&CAMERA_TSF_DEFAULT_VALUE,sizeof(CAMERA_TSF_TBL_STRUCT));

break;

case CAMERA_NVRAM_DATA_FEATURE:

memcpy(pDataBuf,&CAMERA_FEATURE_DEFAULT_VALUE,sizeof(NVRAM_CAMERA_FEATURE_

STRUCT));

break;

default:

return 1;

}

return 0;

}}; // NSFeature


8:开启TSF功能。


 MT6595之前的平台(如MT6582、 MT6592等)


修改文件


mediatek\custom\[$platform,$project]\hal\camera\camera\tsf_tuning_custom.c

pp中的isEnableTSF函数,返回值修改成MTRUE。如下:

MBOOL isEnableTSF(void)

{

return MTRUE;

}


MT6595之后的平台(如MT6595、 MT6752_MT6732等)


修改文件Tuning文件 camera_tuning_para_XXXX.cpp,把isTsfEn改成1


const CAMERA_TSF_TBL_STRUCT CAMERA_TSF_DEFAULT_VALUE =

{ {

1, // isTsfEn

2, // tsfCtIdx

{20, 2000, -110, -110, 512, 512, 512, 0} // rAWBInput[8]

},

#include INCLUDE_FILENAME_TSF_PARA

#include INCLUDE_FILENAME_TSF_DATA


     

待整合参数后,确认参数有无生效 ?请参考 FAQ11142 。


不同chip , TSF 的进阶客制化?请参考FAQ11301 。


Camera加载慢问题分析


[FAQ15082]Camera加载慢问题分析


Camera加载慢问题分析


A开机加载慢


Description:开机进入camera工厂模式很慢 ,或者是开机加载camera很慢


正常情况下search sensor耗时不会很久,大概200多ms的样子,从 mainlog.boot.


可以通过搜索关键字: impsearch, 来查看search时间。


01-01 00:08:56.379 232 232 D ImgSensorDrv: [impSearchSensor]SENSOR search start

01-01 00:08:56.640 232 232 D ImgSensorDrv: [impSearchSensor]SENSOR search end: 0x3

/[0x3087][1]/[0xffffff][255]/[0x5648][0]


出现异常的时候,


mainlog.boot的搜索时间会很久,例如:


01-01 08:11:22.761 263 263 D ImgSensorDrv: [impSearchSensor]SENSOR search start

01-01 08:11:35.176 263 263 D ImgSensorDrv: [impSearchSensor]SENSOR search end: 0x3

/[0x841][0]/[0xffffff][255]/[0x2508][1]