camdata.h
资源名称:inc.rar [点击查看]
上传用户:dzdeming
上传日期:2022-08-03
资源大小:381k
文件大小:14k
源码类别:
Windows CE
开发平台:
Visual C++
- /*****************************************
- NAME: camdata.h
- DESC: data for initializing camera module
- HISTORY: 2004.01.16:draft ver 0.0
- *****************************************/
- #ifndef __CAMDATA_H__
- #define __CAMDATA_H__
- #ifdef __cplusplus
- extern "C"{
- #endif
- #include "Camdef.h"
- #define CAM_ACT_HSIZE (640) // Max 640
- #define CAM_ACT_VSIZE (480) // Max 480
- #define CAM_STX (0x2f) //47
- #define CAM_STY (6) //6
- #define CAM_ENDX (((CAM_ACT_HSIZE)/4) + CAM_STX)
- #define CAM_ENDY ((CAM_ACT_VSIZE/2) + CAM_STY-1)
- const unsigned char Ov7620_Yuv16bit[][2] = {
- {0x12, 0x80}, // Camera Soft reset. Self cleared after reset.
- {0x17, CAM_STX}, //
- {0x18, CAM_ENDX}, // (207-47)*4 = 640
- {0x19, CAM_STY}, //
- {0x1a, CAM_ENDY}, // ((244-5)+1)*2=480
- {0x01, 0x80}, // set blue gain
- {0x02, 0x80}, // set red gain
- {0x03, 0xb0},
- {0x06, 0x70}, // set brightness
- {0x07, 0x00},
- {0x0c, 0x24}, // set blue background
- {0x0d, 0x24}, // set red background
- {0x10, 0xff}, // set exposure time, brightness control
- {0x11, 0x40}, // set frame rate 27Mhz/[(0+1)*2]=13.5MHz
- {0x12, 0x24}, // set YUV mode, enable AGC/AWB, mirror image.
- {0x15, 0x01}, // Use PCLK rising edge to latch data
- {0x16, 0x03}, //
- {0x12, 0x64}, // set YUV mode, enable AGC/AWB, mirror image.
- {0x13, 0x01}, // YUV 16-bit format, Disable AEC/AGC/AWB
- {0x14, 0x84}, // turn off GAMMA
- {0x24, 0x3a}, //
- {0x25, 0x60}, //
- {0x28, 0x20}, // Progressive mode.
- {0x2d, 0x95}, //
- {0x67, 0x92}, //
- {0x74, 0x00} //
- };
- const unsigned char Ov7620_YCbCr8bit[][2] = {
- {0x12, 0x80}, // Camera Soft reset. Self cleared after reset.
- {0x00, 0x00},
- {0x01, 0x80}, // set blue gain
- {0x02, 0x80}, // set red gain
- {0x03, 0xb0},
- {0x06, 0x60}, // set brightness
- {0x0c, 0x24}, // set blue background
- {0x0d, 0x24}, // set red background
- {0x10, 0xff}, // set exposure time, brightness control
- {0x11, 0x80}, // set frame rate CLK_input = PCLK
- {0x13, 0x21}, // set 8 Bit YUV mode
- {0x14, 0x94},
- {0x16, 0x03}, //
- {0x17, 0x2f}, //
- {0x18, 0xcf}, // (207-47)*4 = 640
- {0x19, 0x06}, //
- {0x1a, 0xf5}, // ((244-5)+1)*2=480
- {0x1b, 0x00},
- {0x20, 0x00},
- {0x21, 0x80},
- {0x22, 0x80},
- {0x23, 0x00},
- {0x26, 0xa2},
- {0x27, 0xea},
- {0x29, 0x00},
- {0x2a, 0x00},
- {0x2b, 0x00},
- {0x2c, 0x88},
- {0x2e, 0x80},
- {0x2f, 0x44},
- {0x60, 0x27},
- {0x61, 0x82},
- {0x62, 0x5f},
- {0x63, 0xd5},
- {0x64, 0x57},
- {0x65, 0x83},
- {0x66, 0x55},
- {0x68, 0xcf},
- {0x69, 0x76},
- {0x6a, 0x22},
- {0x6b, 0x00},
- {0x6c, 0x08},
- {0x6d, 0x48},
- {0x6e, 0x80},
- {0x6f, 0x0c},
- {0x70, 0x89},
- {0x71, 0x00},
- {0x72, 0x14},
- {0x73, 0x54},
- {0x75, 0x0e},
- {0x76, 0x00},
- {0x77, 0xff},
- {0x78, 0x80},
- {0x79, 0x80},
- {0x7a, 0x80},
- {0x7b, 0xe6},
- {0x7c, 0x00},
- {0x24, 0x10},
- {0x25, 0x8a},
- {0x28, 0x20},
- {0x2d, 0x95},
- {0x67, 0x92},
- {0x74, 0x00},
- {0x15, 0x41}, // inversed PCLK : falling edge to get data, 8 Bit -U-V- sequence....
- {0x12, 0x34}, // enable AGC/AWB, mirror image. YUYV-must set at last..
- };
- const unsigned char Au70h[][2] = {
- {0x01,0x0b}, /*0x04*/ //5x5 interpolation VGA mode
- #if AU70H_VIDEO_SIZE==640
- {0x08,0x00},
- {0x09,0xc0},
- {0x0a,0x01},
- {0x0b,0x00},
- {0x0c,0x01},
- {0x0d,0xe0},
- {0x0e,0x02},
- {0x0f,0x80},
- #elif AU70H_VIDEO_SIZE==1152
- {0x08,0x00},
- {0x09,0x02},
- {0x0a,0x00},
- {0x0b,0x02},
- {0x0c,0x03},
- {0x0d,0x60},
- {0x0e,0x04},
- {0x0f,0x80},
- #endif
- {0x18,0x01},
- {0x19,0x3f},
- {0x1a,0x13},
- {0x1b,0x7f},
- {0x1c,0x08},
- {0x20,0x13},
- {0x21,0x01},
- {0x22,0x01},
- {0x23,0x01},
- {0x27,0xf0},
- {0x30,0xfe},
- {0x31,0x31}, //YCbCr 8bit 0x31,0x11
- {0x32,0x00},
- {0x33,0x03},
- {0x67,0xa5}, //???
- {0x68,0x2c},
- {0x69,0x2a},
- {0x73,0x79},
- {0x75,0x03},
- {0x76,0x08},
- {0x77,0x35},
- {0x81,0x19},
- {0x90,0x01},
- {0x91,0x06},
- {0x92,0x1a},
- {0x93,0x80},
- {0x6a,0x01},
- {0x6b,0x38},
- {0x6c,0x80},
- {0x6d,0x09},
- {0x6e,0xc4},
- {0x6f,0x00},
- {0x60,0x99},
- {0x63,0x03},
- {0x64,0xa9},
- {0x65,0x80},
- {0x66,0x30},
- {0x70,0x44},
- {0x71,0x00},
- //{0x14,0x8},
- //{0x16,0x8},
- {0x70,0x45},
- {0x71,0x02},
- {0x66,0x70}
- };
- const unsigned char S5X532_YCbCr8bit[][2] =
- {
- #if 0
- // page 5
- {0xec,0x05},
- {0x08,0x55},
- {0x0a,0x75},
- {0x0c,0x90},
- {0x0e,0x18},
- {0x12,0x09},
- {0x14,0x9d},
- {0x16,0x90},
- {0x1a,0x18},
- {0x1c,0x0c},
- {0x1e,0x09},
- {0x20,0x06},
- {0x22,0x20},
- {0x2a,0x00},
- {0x2d,0x04},
- {0x12,0x24},
- // page 3
- {0xec,0x03},
- {0x0c,0x09},
- {0x6c,0x09},
- {0x2b,0x10}, // momo clock inversion
- // page 2
- {0xec,0x02},
- {0x03,0x09},
- {0x05,0x08},
- {0x06,0x01},
- {0x07,0xf8},
- {0x15,0x25},
- {0x30,0x29},
- {0x36,0x12},
- {0x38,0x04},
- {0x1b,0x77}, // 24MHz : 0x77, 12MHz : 0x22
- {0x1c,0x77}, // 24MHz : 0x77, 12MHz : 0x22
- // page 1
- {0xec,0x01},
- {0x00,0x03}, //
- {0x0a,0x08}, // 0x0-QQVGA, 0x06-CIF, 0x02-QCIF, 0x08-VGA, 0x04-QVGA, 0x0a-SXGA
- {0x0c,0x00}, // Pattern selectio. 0-CIS, 1-Color bar, 2-Ramp, 3-Blue screen
- {0x10,0x27}, // 0x21-ITU-R656(CbYCrY), 0x25-ITU-R601(CbYCrY), 0x26-ITU-R601(YCrYCb)
- {0x50,0x21}, // Hblank
- {0x51,0x00}, // Hblank
- {0x52,0xA1}, // Hblank
- {0x53,0x02}, // Hblank
- {0x54,0x01}, // Vblank
- {0x55,0x00}, // Vblank
- {0x56,0xE1}, // Vblank
- {0x57,0x01}, // Vblank
- {0x58,0x21}, // Hsync
- {0x59,0x00}, // Hsync
- {0x5a,0xA1}, // Hsync
- {0x5b,0x02}, // Hsync
- {0x5c,0x03}, // Vref
- {0x5d,0x00}, // Vref
- {0x5e,0x05}, // Vref
- {0x5f,0x00}, // Vref
- {0x70,0x0E},
- {0x71,0xD6},
- {0x72,0x30},
- {0x73,0xDB},
- {0x74,0x0E},
- {0x75,0xD6},
- {0x76,0x18},
- {0x77,0xF5},
- {0x78,0x0E},
- {0x79,0xD6},
- {0x7a,0x28},
- {0x7b,0xE6},
- {0x50,0x00},
- {0x5c,0x00},
- // page 0
- {0xec,0x00},
- {0x79,0x01},
- {0x58,0x90},
- {0x59,0xA0},
- {0x5a,0x50},
- {0x5b,0x70},
- {0x5c,0xD0},
- {0x5d,0xC0},
- {0x5e,0x28},
- {0x5f,0x08},
- {0x50,0x90},
- {0x51,0xA0},
- {0x52,0x50},
- {0x53,0x70},
- {0x54,0xD0},
- {0x55,0xC0},
- {0x56,0x28},
- {0x57,0x00},
- {0x48,0x90},
- {0x49,0xA0},
- {0x4a,0x50},
- {0x4b,0x70},
- {0x4c,0xD0},
- {0x4d,0xC0},
- {0x4e,0x28},
- {0x4f,0x08},
- {0x72,0x82}, // main clock = 24MHz:0xd2, 16M:0x82, 12M:0x54
- {0x75,0x05} // absolute vertical mirror. junon
- #else
- ///3aa////////////////////////////////////////////////////////////////////
- // page 1
- {0xec,0x01},
- {0x28,0x10}, //Edge Enhancement Noise Slice
- //////////////////
- //Computer Encoding
- //s8b21 //V Output Sync inversion, Full_YC On,SCK656_INV_R
- //s1941 //Y Coef
- //1b19
- //s48ee //Cb Coef
- //s4a38
- //s4738 //Cr Coef
- //s49f7
- ///////////////////
- //SDTV Encoding
- {0x8b,0x23}, //V Output Sync inversion, Full_YC On,SCK656_INV_R
- {0x19,0x4d}, //Y Coef
- {0x1a,0x96},
- {0x1b,0x1d},
- {0x48,0xea}, //Cb Coef
- {0x4a,0x41},
- {0x47,0x41}, //Cr Coef
- {0x49,0xf5},
- {0x2d,0x15}, //Adjust YGRPDLY 3clk->0clk
- ///// Color Matrix
- ////s107e
- ////s12fe
- ////s187e //a0
- //s1cd0 //Highlight Suppress Reference
- {0xaa,0xe0}, //For AWB, High Threshold Value of Y signal
- {0xab,0x10}, //30 //For AWB, Low Threshold Value of Y signal
- // Pixel Filter
- {0xac,0x80}, //AWB B-G Low Threshold
- {0xad,0x80}, //AWB B-G High Threshold
- {0xae,0x80}, //AWB R-G Low Threshold
- {0xaf,0x80}, //AWB R-G Low Threshold
- {0xb0,0x60}, //AWB R-G,B-G High Threshold
- {0xb1,0x80}, //AWB R-G,B-G Low Threshold
- //***************************************************
- // page 2
- {0xec,0x02},
- {0x05,0x0b},
- {0x07,0x0b},
- {0x26,0x86}, //ADLC Set
- {0x2d,0x00}, //APS Bias Current 6uA ---> 1uA for SHBN & HN reduce
- {0x2e,0x50}, //Ramp Gain
- {0x2f,0x30}, //Ramp Bias Current for SHBN reduce
- {0x30,0x05}, //for reducing noise... switch cap
- //***************************************************
- // page 3,4
- //Y,Cr first ITU R-601 format
- //sec01
- //s6a07
- {0xec,0x03},
- {0x06,0x07},
- {0xec,0x04},
- {0x06,0x07},
- // VCK inversion(data rising)
- //sec01
- //s690f
- {0xec,0x03},
- {0x05,0x0f},
- {0xec,0x04},
- {0x05,0x0f},
- //////////////////////////////
- // control start position(hsync hblank )
- // to remove broken pixel width on left side
- //sec01
- //s783d //HBLK START
- //s823d //HS656 START
- {0xec,0x04},
- {0x0e,0x3d},
- {0x18,0x3d},
- //***************************************************
- // page 5
- // Shading
- {0xec,0x05},
- {0x00,0x0d}, //Shading Old(Y shading) ON & Shading New(RGB Shading) OFF
- //s000f //Shading Old(Y shading) & Shading New(RGB Shading)
- //RGB Shading
- {0x05,0x05}, //R Shading of RGB Shading
- {0x06,0x05},
- {0x07,0x05},
- {0x08,0x05},
- {0x09,0x00}, //GR Shading of RGB Shading
- {0x0a,0x00},
- {0x0b,0x00},
- {0x0c,0x00},
- {0x0d,0x00}, //GB Shading of RGB Shading
- {0x0e,0x00},
- {0x0f,0x00},
- {0x10,0x00},
- {0x11,0x00}, //B Shading of RGB Shading
- {0x12,0x00},
- {0x13,0x00},
- {0x14,0x00},
- // Y Shading
- {0x2d,0xd0},
- {0x2e,0xb0},
- {0x2f,0xa0},
- {0x30,0x88},
- {0x31,0x88},
- {0x32,0xa0},
- {0x33,0xb0},
- {0x34,0xd0},
- {0x35,0xd0},
- {0x36,0xb0},
- {0x37,0x98},
- {0x38,0x88},
- {0x39,0x88},
- {0x3a,0x98},
- {0x3b,0xb0},
- {0x3c,0xd0},
- //***************************************************
- // page 6
- //adjust AE window
- //sec01
- ////s9718
- ////s9ae0
- ////s9c20
- ////s9ee8
- {0xec,0x06},
- {0x00,0x18},
- {0x02,0xe0},
- {0x04,0x20},
- {0x06,0xe8},
- ///
- ////adjust AWB window
- ////sec01
- ////sa05a
- ////sa2d8
- ////sa433
- ////sa6ba
- {0xec,0x06},
- {0x08,0x5a},
- {0x0a,0xd8},
- {0x0c,0x33},
- {0x0e,0xba},
- {0x8c,0x0b}, //in case of wrp wcp control for mirror
- {0x8d,0x0c},
- {0x8e,0x0b},
- {0x8f,0x0c},
- //***************************************************
- // page 7
- {0xec,0x07},
- {0x3c,0x00}, //adjust AWB internal window boundary to decrease skin color tracking
- //to dectect 50Hz flicker in 25Mhz 7.5fps
- {0x60,0x10}, //adjust flicker thres
- {0x62,0x11}, //adjust edge detection boundary
- {0x63,0x07}, //04 //duration of flicker
- {0x69,0x10}, //for mirror
- {0x70,0x00}, //BLC Off
- //***************************************************
- // page 0
- {0xec,0x00},
- // Mirror
- {0x23,0x52}, //RV/H Control
- ////////////////////////////
- //Adjust AWB boundary
- {0xec,0x00},
- {0x34,0x08}, //0e //Rgain Max
- {0x37,0x0b}, //05 //Blimit High
- {0x39,0x06}, //06 //Blimit Low
- {0x3a,0x05}, //08 //Slope Bottom
- {0x3b,0x10}, //13 //08 //Slope Top
- {0x83,0xa0}, //c0 //Color suppress
- //s8a04 //unstable diff
- {0xbb,0x01}, //AWB AE Diff
- {0xbc,0x00},
- ////////////////////////////
- // improve AE speed
- {0xec,0x00},
- {0x92,0x80}, //AE ratio high
- {0xec,0x07},
- {0x10,0x30}, //AGC predict ON
- /////////////////////////////
- // Color Tunning
- ////1st. White Point
- {0xec,0x07},
- {0x17,0x44}, //Increase Ggain
- //White Point
- {0xec,0x00},
- {0x40,0x1a},
- {0x41,0x4f},
- {0x42,0x21},
- {0x43,0x40},
- {0x44,0x2e},
- {0x45,0x30},
- //Change start point of RBgain
- {0xa4,0x2e},
- {0xa5,0x30},
- {0x7f,0x30},
- ///2nd Veiwing 5100 DNP, Adjust RGBgain of AWB
- {0x79,0xff}, //Rgain
- {0x7a,0x03}, //Bgain
- {0xec,0x07},
- {0x11,0xff}, //Ggain
- ////3rd AE target, Gamma
- {0xec,0x00},
- {0x6c,0x08}, //AE Target
- //Y Gamma
- {0xec,0x01},
- {0x2e,0x08},
- {0x2f,0x10},
- {0x30,0x20},
- {0x31,0x58},
- {0x32,0xfe},
- {0x33,0xa8},
- {0x34,0x6c},
- {0x35,0xff},
- {0x36,0x00},
- {0x37,0x1b},
- //C Gamma
- {0x55,0x08},
- {0x56,0x10},
- {0x57,0x20},
- {0x58,0x58},
- {0x59,0xfe},
- {0x5a,0xa8},
- {0x5b,0x8c},
- {0x5c,0xcf},
- {0x5d,0x00},
- {0x5e,0x1b},
- ///4th Hue, Color Level
- {0xec,0x00},
- {0x77,0xa9}, //da //Color Level
- {0x76,0x75},
- //Hue, Gain control
- {0x48,0xd0},
- {0x49,0xf0},//fe
- {0x4a,0x48},
- {0x4b,0x28},//38
- {0x4c,0xfe},
- {0x4d,0xfe},
- {0x4e,0x58},
- {0x4f,0x10},
- {0x50,0xc0},
- {0x51,0xf0},//fe
- {0x52,0x4a},
- {0x53,0x28},//38
- {0x54,0xfe},
- {0x55,0xfe},
- {0x56,0x60},
- {0x57,0x10},
- {0x58,0xb0},
- {0x59,0xf0},//fe
- {0x5a,0x50},
- {0x5b,0x38},//48
- {0x5c,0xf0},
- {0x5d,0xfe},
- {0x5e,0x60},
- {0x5f,0x10},
- ////5th Adjust AE weight
- {0xec,0x07},
- {0x80,0x10}, //10
- {0x81,0x01}, //00
- {0x82,0x01}, //01
- {0x83,0x01}, //02
- {0x84,0x04}, //02
- ////////////////////////////
- // Control Gain
- {0xec,0x00},
- {0x78,0x60}, //Total gain x4 (Only Analog x4)
- {0x2d,0x5a}, //Frame AE start
- {0x82,0x5A}, //Color Suppress AGC Min
- ///////////////////////////
- // Control BPRM
- // CIS BPR always off
- {0xec,0x00},
- {0x7e,0x87}, //Color Suppress On, Y gain On, Digital clamp On, DBPRM On
- {0x86,0x01}, //DBPR AGC MIN
- {0x87,0x00}, //DBPRM THRES. MIN
- //s8710 //DBPRM THRES. MIN.. optimize between BPR and Pseudo color
- {0xec,0x07},
- {0x21,0x90}, //50 //DBPRM THRES. MAX
- {0x22,0x20}, //DBPR AGC MAX
- //*********************************************************
- // If you change MCLK or Frame rate, you change below register
- //*********************************************************
- /////////////////////////////
- ///Adjust Global Gain
- {0xec,0x02},
- {0x1f,0x0f}, // if MCLK is 25Mhz
- ////////////////////////////
- //Flicker setting
- {0xec,0x00},
- {0x72,0x7a}, // if MCLK is 25Mhz
- ////////////////////////////
- // Adjust Vblank depth
- /// Make 25Mhz 7.5fps
- {0xec,0x02},
- {0x17,0x00},
- {0x18,0x8c},
- {0xec,0x04},
- {0x01,0x00},
- {0x02,0x8c},
- //*********************************************************
- ////////////////////////////
- //Flicker setting
- {0xec,0x00},
- {0x74,0x14}, // Auto Flicker start 60hz for 7.5fps
- ////////////////////////////
- // Frame AE
- {0xec,0x00},
- {0x73,0x11}, // frame 1/2
- #endif
- };
- const unsigned char S5X3A1_YCbCr8bit[][2] =
- {
- // page 0
- {0xec,0x00},
- // {0x72,0xd2}, //main clock = 27MHz:0x00, 24MHz:0xd2, ...
- {0x01,0x00}, //SXGA
- // page 1
- {0xec,0x01},
- {0x0b,0x10}, // href type
- {0x5c,0x01}, // href type
- {0x5d,0x00}, // href type
- {0x5e,0x01}, // href type
- {0x5f,0x04}, // href type
- // page 0
- {0xec,0x00}
- };
- #ifdef __cplusplus
- }
- #endif
- #endif /*__CAMDATA_H__*/