亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? l1_preview.c

?? dz3000_51.0.0.4.rar
?? C
?? 第 1 頁 / 共 5 頁
字號:
/********************************************************************************
  Copyright (c) 2001 Sunplus Technology Co., Ltd.
  Module Name:  l1.c
  Function   :  Level-1 function
  Environment:  Keil C51 Compiler
  Creation   :  2001/10/25 Max Hsu
***********************************************************************************/
#include "general.h"
#include "main.h"
#include "sdramhw.h"
#include "image.h"  //ada@0225
#include "timer.h"

//yichang
#include "doslink.h"
#include "dosusr.h"
#include "cffunc.h"
#include "ui.h"
#include "quantdef.h"
#include "initio.h"
#include "uiflow.h"
//#include "sensor.h"

//patch4.2@yichang@0513 for continue snapping
#include "cardui.h"
#include "exifhdr.h"
#include "exiffunc.h"
//patch4.3@andrew@0610
#include "L1_3a.h"
#include "JoeToEvb.h"
#include "unistd.h"
// version4.0@
//  andrew@0513

//patch4.3@andrew@0610
//switch for save raw data
//#define K_SAVE_RAW	
extern xdata int EV12_index;
#define EV11_index 40
#define EV10_index 30
#define EV9_index 20
#define EV8_index 10
#define EV7_index 0

#define STB_Target 110
#define STB_Target2 128
#define STB_Gain_max 0x180
#define STB_Gain_mid 0x140
#define STB_Gain_min 0x100
#define SAT_PIXEL_CNT 2800

//AWB
#define AWBMaxGain 355
#define AWBMinGain 64


#define STB_RGain  0x4d
#define STB_GrGain 0x3f
#define STB_BGain  0x60
#define STB_GbGain 0x40


#define STB_RGain2 0x51
#define STB_BGain2 0x65
#define STB_GrGain2 0x40
#define STB_GbGain2 0x40

//patch4.4@richie@imgsc
extern UCHAR L1_ScaleImage(ULONG SrcAddr, USHORT SrcHsize, USHORT SrcVsize,ULONG DstAddr, USHORT DstHsize, USHORT DstVsize, ULONG TempAddr);
extern UCHAR L1_ScaleImageOneDim(UCHAR Type,ULONG SrcAddr, USHORT SrcHsize, USHORT SrcVsize,ULONG DstAddr, USHORT DstHsize, USHORT DstVsize);


//version4.3@richie@zo
extern	xdata	UCHAR	G_ucZoomFactor;
//patch5.0@richie@sdram mapping
//patch4.5@richie@smooth zoom begin
extern	xdata	USHORT	G_usZoomX;
//patch4.5@richie@smooth zoom end

//richie@ae0226
//extern unsigned int Shutter;
extern unsigned int AVG_LUM, AVG_LUM2;

extern int AEFlag,AWBFlag;


//  versino4.0@andrew@0513
extern unsigned int Gain;
extern unsigned long Shutter;
extern  bit  AE_START ;
extern int Tidx;//,Pre_Tidx,MinTidx=0;

extern void GetAvgLum(PUSHORT Avg);
extern void SetStdColor2( void );
//patch4.3@andrew@0610
void Preview2SnapAETransfer(void);
void Snap2PreviewAETransfer(void);
void LongShutter(unsigned long  Tnum);
void SaveRawProcess(void);
void SetGamma(int);
 unsigned long  AE_GetShutter(int idx);
 unsigned short  AE_GetGain(int idx);
 unsigned short  AE_GetEV(int idx);
void   ChangeTable(int);
#ifdef STROBE_DEVICE
void StrobeSetting(void);
#endif

#ifdef TLV990
code unsigned short TLV990_TABLE[15]={1000,1053,1109,1168,1230,1296,1365,1437,1513,1594,1679,1768,1862,1961,2065};
#endif

bit STROBE;

USHORT FR,FG,FB, FG2;


#define AEAWB_DEBUG



#ifdef AEAWB_DEBUG
extern bit Outdoor;
UCHAR  max_flag=0;
unsigned short SNAP_Y[3];
unsigned short SNAP_T[3];
#endif
extern UCHAR  K_AEAWB_Flag;
extern long Kback;//jhyu@test
extern long YY[5][5];//jhyu@test
extern char method;

//herb for IGBT start @03/03/24
xdata USHORT flashwidth=1;
xdata UCHAR preflash;
extern xdata UCHAR G_FlashStatus;
//herb for IGBT end @03/03/24

//patch4.3@andrew@0610
//simplify L1_SnapOne function,
//package some code in sub function  ,, strobe, snap AE transfer

//patch4.3@andrew@0610
// version4.0@andrew@0513
//
unsigned char G_AE_com_index_Temp;  //wendy@2004/9/10

//Joe@2003.3.24 20:11 add begin
void IGBTPreflash(void);
//Joe@2003.3.24 20:11 add end
//-----------------------------------------------------------------------------
//L1_SnapOne
//-----------------------------------------------------------------------------
UCHAR L1_SnapOne(PULONG pSize, PULONG ptmbsize) USING_0
	{
			ULONG i;
	//	UCHAR	 reg_addr[1];
	//	UCHAR	 mi_reg_data[2];
	//    UCHAR temp[1]; 
	//UCHAR tmp;//Davis@05.3.3 add for debug
			//patch4.2@yichang@0513 for continue snapping
			//USHORT captureWidth, captureHeight;
#if AAA_OPTION
#ifdef AEAWB_DEBUG
		max_flag=0;
		SNAP_Y[0]=0;
		SNAP_Y[1]=0;
		SNAP_Y[2]=0;
		SNAP_T[0]=0;
		SNAP_T[1]=0;
		SNAP_T[2]=0;
#endif
 
//UCHAR L2_ReadSSC(UCHAR RegAddr, UCHAR *RegData, UCHAR Count, UCHAR Option)
	   //L2_ReadSSC(0x00, temp, 0x01, 0x01);	

	XBYTE[0X20D0]  = XBYTE[0X20D0] & 0xDF;	//Turn off VD interrupt
	 L1_3A(1);
	 /*
        if((AEFlag==0)||(AWBFlag==0))
		    L1_3A(1);        
        if((AEFlag==0)||(AWBFlag==0))
		    L1_3A(1);
		*/
	#if DEBUG_COLOR
	 CMPGrGb(tmp);
	 if(tmp)
	  SetGrEqGb();//add for debug
	 #endif
#endif
		L2_TurnOnOffDisplay(0);
		L2_WaitVD(0,2);
	
 #if AAA_OPTION
 	GetAvgLum(&AVG_LUM);
 #endif
 
	
#if AAA_OPTION
#if   STROBE_DEVICE  // andrew add for strobe device
		//patch4.3@andrew@0610
		StrobeSetting();
        	UI_Buzzer();
	
#else   //  STROBE_DEVICE==0
		//patch4.3@andrew@0610
		Preview2SnapAETransfer();
	
#endif
		if(Tidx >= 50)	 //patch4.4@jhyu@change_indoor_outdoor_gamma
			SetGamma(K_GAMMA_OUTDOOR);
		else
			SetGamma(K_GAMMA_INDOOR);
	
	
#else   // AAA_OPTINO  == 0
		 STROBE=0;
#endif
#ifdef OV3610
  			XBYTE[0x21A8] = 0x28;
 			 XBYTE[0x21A6] = 0x01; //enable bright and contrast adjustment	對比度
  			XBYTE[0x21Ae] = 0x2a;
 			 XBYTE[0x21Ac] = 0x01; //enable bright and contrast adjustment	
#endif
	
			L2_SetCDSPScale(G_Hsize,G_Hsize);		//TurnOff the CDSP H-scale function
			L2_SetImageType(0); 					//Set raw dta type
			L2_SetDisplayMode(0,0); 				//disable  frame rate conversion
	
	
			L2_SetRFBAddr(G_RawImageBufAddr+G_Hsize*6); 	//captured raw data will be stored in the buffer
			L2_SetAFBAddr(G_RawImageBufAddr+G_Hsize*6);
	
			L2_SetAFBSize(G_Hsize,G_Vsize);
			L2_SetRFBSize(G_Hsize,G_Vsize); 		//pointed by the Raw buffer pointer
	
			L2_SetRCDSPWidth(G_Hsize);
			L2_SetACDSPWidth(G_Hsize);
	
	
	
			L2_SetCamMode(0);		//prepare to receiver data fomr the sensor
			L2_SetCamMode(2);
	
			L2_WaitVD(0,1); 		//wait for the falling edge of VD for one time							// Set to DSC mode
	
			L2_SnapFront(1);		//Trigger the  CMOS sensor into the full-frame mode
	
	 //UI_PrintOSDNumber(2, 2, 2, 1);
	
			//patch4.5@ada@improve power to shot performance begin
	//patch5.0@richie@moto snap
			while((L2_CheckDRAMStatus()&0X02)!=0X02) ;
	
			//patch4.5@ada@improve power to shot performance end
			//UI_PrintOSDNumber(3, 3, 2, 1);
	
#ifdef K_SAVE_RAW
		  SaveRawProcess();
#endif
	
#if STROBE_DEVICE  // andrew 0513  if EV>9 do not  really strobe, strobe after finish exposure
		if( (Tidx >= EV9_index) && STROBE )
		{
			STROBE=0;
		}
#endif
	
	
	
			///////// VERTICAL LINE EXTENSION ////////////////////////////////////////////
			//Extend the vertical image size by 12 lines (mirror) for CDSP
			//The horizontal extending pixels are mirrored by the CDSP automatically
	
			//patch4.2@yichang@0513 for continue snapping
			for(i=1;i<7;i++) //top mirror
					L2_DoDRAMDMA(G_RawImageBufAddr*2+(ULONG)G_Hsize*6*2+(ULONG)G_Hsize*i*2,
							G_RawImageBufAddr*2+(ULONG)G_Hsize*6*2-(ULONG)G_Hsize*i*2,
							G_Hsize*2);
	
			for(i=1;i<7;i++) //bottom mirror
					L2_DoDRAMDMA(G_RawImageBufAddr*2+(ULONG)G_Hsize*6*2-(ULONG)G_Hsize*i*2+(ULONG)G_Hsize*(G_Vsize - 1)*2,
							G_RawImageBufAddr*2+(ULONG)G_Hsize*6*2+(ULONG)G_Hsize*i*2+(ULONG)G_Hsize*(G_Vsize - 1)*2,
							G_Hsize*2);
	
		//UI_PrintOSDNumber(4, 4, 2, 1);
		UI_Buzzer1();//wendy@2004/9/7

	
		//patch4.2@yichang@0513 for continue snapping
			if(G_CameraOptions.function == K_UIOPTION_FUNCTION_MULTI)
			{
					*pSize = 0;
					*ptmbsize = 0;
					return(0);
			}
	
	
		//patch4.4@yichang@badpixel begin
		L1_DoAllBadPixel(G_RawImageBufAddr+G_Hsize*6, G_Hsize, G_Vsize);
		//patch4.4@yichang@badpixel end
		//UI_PrintOSDNumber(5, 5, 2, 1);
	
		//patch4.2@yichang@0513 for continue snapping
			postSnapping(pSize, ptmbsize);
	
		//UI_PrintOSDNumber(6, 6, 2, 1);
                 
		Snap2PreviewAETransfer();
		//UI_PrintOSDNumber(7, 7, 2, 1);
	
#if AAA_OPTION
		L2_InitAEAW(0);
#endif
	
		L2_SetDisplayType(G_DisplayType);
		L2_SetDisplaySrcImgSize(G_DSPHsize, G_DSPVsize, G_DisplayType);
		// set the displayed address and size
		L2_SetBFBAddr(K_SDRAM_ImageCaptureDisplayBufAddr);
		L2_SetBFBSize(G_DSPHsize,G_DSPVsize);
		// set display buffer index is equal to B frame buffer index
		L2_SetDisplayMode(0x00, 0x10);
		//wendy@2004/9/9
		
		if (G_DisplayMode == K_DisplayModePowerOff)//hx@2003.6.1 add for mito begin
		{
				G_DisplayMode = K_DisplayModeOsdOn;
				//UI_PreviewStatusOSD();
				L2_TurnOnOffDisplay(1);
				G_DisplayMode = K_DisplayModePowerOff;
		}
		else
		{
			L2_TurnOnOffDisplay(1);  
	
			return(0);
	}
}

//patch4.2@yichang@0513 for continue snapping
//-----------------------------------------------------------------------------
//void postSnapping(PULONG pSize, PULONG ptmbsize)
//-----------------------------------------------------------------------------
void postSnapping(PULONG pSize, PULONG ptmbsize) USING_0
{
	USHORT captureWidth, captureHeight;
	//patch5.0@richie@sdram mapping
	USHORT zoomOffX, zoomOffY;
        ULONG i,j;

#if AAA_OPTION
        USHORT RT,GT1,BT,GT2;
	ULONG spwnum;
	UCHAR spwlum;
	CHAR spwry,spwby;
	UCHAR LumClamp0,LumClamp1,LumClamp2,LumClamp3,LumClamp4;
	CHAR SAT=0;
	float ratio=1;
	USHORT FR,FG1,FB, FG2;//USHORT tmp;
	int	SPW_CNT[4], SPW_Y[4], SPW_RY[4], SPW_BY[4];
	int r_gain,gr_gain,b_gain,gb_gain,min_gain,Reg_Rg,Reg_Grg,Reg_Bg,Reg_Gbg,Reg_Hg ;
	int r_off,gr_off,b_off,gb_off;
	//int temp_gain; //patch 4.2@jhyu@0523

#ifdef AEAWB_DEBUG
	LONG end_add;
	UCHAR hb,lb;
#endif

#endif

        #if AAA_OPTION
	Reg_Rg =(SHORT)(XBYTE[0x2124]&0xff);
	Reg_Grg=(SHORT)(XBYTE[0x2125]&0xff);
	Reg_Bg =(SHORT)(XBYTE[0x2126]&0xff);
	Reg_Gbg=(SHORT)(XBYTE[0x2127]&0xff);
	Reg_Hg =(SHORT)(XBYTE[0x2128]&0xff);

	r_off = XBYTE[0x2120];//patch4.3@jhyu@0604
	gr_off = XBYTE[0x2121];//patch4.3@jhyu@0604
	b_off = XBYTE[0x2122];//patch4.3@jhyu@0604
	gb_off = XBYTE[0x2123];//patch4.3@jhyu@0604

	r_gain = Reg_Rg | ((Reg_Hg&0x08)<<5);
	gr_gain= Reg_Grg| ((Reg_Hg&0x04)<<6);
	b_gain = Reg_Bg | ((Reg_Hg&0x02)<<7);
	gb_gain= Reg_Gbg| ((Reg_Hg&0x01)<<8);

	RT =(USHORT)r_gain;
	GT1=(USHORT)gr_gain;
	BT =(USHORT)b_gain;
	GT2=(USHORT)gb_gain;


	if( STROBE )
   	{
  		if( Tidx > EV9_index )
		{
			FR =r_gain;
			FG1=gr_gain;
			FB =b_gain;
			FG2=gb_gain;
		}
	   	else if( Tidx > EV8_index )
		{
		 	FR =STB_RGain *0.2+0.8*r_gain;
		 	FG1=STB_GrGain*0.2+0.8*gr_gain;
			FB =STB_BGain *0.2+0.8*b_gain;
		 	FG2=STB_GbGain*0.2+0.8*gb_gain;
		}
		else if( Tidx > EV7_index )
		{
		 	FR =(STB_RGain *0.5+0.5*r_gain);
		 	FG1=(STB_GrGain*0.5+0.5*gr_gain);
         	FB =(STB_BGain *0.5+0.5*b_gain);
			FG2=(STB_GbGain*0.5+0.5*gb_gain);
		}
  	    else
		{
			FR =STB_RGain *0.8+0.2*r_gain;
		 	FG1=STB_GrGain*0.8+0.2*gr_gain;
         		FB =STB_BGain *0.8+0.2*b_gain;
			FG2=STB_GbGain*0.8+0.2*gb_gain;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频在线观看一区| 欧美高清在线一区二区| 亚洲福利电影网| 在线播放欧美女士性生活| 日韩精品视频网站| 精品欧美一区二区在线观看| 成人午夜电影网站| 尤物av一区二区| 777奇米四色成人影色区| 精品一区二区三区在线视频| 久久一夜天堂av一区二区三区| 国产精品白丝jk黑袜喷水| 亚洲三级电影网站| 91麻豆精品久久久久蜜臀| 国模套图日韩精品一区二区| 国产精品午夜免费| 欧美性猛交xxxxxx富婆| 久久精品国产99久久6| 国产精品天干天干在线综合| 91黄视频在线| 激情文学综合网| 国产精品国产馆在线真实露脸 | 日韩美女主播在线视频一区二区三区| 免费一级欧美片在线观看| 久久精品一区二区三区av| 97精品电影院| 极品销魂美女一区二区三区| 中文字幕一区二| 欧美成va人片在线观看| 日本韩国一区二区三区| 国产成人在线网站| 日韩一区二区高清| 久久99热这里只有精品| 18成人在线视频| 精品国产乱码久久久久久影片| 99久久精品免费| 韩国理伦片一区二区三区在线播放 | 91国模大尺度私拍在线视频| 久久av资源网| 亚洲国产你懂的| 国产精品动漫网站| 精品成人佐山爱一区二区| 欧美综合一区二区| 成人av在线观| 国产乱子轮精品视频| 午夜欧美视频在线观看| 亚洲同性gay激情无套| 久久九九影视网| 日韩欧美三级在线| 欧美片网站yy| 日韩av二区在线播放| 国产高清精品网站| 一区二区免费在线| 久久99精品视频| 国产午夜精品久久久久久久| 亚洲影院久久精品| 丁香桃色午夜亚洲一区二区三区| 日韩黄色免费网站| 91老师片黄在线观看| 日本sm残虐另类| 亚洲日本欧美天堂| 亚洲综合图片区| 极品销魂美女一区二区三区| 色综合久久久久综合| 综合分类小说区另类春色亚洲小说欧美| 日本一区二区免费在线| 国产天堂亚洲国产碰碰| 免费视频一区二区| 色8久久人人97超碰香蕉987| 一区二区三区色| 不卡欧美aaaaa| 丁香一区二区三区| 欧美mv日韩mv国产网站| 波多野洁衣一区| 久久久激情视频| 91福利视频久久久久| 亚洲啪啪综合av一区二区三区| 国产精品综合在线视频| 精品免费视频一区二区| 久久草av在线| 国产亚洲一区二区在线观看| 黑人精品欧美一区二区蜜桃| 精品久久人人做人人爽| 777亚洲妇女| 亚洲国产精品综合小说图片区| 国产亚洲自拍一区| 欧美一区二区三区免费在线看| 一个色综合网站| 中文字幕欧美日本乱码一线二线| 国产成人小视频| 中文字幕亚洲电影| 国产亚洲福利社区一区| 亚洲成人午夜影院| 不卡一卡二卡三乱码免费网站| 国产麻豆精品一区二区| 国产精品热久久久久夜色精品三区 | 中文字幕视频一区二区三区久| 精品久久久久久久久久久久包黑料 | 欧美综合欧美视频| 欧美日韩国产高清一区二区| 日韩精品一区二区三区四区 | 欧美久久一二区| 久久综合九色综合久久久精品综合| 久久综合精品国产一区二区三区 | 亚洲精品福利视频网站| 日韩av一级片| 成人精品免费网站| 在线不卡免费av| 中文欧美字幕免费| 污片在线观看一区二区| 国产福利一区在线| 欧美怡红院视频| 国产亚洲va综合人人澡精品| 亚洲午夜久久久久久久久电影网| 免费看日韩精品| 91在线看国产| www国产成人| 亚洲国产成人高清精品| 国产一区 二区 三区一级| 欧美午夜电影在线播放| 久久久久88色偷偷免费| 天天综合色天天综合| 成人av网址在线| 日韩欧美精品在线| 一级中文字幕一区二区| 粉嫩高潮美女一区二区三区| 欧美日韩亚洲国产综合| 中文字幕第一区综合| 美女诱惑一区二区| 日本黄色一区二区| 国产精品久久久久一区| 蜜桃视频在线观看一区二区| 色成年激情久久综合| 国产精品午夜在线| 精品在线播放午夜| 91麻豆精品国产综合久久久久久| 国产午夜精品久久久久久免费视 | 92国产精品观看| 国产午夜精品久久久久久久| 久久精品国产一区二区| 91成人国产精品| 亚洲欧洲99久久| 国产99久久精品| 久久久不卡网国产精品二区| 日韩av电影天堂| 欧美日韩一区二区三区在线看| 国产精品久久久久久久久晋中| 国产最新精品免费| 欧美xxxxx裸体时装秀| 首页国产欧美久久| 欧美日韩国产一二三| 亚洲www啪成人一区二区麻豆| www.av精品| 国产精品久久久久一区二区三区共| 国模无码大尺度一区二区三区| 欧美v亚洲v综合ⅴ国产v| 日韩高清一区在线| 91精品黄色片免费大全| 视频精品一区二区| 欧美精品在线一区二区三区| 亚洲成人www| 欧美精品一级二级| 日韩电影在线免费看| 91精品国产入口在线| 日本午夜精品一区二区三区电影| 欧美日韩一区二区三区四区五区| 亚洲chinese男男1069| 欧美日韩你懂得| 婷婷久久综合九色国产成人 | 欧美久久高跟鞋激| 日产欧产美韩系列久久99| 欧美一级片免费看| 极品少妇xxxx偷拍精品少妇| 精品国精品自拍自在线| 国产电影一区在线| 亚洲欧洲性图库| 在线视频国内自拍亚洲视频| 香蕉乱码成人久久天堂爱免费| 91精品视频网| 激情综合网av| 国产精品情趣视频| 色美美综合视频| 亚洲va国产va欧美va观看| 欧美一级一级性生活免费录像| 久久精品国产99国产| 中文字幕第一区第二区| 欧美亚洲国产怡红院影院| 欧美aaaaa成人免费观看视频| 久久综合九色综合97_久久久| 粉嫩av亚洲一区二区图片| 亚洲精品一二三| 日韩欧美的一区二区| 不卡视频一二三四| 视频在线观看国产精品| 久久精品视频免费| 欧美午夜影院一区| 国产精品一二二区| 亚洲第一久久影院| 国产色产综合色产在线视频| 色综合久久久网|