⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image_effect.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
		hue_para.c21=sine[degree-180];
		hue_para.c22=-sine[270-degree];
	}
	else if(degree>270 && degree<=360)
	{
		hue_para.c11=sine[degree-270];
		hue_para.c12=-sine[360-degree];
		hue_para.c21=sine[360-degree];
		hue_para.c22=sine[degree-270];
	}
	else
	{
		ASSERT(0);
	}

	IMGPROC_SetHUE(owner_id, &hue_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_saturation_para
*
* DESCRIPTION
*	This function adjustments saturation parameters in PREVIEW and CAPTURE
*	mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_saturation_para(MMDI_SCENERIO_ID owner_id, kal_uint8 sat_value)
{
	/* Input data mapping between MMI and driver */
	if(sat_value<128)
	{
		sat_value/=4;
	}
	else
	{
//		sat_value=((sat_value-128)*7/4)+32;
		sat_value=((sat_value-128)*3/4)+32;	/* modify for workaround HW bug */
	}

	IMGPROC_SetSAT(owner_id, sat_value);
}

/*************************************************************************
* FUNCTION
*	adjustment_gamma_para
*
* DESCRIPTION
*	This function adjustments gamma parameters in PREVIEW and VIDEO PLAYBACK
*	mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_gamma_para(MMDI_SCENERIO_ID owner_id, kal_uint8 adj_level)
{
	IMGPROC_GAMMA_STRUCT gma_para;

	gma_para.gamma=gamma[adj_level][0];
	gma_para.off0=gamma[adj_level][1];
	gma_para.off1=gamma[adj_level][2];
	gma_para.off2=gamma[adj_level][3];
	gma_para.off3=gamma[adj_level][4];
	gma_para.off4=gamma[adj_level][5];
	gma_para.off5=gamma[adj_level][6];
	gma_para.off6=gamma[adj_level][7];
	gma_para.off7=gamma[adj_level][8];
	gma_para.slp0=gamma[adj_level][9];
	gma_para.slp1=gamma[adj_level][10];
	gma_para.slp2=gamma[adj_level][11];
	gma_para.slp3=gamma[adj_level][12];
	gma_para.slp4=gamma[adj_level][13];
	gma_para.slp5=gamma[adj_level][14];
	gma_para.slp6=gamma[adj_level][15];
	gma_para.slp7=gamma[adj_level][16];

	IMGPROC_SetGamma(owner_id, &gma_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_coloradj_r_para
*
* DESCRIPTION
*	This function adjustments coloradj R parameters in PREVIEW mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_coloradj_r_para(MMDI_SCENERIO_ID owner_id, kal_uint8 adj_level)
{
	IMGPROC_COLORIZE_STRUCT clr_para;

	clr_para.r1x=coloradj_rb[adj_level][0];
	clr_para.r1y=coloradj_rb[adj_level][1];
	clr_para.r2x=coloradj_rb[adj_level][2];
	clr_para.r2y=coloradj_rb[adj_level][3];
	clr_para.r0slp=coloradj_rb[adj_level][4];
	clr_para.r1slp=coloradj_rb[adj_level][5];
	clr_para.r2slp=coloradj_rb[adj_level][6];
	clr_para.g1x=0;
	clr_para.g1y=0;
	clr_para.g2x=0;
	clr_para.g2y=0;
	clr_para.g0slp=16;
	clr_para.g1slp=16;
	clr_para.g2slp=16;
	clr_para.b1x=0;
	clr_para.b1y=0;
	clr_para.b2x=0;
	clr_para.b2y=0;
	clr_para.b0slp=16;
	clr_para.b1slp=16;
	clr_para.b2slp=16;

	IMGPROC_SetColorize(owner_id, &clr_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_coloradj_g_para
*
* DESCRIPTION
*	This function adjustments coloradj G parameters in PREVIEW mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_coloradj_g_para(MMDI_SCENERIO_ID owner_id, kal_uint8 adj_level)
{
	IMGPROC_COLORIZE_STRUCT clr_para;

	clr_para.r1x=0;
	clr_para.r1y=0;
	clr_para.r2x=0;
	clr_para.r2y=0;
	clr_para.r0slp=16;
	clr_para.r1slp=16;
	clr_para.r2slp=16;
	clr_para.g1x=coloradj_g[adj_level][0];
	clr_para.g1y=coloradj_g[adj_level][1];
	clr_para.g2x=coloradj_g[adj_level][2];
	clr_para.g2y=coloradj_g[adj_level][3];
	clr_para.g0slp=coloradj_g[adj_level][4];
	clr_para.g1slp=coloradj_g[adj_level][5];
	clr_para.g2slp=coloradj_g[adj_level][6];
	clr_para.b1x=0;
	clr_para.b1y=0;
	clr_para.b2x=0;
	clr_para.b2y=0;
	clr_para.b0slp=16;
	clr_para.b1slp=16;
	clr_para.b2slp=16;

	IMGPROC_SetColorize(owner_id, &clr_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_coloradj_b_para
*
* DESCRIPTION
*	This function adjustments coloradj B parameters in PREVIEW mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_coloradj_b_para(MMDI_SCENERIO_ID owner_id, kal_uint8 adj_level)
{
	IMGPROC_COLORIZE_STRUCT clr_para;

	clr_para.r1x=0;
	clr_para.r1y=0;
	clr_para.r2x=0;
	clr_para.r2y=0;
	clr_para.r0slp=16;
	clr_para.r1slp=16;
	clr_para.r2slp=16;
	clr_para.g1x=0;
	clr_para.g1y=0;
	clr_para.g2x=0;
	clr_para.g2y=0;
	clr_para.g0slp=16;
	clr_para.g1slp=16;
	clr_para.g2slp=16;
	clr_para.b1x=coloradj_rb[adj_level][0];
	clr_para.b1y=coloradj_rb[adj_level][1];
	clr_para.b2x=coloradj_rb[adj_level][2];
	clr_para.b2y=coloradj_rb[adj_level][3];
	clr_para.b0slp=coloradj_rb[adj_level][4];
	clr_para.b1slp=coloradj_rb[adj_level][5];
	clr_para.b2slp=coloradj_rb[adj_level][6];

	IMGPROC_SetColorize(owner_id, &clr_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_brightness_para
*
* DESCRIPTION
*	This function adjustments brightness parameters in PREVIEW, CAPTURE,
*	VIDEO RECORD and VIDEO PLAYBACK mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_brightness_para(MMDI_SCENERIO_ID owner_id, kal_uint8 brightness_value)
{
	IMGPROC_BRI_CON_STURCT cba_para;

	if(brightness_value>=128)
	{
		cba_para.bright=(brightness_value-128)<<1;
		cba_para.dark=0;
	}
	else
	{
		cba_para.dark=((128-brightness_value)<<1)-1;
		cba_para.bright=0;
	}
	cba_para.contrast=32;

	IMGPROC_SetBrightContrast(owner_id, &cba_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_brightness_video_encode
*
* DESCRIPTION
*	This function adjustments brightness parameters in	VIDEO RECORD mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_brightness_video_encode(kal_uint8 brightness_value)
{
	IMGPROC_BRI_CON_STURCT cba_para;

	if(brightness_value>=128)
	{
		cba_para.bright=(brightness_value-128)<<1;
		cba_para.dark=0;
	}
	else
	{
		cba_para.dark=((128-brightness_value)<<1)-1;
		cba_para.bright=0;
	}
	cba_para.contrast=(*((volatile unsigned short *) (IMGPROC_CONADJ)))&0xFF;

	IMGPROC_SetBrightContrast(SCENARIO_MPEG_ENCODE_ID, &cba_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_brightness_video_decode
*
* DESCRIPTION
*	This function adjustments brightness parameters in	VIDEO DECORD mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_brightness_video_decode(kal_uint8 brightness_value)
{
	IMGPROC_BRI_CON_STURCT cba_para;

	if(brightness_value>=128)
	{
		cba_para.bright=(brightness_value-128)<<1;
		cba_para.dark=0;
	}
	else
	{
		cba_para.dark=((128-brightness_value)<<1)-1;
		cba_para.bright=0;
	}
	cba_para.contrast=(*((volatile unsigned short *) (IMGPROC_CONADJ)))&0xFF;

	IMGPROC_SetBrightContrast(SCENARIO_MPEG_DECODE_ID, &cba_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_contrast_para
*
* DESCRIPTION
*	This function adjustments contrast parameters in PREVIEW, CAPTURE,
*	VIDEO RECORD and VIDEO PLAYBACK mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_contrast_para(MMDI_SCENERIO_ID owner_id, kal_uint8 contrast_value)
{
	IMGPROC_BRI_CON_STURCT cba_para;

	/* Input data mapping between MMI and driver */
	if(contrast_value<128)
	{
		contrast_value/=4;
	}
	else
	{
//		contrast_value=((contrast_value-128)*7/4)+32;
		contrast_value=((contrast_value-128)*3/4)+32;	// decrease maximum contrast gain
	}

 	cba_para.contrast=contrast_value;
 	cba_para.bright=0;
 	cba_para.dark=0;

	IMGPROC_SetBrightContrast(owner_id, &cba_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_contrast_video_encode
*
* DESCRIPTION
*	This function adjustments contrast parameters in VIDEO RECORD mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_contrast_video_encode(kal_uint8 contrast_value)
{
	IMGPROC_BRI_CON_STURCT cba_para;

	/* Input data mapping between MMI and driver */
	if(contrast_value<128)
	{
		contrast_value/=4;
	}
	else
	{
		contrast_value=((contrast_value-128)*3/4)+32;	// decrease maximum contrast gain
	}

 	cba_para.contrast=contrast_value;
 	cba_para.bright=(*((volatile unsigned short *) (IMGPROC_BRIADJ1)))&0xFF;
 	cba_para.dark=(*((volatile unsigned short *) (IMGPROC_BRIADJ2)))&0xFF;

	IMGPROC_SetBrightContrast(SCENARIO_MPEG_ENCODE_ID, &cba_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_contrast_video_decode
*
* DESCRIPTION
*	This function adjustments contrast parameters in VIDEO DECORD mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_contrast_video_decode(kal_uint8 contrast_value)
{
	IMGPROC_BRI_CON_STURCT cba_para;

	/* Input data mapping between MMI and driver */
	if(contrast_value<128)
	{
		contrast_value/=4;
	}
	else
	{
		contrast_value=((contrast_value-128)*3/4)+32;	// decrease maximum contrast gain
	}

 	cba_para.contrast=contrast_value;
 	cba_para.bright=(*((volatile unsigned short *) (IMGPROC_BRIADJ1)))&0xFF;
 	cba_para.dark=(*((volatile unsigned short *) (IMGPROC_BRIADJ2)))&0xFF;

	IMGPROC_SetBrightContrast(SCENARIO_MPEG_DECODE_ID, &cba_para);
}

/*************************************************************************
* FUNCTION
*	adjustment_brightness_contrast_para
*
* DESCRIPTION
*	This function adjustments brightness and contrast parameters in PREVIEW,
*  CAPTURE,	VIDEO RECORD and VIDEO PLAYBACK mode
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void adjustment_brightness_contrast_para(MMDI_SCENERIO_ID owner_id, kal_uint8 brightness_value, kal_uint8 contrast_value)
{
	IMGPROC_BRI_CON_STURCT cba_para;
	
	/* Brightness Setting */
	if(brightness_value>=128)
	{
		cba_para.bright=(brightness_value-128)<<1;
		cba_para.dark=0;
	}
	else
	{
		cba_para.dark=((128-brightness_value)<<1)-1;
		cba_para.bright=0;
	}
	
	/* Contrast Setting */
	if(contrast_value<128)
	{
		contrast_value/=4;
	}
	else
	{
//		contrast_value=((contrast_value-128)*7/4)+32;
		contrast_value=((contrast_value-128)*3/4)+32;	// decrease maximum contrast gain
	}
 	cba_para.contrast=contrast_value;

	IMGPROC_SetBrightContrast(owner_id, &cba_para);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -