Camera Driver analysis in the platform of MTK
Preliminary Information
这个结构体列取了 Sensor 的时钟频率、预览时的帧率、行同步/帧同步频率等参数。 第三个参数*pSensorConfigData 同样根据 MSDK_SENSOR_CONFIG_STRUCT 结构体 #define MSDK_SENSOR_CONFIG_STRUCT ACDK_SENSOR_CONFIG_STRUCT typedef struct {
ACDK_SENSOR_IMAGE_MIRROR_ENUM SensorImageMirror; MINT32 EnableShutterTansfer; MINT32 EnableFlashlightTansfer;
/* Capture 时的快门设置 */
/*有闪光灯的 SensorCapture 时的快门设置*/
ACDK_SENSOR_OPERATION_MODE_ENUMSensorOperationMode; MUINT16 ImageTargetWidth; MUINT16 ImageTargetHeight; MUINT16 MUINT16 MUINT16 MUINT16 MUINT16
CaptureShutter; FlashlightDuty; FlashlightOffset; FlashlightShutFactor;
/* Capture 的图像宽度 */ /* Capture 的图像高度*/
/* Capture 时的快门设置 */
/*有闪光灯的 SensorCapture 时的快门设置*/ /*有闪光灯的 SensorCapture 时的快门设置*/ /*有闪光灯的 SensorCapture 时的快门设置*/
FlashlightMinShutter; /*有闪光灯的 SensorCapture 时的快门设置*/
ACDK_CAMERA_OPERATION_MODE_ENUMMetaMode; MUINT32 DefaultPclk; MUINT32 Pixels; MUINT32 Lines; MUINT32 Shutter;
// Sensor 默认的像素时钟频率(Ex:24000000)
MUINT32 FrameLines;
} ACDK_SENSOR_CONFIG_STRUCT;
c) OV5647GetResolution
UINT32 OV5647GetResolution(MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pSensorResolution) 此函数只有一个参数*pSensorResolution, 找到结构体:MSDK_SENSOR_RESOLUTION_INFO_STRUCT #define MSDK_SENSOR_RESOLUTION_INFO_STRUCT ACDK_SENSOR_RESOLUTION_INFO_STRUCT
typedef struct {
MUINT16 SensorPreviewWidth; //预览时的图像宽度 MUINT16 SensorPreviewHeight; //预览时的图像高度
- 23 -
Ghong Confidential
Revision 0.1-Feb.14 2012
?2012 Ghong inc.
Camera Driver analysis in the platform of MTK
MUINT16 SensorFullWidth; MUINT16 SensorFullHeight;
Preliminary Information
} ACDK_SENSOR_RESOLUTION_INFO_STRUCT, *PACDK_SENSOR_RESOLUTION_INFO_STRUCT;
到这里可以发现同样是获取 Sensor 的信息,GetInfo 函数获取并设置了 Sensor 所处的模式、 设置好需要的各种时钟、快门和拍照获取图像的信息整个流程的参数,而 GetResolution 函
数却是设置图像在预览模式下的参数,实际上是通过对实际捕获的图像缩放来提高预览时 图像的解析度。
d) OV5647FeatureControl
UINT32OV5647FeatureControl(MSDK_SENSOR_FEATURE_ENUM FeatureId, UINT8 *pFeaturePara, UINT32
*pFeatureParaLen)
在 FeatureControl 这个函数中有三个参数: #define
ACDK_SENSOR_FEATURE_ENUM typedef enum
MSDK_SENSOR_FEATURE_ENUM
{
SENSOR_FEATURE_BEGIN = SENSOR_FEATURE_START, SENSOR_FEATURE_GET_RESOLUTION, SENSOR_FEATURE_GET_PERIOD,
SENSOR_FEATURE_GET_PIXEL_CLOCK_FREQ, SENSOR_FEATURE_SET_ESHUTTER, SENSOR_FEATURE_SET_NIGHTMODE, SENSOR_FEATURE_SET_GAIN, SENSOR_FEATURE_SET_FLASHLIGHT,
SENSOR_FEATURE_SET_ISP_MASTER_CLOCK_FREQ, SENSOR_FEATURE_SET_REGISTER, SENSOR_FEATURE_GET_REGISTER, SENSOR_FEATURE_SET_CCT_REGISTER, SENSOR_FEATURE_GET_CCT_REGISTER, SENSOR_FEATURE_SET_ENG_REGISTER, SENSOR_FEATURE_GET_ENG_REGISTER, SENSOR_FEATURE_GET_REGISTER_DEFAULT,
SENSOR_FEATURE_GET_CONFIG_PARA,
SENSOR_FEATURE_CAMERA_PARA_TO_SENSOR, Ghong Confidential Revision 0.1-Feb.14 2012
?2012 Ghong inc.
- 24 -
Camera Driver analysis in the platform of MTK
SENSOR_FEATURE_SENSOR_TO_CAMERA_PARA, SENSOR_FEATURE_GET_GROUP_COUNT, SENSOR_FEATURE_GET_GROUP_INFO, SENSOR_FEATURE_GET_ITEM_INFO, SENSOR_FEATURE_SET_ITEM_INFO, SENSOR_FEATURE_GET_ENG_INFO, SENSOR_FEATURE_GET_LENS_DRIVER_ID, SENSOR_FEATURE_SET_YUV_CMD, SENSOR_FEATURE_SET_VIDEO_MODE, SENSOR_FEATURE_SET_CALIBRATION_DATA, SENSOR_FEATURE_SET_SENSOR_SYNC, SENSOR_FEATURE_INITIALIZE_AF, SENSOR_FEATURE_CONSTANT_AF, SENSOR_FEATURE_MOVE_FOCUS_LENS, SENSOR_FEATURE_GET_AF_STATUS, SENSOR_FEATURE_GET_AF_INF, SENSOR_FEATURE_GET_AF_MACRO, SENSOR_FEATURE_CHECK_SENSOR_ID,
SENSOR_FEATURE_SET_AUTO_FLICKER_MODE, SENSOR_FEATURE_SET_TEST_PATTERN, SENSOR_FEATURE_SET_SOFTWARE_PWDN, SENSOR_FEATURE_SINGLE_FOCUS_MODE, SENSOR_FEATURE_CANCEL_AF, SENSOR_FEATURE_SET_AF_WINDOW, SENSOR_FEATURE_GET_EV_AWB_REF,
SENSOR_FEATURE_GET_SHUTTER_GAIN_AWB_GAIN,
Preliminary Information
} ACDK_SENSOR_FEATURE_ENUM;
别是 FeatureId 的具体值。
SENSOR_FEATURE_MAX
FeatureId 这个参数提供了低层给上层接口的准备。*pFeaturePara 和*pFeatureParaLen 分
Ghong Confidential
Revision 0.1-Feb.14 2012
?2012 Ghong inc.
- 25 -