1. 程式人生 > >lcd調色盤工作原理詳解

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位資料可以表示一個或多個點的顏色資訊

相關推薦

lcd調色盤工作原理

舉例如下: /*  * 改變調色盤為一種顏色  * 輸入引數:  *     color: 顏色值,格式為0xAARRGGBB  /*AA為透明度*/  */  red   = (color &

lvs和keeplived的工作原理

lvs+keeplived的工作原理一、lvs的工作原理 使用集群的技術和liunx的操作系統實現一個高性能、高可用的服務器。可伸縮性、可靠性、很好的管理性。 特點:可伸縮網絡服務的幾種結構,它們都需要一個前端的負載調度器(或者多個進行主從備份)。我們先分析實現虛擬網絡服務的主要技術,指出IP負載均衡技術

ping命令知識 Ping命令工作原理

pla bsp 知識 網吧 撥號 lock tcp 問題 mage   在網絡應用中,ping網速與IP地址等都是非常常用的命令,但大家知道ping命令的工作原理嗎?要知道這其中的奧秘,我們有必要來看看Ping命令的工作過程到底是怎麽樣的。下面介紹下ping命令的詳細知識。

網絡卡工作原理

此篇文章對網上現有資料進行了整理和補充,提取出有用的部分,進行存檔學習。 一,認識網絡卡        網絡卡(Network Interface Card,簡稱NIC),也稱網路介面卡,是電腦與區域網相互連線的裝置。無論是普通電腦還是高階伺服器,只要連線到區域網,就都需

Hadoop MapReduce八大步驟以及Yarn工作原理

Hadoop是市面上使用最多的大資料分散式檔案儲存系統和分散式處理系統, 其中分為兩大塊分別是hdfs和MapReduce, hdfs是分散式檔案儲存系統, 借鑑了Google的GFS論文. MapReduce是分散式計算處理系統, 借鑑了Google的MapR

交換機路由器作用以及工作原理

1.1 PC機之間訪問過程 A訪問B過程 通過資料(mac地址)進行訪問 1)A傳送request請求包,該包攜帶源macA和目標macB 2)request請求包經過中繼器進行(廣播),所有的都可以收到該包 3)B收到A的請求包後,B給A回覆一個包(因為通訊是雙向的)

Spring MVC總結之工作原理

目錄 1.MVC思想/模式 2.Spring MVC的前端控制器(DispatcherServlet) 3.業務控制器Handle 4.Spring MVC的請求流程: 1.MVC思想/模式 1.1 MVC思想將一個應用分為三個基本部分:Model(模型)、Vie

Android中Canvas繪圖之PorterDuffXfermode使用及工作原理

概述 類android.graphics.PorterDuffXfermode繼承自android.graphics.Xfermode。在用Android中的Canvas進行繪圖時,可以通過使用PorterDuffXfermode將所繪製的圖形的畫素與Canv

Tomcat工作原理

該檔案描述瞭如何啟動TomcatServer <!-----------------------------------------------------------------------------------------------> <web-app>      <!

ArrayList的基本工作原理add

ArrayList其實就是一個長度可變的陣列,看原始碼就是知道,就是是一個Object[]。 ArrayList是unsynchronized。 因為底層由陣列承載,那麼需要連續的記憶體空間,所以空間複雜度是O(n)。 如果按下標直接去get(index)

platform平臺匯流排工作原理

一、platform平臺匯流排的簡介 (1)相對於USB、PCI、I2C、SPI等物理匯流排來說,platform匯流排是一種虛擬、抽象出來的匯流排,實際中並不存在這樣的匯流排。 (2)cpu與外部通訊的兩種方式,地址匯流排式連結(32的cpu就有0-4G直

storm 工作原理

1.1、概念 l Workers (JVMs): 在一個物理節點上可以執行一個或多個獨立的JVM 程序。一個Topology可以包含一個或多個worker(並行的跑在不同的物理機上), 所以worker process就是執行一個topology的子集, 並且worke

Android Widget工作原理(一) 最全介紹

      Widget是安卓的一應用程式元件,學名視窗小部件,它是微型應用程式檢視, 可以嵌入到其他應用程式(如主螢幕)和接收資料定期更新。,可以使其他應用程式的外掛被稱為應用程式部件。使用者可以通過新增視窗小部件來新增自己喜歡的APPwidget ,widget主

【Java多執行緒】執行緒池的工作原理(下)

接著上篇文章,我接下來繼續介紹執行緒池的工作原理,如果你還沒有看上篇,我建議最好瀏覽一下:執行緒池的工作原理詳解(上) Executors 工具類 1.定義 Executors是java執行緒池的工廠類,通過它可以快速初始化一個符合業務需求的執行緒池。

Appscan工作原理

AppScan,即 AppScan standard edition。其安裝在 Windows 作業系統上,可以對網站等 Web 應用進行自動化的應用安全掃描和測試。   Rational AppScan(簡稱 AppScan)其實是一個產品家族,包括眾多的應用安全掃描產品,從開發階段的原始碼掃描的 A

【深入Java虛擬機器】之Java虛擬機器工作原理

轉自:https://blog.csdn.net/bingduanlbd/article/details/8363734 一、類載入器 首先來看一下java程式的執行過程。               &nbs

Spark Streaming初步使用以及工作原理

在大資料的各種框架中,hadoop無疑是大資料的主流,但是隨著電商企業的發展,hadoop只適用於一些離線資料的處理,無法應對一些實時資料的處理分析,我們需要一些實時計算框架來分析資料。因此出現了很多流式實時計算框架,比如Storm,Spark Strea

ftp工作原理

基於C/S結構:客戶/伺服器模式 雙通道協議:資料和命令連線 資料傳輸格式:二進位制(預設)和文字 兩種模式:伺服器角度 ftp協議是雙通道,資料通道和命令通道,命令通道是固定埠21,而ftp資料通

ArrayList的基本工作原理remove

其實remove(index),add(index,e)類似去操作下標增加或者刪除的。其實用ArrayList挺費勁的。 下面就看看費勁在哪。 拿remove來說 public E remo

無刷直流電機構成及工作原理

直流電機主要有直流有刷電機和無刷直流電機兩種,特別是無刷直流電機以其出色的工作特性在工業生產及日常生活中應用廣泛,本文對無刷直流電機構成及工作原理進行介紹。一無刷直流電機簡介  無刷直流電機(BLDC)以電子換向器取代了機械換向器,所以無刷直流電機既具有直流電機良好的調速效能