📄 image_effect.c
字号:
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 + -