MTK平台camera(摄像头)学习教程重点讲义资料 - 图文(5)

2020-05-24 09:40

Camera Driver analysis in the platform of MTK

ACDK_SCENARIO_ID_IMAGE_POST_PROCESS, ACDK_SCENARIO_ID_JPEG_RESIZE, ACDK_SCENARIO_ID_JPEG_DECODE, ACDK_SCENARIO_ID_JPEG_PARSE, ACDK_SCENARIO_ID_JPEG_ENCODE,

ACDK_SCENARIO_ID_JPEG_ENCODE_THUMBNAIL, ACDK_SCENARIO_ID_DRIVER_IO_CONTROL, ACDK_SCENARIO_ID_DO_NOT_CARE,

ACDK_SCENARIO_ID_IMAGE_DSPL_BUFFER_ALLOC, ACDK_SCENARIO_ID_TV_OUT,

Preliminary Information

ACDK_SCENARIO_ID_MAX,

ACDK_SCENARIO_ID_VIDOE_ENCODE_WITHOUT_PREVIEW, ACDK_SCENARIO_ID_CAMERA_CAPTURE_JPEG_BACK_PREVIEW, ACDK_SCENARIO_ID_VIDEO_DECODE_RV8, ACDK_SCENARIO_ID_VIDEO_DECODE_RV9,

} ACDK_SCENARIO_ID_ENUM;

ACDK_SCENARIO_ID_CAMERA_ZSD,

通过这个数组定义 Camera 的各种模式,并且给他们从 0 开始给一个模拟的 ID,通过这个

ScenarioID 来控制 Camera 的工作模式是在拍照、摄像等等。

想要了解*pSensorInfo 这个指针的内容就得看 MSDK_SENSOR_INFO_STRUCT 的定义

#define MSDK_SENSOR_INFO_STRUCT ACDK_SENSOR_INFO_STRUCT typedef struct {

MUINT16 SensorPreviewResolutionX; MUINT16 SensorPreviewResolutionY; MUINT16 SensorFullResolutionX; MUINT16 SensorFullResolutionY; MUINT8 SensorClockFreq;

/* MHz */

MUINT8 SensorCameraPreviewFrameRate; MUINT8 SensorVideoFrameRate; MUINT8 SensorStillCaptureFrameRate;

MUINT8 SensorWebCamCaptureFrameRate; MUINT8

SensorClockPolarity;

/*

SENSOR_CLOCK_POLARITY_HIGH/SENSOR_CLOCK_POLARITY_Low */

Ghong Confidential

Revision 0.1-Feb.14 2012

?2012 Ghong inc.

Camera Driver analysis in the platform of MTK

- 21 -

Preliminary Information

MUINT8 SensorClockFallingPolarity; MUINT8 SensorClockRisingCount; MUINT8 SensorClockFallingCount; MUINT8 SensorClockDividCount; MUINT8 SensorPixelClockCount; MUINT8 SensorDataLatchCount; MUINT8 SensorHsyncPolarity; MUINT8 SensorVsyncPolarity; MUINT8 SensorInterruptDelayLines; MINT32 SensorResetActiveHigh; MUINT32 SensorResetDelayCount;

ACDK_SENSOR_INTERFACE_TYPE_ENUM SensroInterfaceType;

ACDK_SENSOR_OUTPUT_DATA_FORMAT_ENUM SensorOutputDataFormat; ACDK_SENSOR_MIPI_LANE_NUMBER_ENUM SensorMIPILaneNumber; CAMERA_ISO_BINNING_INFO_STRUCT SensorISOBinningInfo; MUINT32 CaptureDelayFrame; MUINT32 PreviewDelayFrame; MUINT32 VideoDelayFrame; MUINT16 SensorGrabStartX; MUINT16 SensorGrabStartY; MUINT16 SensorDrivingCurrent; MUINT8 MUINT8

/* 0..15 */

/* 0..15 */

/* 0..15 */

/* 0..15 */

/* 0..15 */

/* The frame of setting shutter default 0 for TG

SensorMasterClockSwitch; AEShutDelayFrame;

int */ MUINT8 MUINT8 MUINT8 MUINT8 MUINT8 MUINT8 MUINT8 MUINT8 MUINT8

AESensorGainDelayFrame; AEISPGainDelayFrame;

/* The frame of setting sensor gain */

MIPIDataLowPwr2HighSpeedTermDelayCount; MIPIDataLowPwr2HighSpeedSettleDelayCount; MIPICLKLowPwr2HighSpeedTermDelayCount; SensorWidthSampling; SensorHightSampling; SensorPacketECCOrder; SensorDriver3D;

} ACDK_SENSOR_INFO_STRUCT, *PACDK_SENSOR_INFO_STRUCT;

Ghong Confidential Revision 0.1-Feb.14 2012

?2012 Ghong inc.

Camera Driver analysis in the platform of MTK

- 22 -

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

Preliminary Information

MUINT16 SensorFullWidth; MUINT16 SensorFullHeight;

} 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.

Camera Driver analysis in the platform of MTK

- 24 -

Preliminary Information

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,

} ACDK_SENSOR_FEATURE_ENUM;

别是 FeatureId 的具体值。

SENSOR_FEATURE_MAX

FeatureId 这个参数提供了低层给上层接口的准备。*pFeaturePara 和*pFeatureParaLen 分

Ghong Confidential

Revision 0.1-Feb.14 2012

?2012 Ghong inc.

- 25 -


MTK平台camera(摄像头)学习教程重点讲义资料 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:资料—毒树之果、非法证据排除规则

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: