LCDC混色器介绍
LCDC常见概念
- 窗口
一般就是等于屏幕的物理分辨率,主要用于内部的时序控制
- 层
LCDC支持多个图层,每个图层会经过混色器混色并叠加在一起,最终显示在屏幕面板上
混色的过程
混色器介绍
LCDC共包含7个混色器(blender),每个混色器包含2个输入通道和1个输出通道。2个输入通道分别是SRC和DST通道。混色器的功能是将SRC和DST输入通道的像素,按照预设的混色算法(如: SRC_OVER)进行计算,OUT通道输出结果,并作为下一级混色器的DST输入通道。混色器从Blend0到Blend7依次进行混色,比如先计算L0和L1的混色,并将结果和L2进行混色,然后将结果和L3进行混色,直到L7混色完成,将Blend7的OUT作为最终的混色结果。具体的混色算法可以参考手册的ALPHA_BLENDER 的模式
章节。
注意:HPM6800系列MCU只包含CLEAR,SRC_OVER和DST_OVER三种混色算法
混色器工作模式
混色器根据输入通道的打开情况,会分为以下三种工作模式:
- 混色计算模式
- 旁路模式
- 背景色模式
混色计算模式
当混色器的输入和输出通道都使能(即通道对应的图层使能)时,混色器工作在常规的混色计算模式,根据图层配置的预设的混色算法进行Porter-Duff
混色计算。混色器的功能参数由SRC通道对应的图层进行配置。比如Blend1由Layer1的寄存器进行配置。
如果alpha通道的混色结果为0,那么当前像素点可以通过DST的背景色进行填充,DST的背景色在DST通道对应的图层配置中进行设置。比如Bland2的背景色是通过L1的寄存器进行配置的,Bland7的背景色是由L6进行配置的。
旁路模式
当混色器只有一个通道使能时,Blender工作在旁路模式,Blender的使能的输入通道直接作为输出,不做任何处理,包括alpha为0的颜色也不进行背景色替换。
需要注意的是Blend2-Blend7的DST都是上一级的OUT,上一级的OUT是肯定有输出的,那么Blend2-7的DST通道一定是使能的,所以Blend2-7至少是有一个通道使能的,所以Blend2-7不可能工作在背景色模式。
背景色模式
当混色器2个通道都禁止时,那么Blender工作在背景色模式。只有Blend1才能工作在这个模式,其他Blender至少有一个通道是使能的。当工作在背景色模式时,Blend1的输出,恒定为Blender的背景色,也就是L0图层的背景色。