Edit online

色彩调整

4 Dec 2024
Read time: 2 minute(s)

ArtInChip 平台显示引擎支持色彩调整,覆盖 UI 图层和 Video 图层。

通过调整亮度,对比度,饱和度,色调等属性,可以使同一张图片或一段视频呈现不同的显示效果, 能让质量不同的 LCD 外设拥有相近的显示效果。

对于色彩调整的相关参数,支持 device tree 配置,在应用启动时即时生效。也支持 ioctl 动态调整,方便调试。UI 图层和 Video 图层使用同一份色彩调整参数:
  • 如果选择 Video 图层调色且禁用 UI 图层调色,则略过 device tree 配置。在 device tree 中配置色彩调整参数后,显示驱动会同时使能 UI 和 Video 图层的色彩调整功能。

    使用 Video 图层调试时,仅需由应用程序向底层下放 ioctl 命令中的 AICFB_SET_DISP_PROPAICFB_GET_DISP_PROP 即可调整 Video 图层的显示效果。

  • 如果选择 UI 图层调色,则需要配置 device tree

    如果 device tree 中没有配置相关属性,或者相关属性都设置为 50。显示驱动默认禁用 UI 图层调色功能。
    &fb0 {
        disp-bright = <45>;
        disp-contrast = <50>;
        disp-saturation = <60>;
        disp-hue = <50>;
    };
详细配置流程如下所示:
  1. 定义 ioctl 命令,分别用于设置和获取显示属性。
    // include/uapi/Video/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)
  2. 配置 device tree:
    &fb0 {
    
        disp-bright = <45>;
        disp-contrast = <50>;
        disp-saturation = <60>;
        disp-hue = <50>;
    
        port {
            fb0_out: endpoint {
                remote-endpoint = <&de0_in>;
            };
        };
    };
    • disp-bright

      显示亮度,[0, 100], 缺省等于 50,50 表示不调节亮度。

    • disp-contrast

      显示对比度,[0, 100], 缺省等于 50,50 表示不调节对比度。

    • disp-saturation

      显示饱和度,[0, 100], 缺省等于 50,50 表示不调节饱和度。

    • disp-hue

      显示色调,[0, 100], 缺省等于 50,50 表示不调节色调。