色彩调整
概述
ArtInChip 平台显示引擎支持色彩调整,当前 Luban-Lite SDK 仅支持 Video 图层进行色彩调整。
通过调整亮度,对比度,饱和度,色调等属性,可以使同一张图片或一段视频在 video 图层呈现不同的显示效果。
配置
ioctl
bash
// bsp/artinchip/include/uapi/artinchip_fb.h
/*
* struct aicfb_disp_prop - aicfb display property
*
* @bright: bright in percent, range [0, 100], 50 means no effect
* @contrast: contrast in percent, range [0, 100], 50 means no effect
* @saturation: saturation in percent, range [0, 100], 50 means no effect
* @hue: hue in percent, range [0, 100], 50 means no effect
*/
struct aicfb_disp_prop {
unsigned int bright;
unsigned int contrast;
unsigned int saturation;
unsigned int hue;
};
/** set display property */
#define AICFB_SET_DISP_PROP _IOW(IOC_TYPE_FB, 0x60, struct aicfb_disp_prop)
/** get display property */
#define AICFB_GET_DISP_PROP _IOR(IOC_TYPE_FB, 0x61, struct aicfb_disp_prop)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bright
显示亮度,[0, 100], 缺省等于 50,50 表示不调节亮度。
contrast
显示对比度,[0, 100], 缺省等于 50,50 表示不调节对比度。
saturation
显示饱和度,[0, 100], 缺省等于 50,50 表示不调节饱和度。
hue
显示色调,[0, 100], 缺省等于 50,50 表示不调节色调。
Video 图层调色
Video 图层的色彩调整较为简单,通过下放 ioctl AICFB_SET_DISP_PROP 和 AICFB_GET_DISP_PROP 即可调整 Video 图层的显示效果。
bash
struct aicfb_disp_prop prop = {50, 50, 50, 50};
mpp_fb_ioctl(fb, AICFB_GET_DISP_PROP, &prop)
prop.bright = 40;
prop.contrast = 30;
prop.saturation = 45;
prop.hue = 45;
mpp_fb_ioctl(fb, AICFB_SET_DISP_PROP, &prop)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Luban-Lite SDK 提供 disp_prop
命令进行 video 图层色彩调整,详情可见 disp_prop 测试指南章节。