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

📄 image_effect.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_sepiagreen(void)
{
	IMGPROC_PIXEL_EFFECT_STURCT pixel_effect_para;

	/* config Image Processor */
	pixel_effect_para.hsa=IMGPROC_HSA_COLORIZE;
	pixel_effect_para.cba=0;
	pixel_effect_para.inv=0;
	pixel_effect_para.clr=0;
	pixel_effect_para.gma=0;

#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	/* config Image DMA */
	IMGDMA_Init();
	IMGDMA_Open(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_SetPixelEffect( &pixel_effect_para, SCENARIO_IMG_EFFECT_ID);
	DRV_WriteReg32(IMGPROC_COLORIZEU, -30);
	DRV_WriteReg32(IMGPROC_COLORIZEV, -30);

	/* start Image Processor */
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);

	/* start Image DMA */
	IMGDMA_IBW1Config( &ibw1_para, 1, SCENARIO_IMG_EFFECT_ID);
	IMGDMA_IBR1Config( &ibr1_para, 1, SCENARIO_IMG_EFFECT_ID);

	/* wait Image DMA */
	imgdma_wait_done();

	/* close Image DMA */
	IMGDMA_Close(SCENARIO_IMG_EFFECT_ID);

#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	ipp_config_data.pixel_effect_para=pixel_effect_para;
	DRV_WriteReg32(IMGPROC_COLORIZEU, -30);
	DRV_WriteReg32(IMGPROC_COLORIZEV, -30);
	config_pixel_effect_data_path(&ipp_config_data);
	/* wait Image DMA */
	imgdma_wait_done();
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_sepiablue
*
* DESCRIPTION
*	This function provides blue sepia effect in VIDEO PLAYBACK, IMAGE PLAYBACK
*	and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_sepiablue(void)
{
	IMGPROC_PIXEL_EFFECT_STURCT pixel_effect_para;

	/* config Image Processor */
	pixel_effect_para.hsa=IMGPROC_HSA_COLORIZE;
	pixel_effect_para.cba=0;
	pixel_effect_para.inv=0;
	pixel_effect_para.clr=0;
	pixel_effect_para.gma=0;

#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	/* config Image DMA */
	IMGDMA_Init();
	IMGDMA_Open(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_SetPixelEffect( &pixel_effect_para, SCENARIO_IMG_EFFECT_ID);
	DRV_WriteReg32(IMGPROC_COLORIZEU, 88);
	DRV_WriteReg32(IMGPROC_COLORIZEV, -30);

	/* start Image Processor */
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);

	/* start Image DMA */
	IMGDMA_IBW1Config( &ibw1_para, 1, SCENARIO_IMG_EFFECT_ID);
	IMGDMA_IBR1Config( &ibr1_para, 1, SCENARIO_IMG_EFFECT_ID);

	/* wait Image DMA */
	imgdma_wait_done();

	/* close Image DMA */
	IMGDMA_Close(SCENARIO_IMG_EFFECT_ID);

#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	ipp_config_data.pixel_effect_para=pixel_effect_para;
	DRV_WriteReg32(IMGPROC_COLORIZEU, 88);
	DRV_WriteReg32(IMGPROC_COLORIZEV, -30);
	config_pixel_effect_data_path(&ipp_config_data);
	/* wait Image DMA */
	imgdma_wait_done();
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_colorinv
*
* DESCRIPTION
*	This function provides color invert effect in VIDEO PLAYBACK, IMAGE PLAYBACK
*	and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_colorinv(void)
{
	IMGPROC_PIXEL_EFFECT_STURCT pixel_effect_para;
	IMGPROC_GAMMA_STRUCT gma_para;

	/* config Image Processor */
	pixel_effect_para.hsa=IMGPROC_HSA_NONE;
	pixel_effect_para.cba=0;
	pixel_effect_para.inv=1;
	pixel_effect_para.clr=0;
	pixel_effect_para.gma=1;
	gma_para.gamma=0;
	gma_para.off0=0;
	gma_para.off1=0;
	gma_para.off2=0;
	gma_para.off3=0;
	gma_para.off4=0;
	gma_para.off5=0;
	gma_para.off6=0;
	gma_para.off7=0;
	gma_para.slp0=0x10;
	gma_para.slp1=0x10;
	gma_para.slp2=0x10;
	gma_para.slp3=0x10;
	gma_para.slp4=0x10;
	gma_para.slp5=0x10;
	gma_para.slp6=0x10;
	gma_para.slp7=0x10;
	IMGPROC_SetGamma(SCENARIO_IMG_EFFECT_ID, &gma_para);

#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	/* config Image DMA */
	IMGDMA_Init();
	IMGDMA_Open(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_SetPixelEffect( &pixel_effect_para, SCENARIO_IMG_EFFECT_ID);

	/* start Image Processor */
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);

	/* start Image DMA */
	IMGDMA_IBW1Config( &ibw1_para, 1, SCENARIO_IMG_EFFECT_ID);
	IMGDMA_IBR1Config( &ibr1_para, 1, SCENARIO_IMG_EFFECT_ID);

	/* wait Image DMA */
	imgdma_wait_done();

	/* close Image DMA */
	IMGDMA_Close(SCENARIO_IMG_EFFECT_ID);

#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	ipp_config_data.pixel_effect_para=pixel_effect_para;
	config_pixel_effect_data_path(&ipp_config_data);
	/* wait Image DMA */
	imgdma_wait_done();
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_grayinv
*
* DESCRIPTION
*	This function provides gray color invert effect in VIDEO PLAYBACK,
*	IMAGE PLAYBACK and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_grayinv(void)
{
	IMGPROC_PIXEL_EFFECT_STURCT pixel_effect_para;

	/* config Image Processor */
	pixel_effect_para.hsa=IMGPROC_HSA_GRAY;
	pixel_effect_para.cba=0;
	pixel_effect_para.inv=1;
	pixel_effect_para.clr=0;
	pixel_effect_para.gma=0;

#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	/* config Image DMA */
	IMGDMA_Init();
	IMGDMA_Open(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_SetPixelEffect( &pixel_effect_para, SCENARIO_IMG_EFFECT_ID);

	/* start Image Processor */
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);

	/* start Image DMA */
	IMGDMA_IBW1Config( &ibw1_para, 1, SCENARIO_IMG_EFFECT_ID);
	IMGDMA_IBR1Config( &ibr1_para, 1, SCENARIO_IMG_EFFECT_ID);

	/* wait Image DMA */
	imgdma_wait_done();

	/* close Image DMA */
	IMGDMA_Close(SCENARIO_IMG_EFFECT_ID);

#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	ipp_config_data.pixel_effect_para=pixel_effect_para;
	config_pixel_effect_data_path(&ipp_config_data);
	/* wait Image DMA */
	imgdma_wait_done();
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_watercolor
*
* DESCRIPTION
*	This function provides watercolor effect in VIDEO PLAYBACK,
*	IMAGE PLAYBACK and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_watercolor(void)
{
	IMGPROC_MASK_STURCT	filter_coef;

	clean_imgprc_coefficient(SCENARIO_IMG_EFFECT_ID);

	filter_coef.c11=0;
	filter_coef.c12=-1;
	filter_coef.c13=0;
	filter_coef.c21=-1;
	filter_coef.c22=5;
	filter_coef.c23=-1;
	filter_coef.c31=0;
	filter_coef.c32=-1;
	filter_coef.c33=0;

#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	/* 5 times median + moresharpen */
	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.source_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest2_buffer_address);
	DRV_WriteReg32(IMGPROC_IMGWIDTH, image_effect_dec_para.image_width);
	DRV_WriteReg32(IMGPROC_IMGHEIGHT, image_effect_dec_para.image_height);
	IMGPROC_SetMask(FILTER_MED, SCENARIO_IMG_EFFECT_ID);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.dest2_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest1_buffer_address);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.dest1_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest2_buffer_address);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.dest2_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest1_buffer_address);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.dest1_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest2_buffer_address);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.dest2_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest1_buffer_address);
	IMGPROC_SetMask(FILTER_HP, SCENARIO_IMG_EFFECT_ID);
	IMGPROC_SetMaskContent(SCENARIO_IMG_EFFECT_ID, &filter_coef);

	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	ipp_config_data.filter_mode=IPP_FILTER_MEDIAN_RANKING;
	ipp_config_data.dest_address=image_effect_dec_para.dest2_buffer_address;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	ipp_config_data.src_address=image_effect_dec_para.dest2_buffer_address;
	ipp_config_data.dest_address=image_effect_dec_para.dest1_buffer_address;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	ipp_config_data.src_address=image_effect_dec_para.dest1_buffer_address;
	ipp_config_data.dest_address=image_effect_dec_para.dest2_buffer_address;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	ipp_config_data.src_address=image_effect_dec_para.dest2_buffer_address;
	ipp_config_data.dest_address=image_effect_dec_para.dest1_buffer_address;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	ipp_config_data.src_address=image_effect_dec_para.dest1_buffer_address;
	ipp_config_data.dest_address=image_effect_dec_para.dest2_buffer_address;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	ipp_config_data.src_address=image_effect_dec_para.dest2_buffer_address;
	ipp_config_data.dest_address=image_effect_dec_para.dest1_buffer_address;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_SetMaskContent(SCENARIO_IMG_EFFECT_ID, &filter_coef);
	ipp_config_data.filter_mode=IPP_FILTER_LINEAR_HP;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_lightblur
*
* DESCRIPTION
*	This function provides lightblur effect in VIDEO PLAYBACK,
*	IMAGE PLAYBACK and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_lightblur(void)
{
	IMGPROC_MASK_STURCT	filter_coef;

	clean_imgprc_coefficient(SCENARIO_IMG_EFFECT_ID);

	filter_coef.c11=1;
	filter_coef.c12=1;
	filter_coef.c13=1;
	filter_coef.c21=1;
	filter_coef.c22=1;
	filter_coef.c23=1;
	filter_coef.c31=1;
	filter_coef.c32=1;
	filter_coef.c33=1;

#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.source_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest1_buffer_address);
	DRV_WriteReg32(IMGPROC_IMGWIDTH, image_effect_dec_para.image_width);
	DRV_WriteReg32(IMGPROC_IMGHEIGHT, image_effect_dec_para.image_height);

	IMGPROC_SetMask(FILTER_LP, SCENARIO_IMG_EFFECT_ID);
	IMGPROC_SetMaskContent(SCENARIO_IMG_EFFECT_ID, &filter_coef);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	IMGPROC_SetMaskContent(SCENARIO_IMG_EFFECT_ID, &filter_coef);
	ipp_config_data.filter_mode=IPP_FILTER_LINEAR_LP;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_blur
*
* DESCRIPTION
*	This function provides blur effect in VIDEO PLAYBACK,
*	IMAGE PLAYBACK and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_blur(void)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	clean_imgprc_coefficient(SCENARIO_IMG_EFFECT_ID);

	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.source_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest1_buffer_address);
	DRV_WriteReg32(IMGPROC_IMGWIDTH, image_effect_dec_para.image_width);
	DRV_WriteReg32(IMGPROC_IMGHEIGHT, image_effect_dec_para.image_height);

	IMGPROC_SetMask(FILTER_BLUR, SCENARIO_IMG_EFFECT_ID);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	ipp_config_data.filter_mode=IPP_FILTER_BLUR;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_strongblur
*
* DESCRIPTION
*	This function provides strong blur effect in VIDEO PLAYBACK,
*	IMAGE PLAYBACK and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_dec_strongblur(void)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
	clean_imgprc_coefficient(SCENARIO_IMG_EFFECT_ID);

	DRV_WriteReg32(IMGPROC_START_SRC, image_effect_dec_para.source_buffer_address);
	DRV_WriteReg32(IMGPROC_START_DST, image_effect_dec_para.dest1_buffer_address);
	DRV_WriteReg32(IMGPROC_IMGWIDTH, image_effect_dec_para.image_width);
	DRV_WriteReg32(IMGPROC_IMGHEIGHT, image_effect_dec_para.image_height);

	IMGPROC_SetMask(FILTER_BLUR_MORE, SCENARIO_IMG_EFFECT_ID);
	IMGPROC_Start(SCENARIO_IMG_EFFECT_ID);

	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	ipp_config_data.filter_mode=IPP_FILTER_MORE_BLUR;
	config_filter_effect_data_path(&ipp_config_data);
	IMGPROC_WaitComplete(SCENARIO_IMG_EFFECT_ID);
#endif
}

/*************************************************************************
* FUNCTION
*	effect_dec_unsharp
*
* DESCRIPTION
*	This function provides unsharp effect in VIDEO PLAYBACK,
*	IMAGE PLAYBACK and POST-PORCESSING mode.
*
* PARAMETERS
*	None
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
**************************************************************

⌨️ 快捷键说明

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