lcd调色板工作原理详解

举例如下:

/*
 * 改变调色板为一种颜色
 * 输入参数:
 *     color: 颜色值,格式为0xAARRGGBB  /*AA为透明度*/
 */
 
red   = (color >> 19) & 0x1f;
green = (color >> 10) & 0x3f;
blue  = (color >>  3) & 0x1f;
color = (red << 11) | (green << 5) | blue; // 格式5:6:5
 

VD[0~23],我们开发板只用了16位。frambuffer内存大小为240*2*320

硬件时序学习:
VCLK:每来一个时钟就向下移动一个像素。
VD0~VD23:数据宽度,但是我们只用了16位。
VLINE:(HYSNC,行同步型号,水平方向的,从上一行的行尾调到下一行的行首),
VSYNC:(垂直同步信号,从最后一行行尾跳转到第一行的行首)
VDEN:有效才打印颜色
  

每一个像素就是一个点,每个像素用多少位来表示颜色。像素深度是用多少位来表示颜色,如果是16bpp,那么像素深度就是16,

当使用像素深度是16bpp的时候,就只需要把颜色取出来组成16位就可以了,组成方法上面就4行代码所写的,32位的color第四字节代表透明度,第三字节代表红色,第二字节代表绿色,第一字节代表蓝色,我们取出红色的高五位,绿色的高六位,蓝色的高五位
然和组合成一个16位的数据刚好和数据带宽能够吻合。(数据宽度是24位,这里我们用16bpp就够了,其实24bpp应该也可以,只是这样造成系统负担更重,而得不偿失)。
那么当使用像素深度为8pp时候,像素深度和我们的带宽不一致,我们的颜色要用16位表示,如果直接用上肯定不可能,那我们就可以选择用调色板,调色板中存放了256种16bpp的颜色,这时候我们color存放的就不是真实的颜色值了,而是存放的是调色板中256种颜色的索引,成线性关系一一对应,这样我们大大减轻了系统的负担。用16bpp还是8bpp这得取决实际情况,16bpp肯定比8pp清晰,但同时带来的负荷也更加重。

  

下面是分析的更加详细,上面红色部分是自己总结了一下。   

  对于一个显示设备,数据的更新率正比于画面的像素数和色彩深度的乘积。在嵌入式Linux系统 中,受处理器资源配置和运算能力的制约,当使用大分辨率显示时(如在一些屏幕尺寸较大的终端上,往往需要640×480以上),需要降低显示的色彩深度。 否则,由于数据处理负担过重会造成画面的抖动和不连贯。这时,调色板技术将发挥重要作用。ARM9内核的S3C2410在国内的嵌入式领域有着广泛的应用,芯片中带有LCD控制器,可支持多种分辨率、多种颜色深度的LCD显示输出。在此,将S3C2410的调色板技术,以及嵌入式Linux系统下调色板显示的实现方法进行分析。

  1 S3C2410调色板技术概述

  1.1 调色板的概念

  在计算机图像技术中,一个像素的颜色是由它的R,G,B分量表示的,每个分量又经过量化,一个像素总的量化级数就是这个显示系统的颜色深度。量 化级数越高,可以表示的颜色也就越多,最终的图像也就越逼真。当量化级数达到16位以上时,被称为真彩色。但是,量化级数越高,就需要越高的数据宽度,给 处理器带来的负担也就越重;量化级数在8位以下时,所能表达的颜色又太少,不能够满足用户特定的需求。

  为了解决这个问题,可以采取调色板技术。所谓调色板,就是在低颜色深度的模式下,在有限的像素值与RGB颜色之间建立对应关系的一个线性表。比 如说,从所有的16位彩色中抽取一定数量的颜色,编制索引。当需要使用某种彩色时,不需要对这种颜色的RGB分量进行描述,只需要引用它的索引号,就可以 使用户选取自己需要的颜色。索引号的编码长度远远小于RGB分量的编码长度,因此在彩色显示的同时,也大大减轻了系统的负担。

  以256色调色板为例,调色板中存储256种颜色的RGB值,每种颜色的RGB值是16位。用这256种颜色编制索引时,从OOH~FFH只需 要8位数据宽度,而每个索引所对应的颜色却是16位宽度的颜色信息。在一些对色彩种类要求不高的场合,如仪表终端、信息终端等,调色板技术便巧妙地解决了 数据宽度与颜色深度之间的矛盾。

  1.2 S3C2410中的调色板

  ARM9核的S3C2410芯片可通过内置的LCD控制器来实现对LCD显示的控制。以TFT LCD为例,S3C2410芯片的LCD控制器可以对TFT LCD提供1位、2位、4位、8位调色板彩色显示和16位、24位真彩色显示,并支持多种不同的屏幕尺寸。

  S3C2410的调色板其实是256个16位的存储单元,每个单元中存储有16位的颜色值。根据16位颜色数据中,RGB分量所占位数的不同, 调色板还可以采取5:6:5(R:G:B)和5:5:5:1(R:G:B:1)两种格式。当采用5:6:5(R:G:B)格式时,它的调色板如表1所示。

  表1中,第一列为颜色索引,中间三列是R,G,B三个颜色分量对应的数据位,分别是5位、6位和5位,最后一列是对应颜色条目的物理地址。当采用5:5:5:1(R:G:B:1)格式时,R,G,B三个颜色分量的数据位长度都是5位,最低位为1。

  用户编程时,应首先对调色板进行初始化处理(可由操作系统提供的驱动程序来完成),赋予 256色调色板相应的颜色值;在进行图像编程时,可以将图像对象赋予所需的颜色索引值。程序运行时,由芯片的LCD控制器查找调色板,按相应的值进行输 出。S3C2410芯片图像数据输出端口VD[23:O]有24位,当使用不同的色彩深度时,这24位数据可以表示一个或多个点的颜色信息

时间: 2025-01-28 00:08:43

lcd调色板工作原理详解的相关文章

ASP.NET页面与IIS底层交互和工作原理详解

ASP.NET页面与IIS底层交互和工作原理详解  第一回:   引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net.他们耐心.细致地告诉你如何一步步拖放控件.设置控件属性.编写CodeBehind代码,以实现某个特定的功能. 这种做法,实际上是回答了"如何去做"的问题,却没有回答"为什么可以这样做"的问题. 尽管我很推崇 悉江华 先生的<圣殿祭祀的Asp.Net开发详解>一书,但当我翻看了一下其对角色(R

Docker 网络工作原理详解_docker

Docker 网络工作原理 当Docker server也就是docker daemon启动时,会自动创建一个名字是docker0的bridge,每当docker创建一个Container时,会在主机上面创建一个名字是veth*的ethernet 端口,并把这个eth*加入到docker0的bridge,在container中会自动创建一个名字是eth0的ethernet端口,这个eth0和veth*会形成一个类似管道的对,一一对应. 配置DNS docker是如何分配每个container的h

AngularJS 工作原理详解_AngularJS

 个人觉得,要很好的理解AngularJS的运行机制,才能尽可能避免掉到坑里面去.在这篇文章中,我将根据网上的资料和自己的理解对AngularJS的在启动后,每一步都做了些什么,做一个比较清楚详细的解析.      首先上一小段代码(index.html),结合代码我们来看看,angular一步一步都做了些什么. <!doctype html> <html ng-app> <head> <script src="angular.js">&

工作原理详解-无线路由器的硬件结构

问题描述 无线路由器的硬件结构 无线路由器的硬件结构和工作原理,希望大神能提供一些详解的链接,多谢!! 解决方案 参考:基于RT3050的3G无线路由器的硬件设计 http://www.docin.com/p-372358487.html

HTTP响应报文与工作原理详解

超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息. HTTP 请求报文 HTTP 请求报文由请求行.请求头部.空行 和 请求包体 4 个部分组成,如下图所示: 下面对请求报文格式进行简单的分析: 请求行:请求行由方法字段.URL 字段 和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开.常用的 HTTP 请求

java HashMap 的工作原理详解_java

HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深.这题经常出现在高级或中高级面试中.投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力.ConcurrentHashMap和其它同步集合的引入让这道题变得更加复杂.让我们开始探索的旅程吧! 先来些简单的问题 "你用过HashMap吗?&quo

MPLS CSPF工作原理详解及相关实验

本文档关键知识点: CSPF选路原理 对CSPF路径选择有影响的参数 MPLS TE显示路径如何建立? CSPF--constrained SPF(shorest path tree).是MPLS TE路径选择的核心,前面我们已经知道,MPLS TE的功能是: 1,信息的发布 2,路径的计算和建立 3, 隧道中的流量转发. 在了解了CSPF的工作原理以后,其实就是对路径的计算和建立有了原理性的认识,对于以后MPLS TE的网络规划和故障排查都有一定的帮助. 在已经了解了SPF的路径选举方法以后,

dns工作原理详解

计算机在网络上进行通讯时只能识别如"201.51.0.73"之类的IP地址,而不能认识如www.ccidnet.com之类的域名,但是,当打开浏览器,在地址栏中输入如www.ccidnet.com的域名后,就能看到所需要的页面,这是因为有一个叫"DNS服务器"的计算机自动把我们的域名"翻译"成了相应的IP地址,然后调出IP地址所对应的网页. 什么是DNS DNS( Domain Name System)是"域名系统"的英文缩写

Ping命令工作原理详解

在网络应用中,ping网速与IP地址等都是非常常用的命令,但大家知道ping命令的工作原理吗?要知道这其中的奥秘,我们有必要来看看Ping命令的工作过程到底是怎么样的.接下来今天绿色资源网与大家介绍下ping命令的详细知识. 假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,都在同一子网内,则当你在主机A上运行"Ping 192.168.1.2"后,都发生了些什么呢? 首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这