LTDC 学习

来源:互联网 发布:php 检验 excel 编辑:程序博客网 时间:2024/05/18 11:49

       LTDC带时序控制,省去了控制器的控制芯片,配置好时序参数和每个层的参数,LTDC会自动从缓冲中取出数据刷新的显示器上。LTDC有三个层背景层、第一层显示、第二层显示由下向上叠加,但是最终显示的是这几层混合后的结果。LTDC支持alpha混合,这样就可以做出比较漂亮的界面,做出第二层悬浮在第一层的效果,类似于弹幕。

        主要简单记录下我对alpha透明的理解,如果理解有偏差,再修正。


          LTDC的显示过程:AHB总线从缓存中取出数据放到层的FIFO,每个层分别进行像素格式转换,不管每个层的颜色格式是RGb565还是其他都转换成一个字大小ARGB888,然后背景层、第一层和第二层混合,混合完成后经过抖动单元输出到显示面板。

         连接到显示面板最多RGB各8根线,所以不管层是否支持alpha透明通道,最终输出的最多RGB888,alpha透明值是没有直接输出的,透明值已经经过硬件的分频转换到输出颜色中了。刚开始我理解如果接线不是888的不能输出带透明通道效果的,实际上可以的,在层配置参数的颜色模式中选择带透明效果的就可以了,如果想做出带浮窗的效果,第二层的颜色格式必须始终带透明效果的。

         第一层和第二层的参数都是可以独立配置的颜色的格式、alpha的模式等等。

         alpha模式:恒定alpha、恒定alpha*像素alpha

          恒定alpha:整个层和底层的混合alpha值是固定的,但是带alpha值的像素alpha部分不参与运算,使用恒定的alpha做不到真正的透明,显示的只能说是两个层的混合效果。

          恒定alpha*像素alpha:每个像素的alpha都参与最终显示颜色的计算,一张图片中可能每个部分的透明度不一样,这样和底层混合后就可以得到有些部分真正透明。



        

原创粉丝点击