转自:https://www.cnblogs.com/hzl6255/p/5470583.html

1. 介绍

Video的显示离不开LCD, 所以这里简单介绍一下LCD的接口和RGB

LCD的全称是Liquid Crystal Display 的简称, 即液晶显示器
LCD目前已经取代CRT, 成为TV、PC等的标配

2. 接口类型

首先我们以传递的信号类型来区分主要有两大类:
- 模拟信号:
   - VGA: Video Graphics Array
- 数字信号
   - TTL: Transistor Transisor Logic
   - LVDS: Low Voltage Differential Signaling
   - TMDS: Transition Minimized Differential Signal

连接方式实例如下图所示

2.1 TTL接口

LCD TTL接口中一般包含
数据信号: 指RGB数据信号, 如R0~R5、G0~G5、B0~B5
时钟信号: 像素时钟信号(DCLK), 是传输数据和对数据信号进行读取的基准
控制信号: 包括数据有效信号(DE), 行同步信号(HSYNC)、场同步信号(VSYNC)

2.2 LVDS接口

LVDS是一种低压差分信号技术掊, 它是美国国家半导体公司为了克服以TTL电平方式传输宽带高码率数据时功耗大、电磁干扰大等缺点而研制的一种数字视频信号传输方式
传递的信号与TTL类型, 不累叙

2.3 TMDS接口

TMDS, 即过渡调制差分信号, 也被称为最小化传输差分信号
是一种微分信号机制, 运行先进的编码算法, 把8bit数据(R、G、B中每路基色信号)通过最小转换编码为10bit数据
这10bit数据包含行场同步信号信息、时钟信息、数据DE、纠错等, 经过DC平衡后, 采用差分信号传输数据
它和LVDS、TTL相比有较好的电磁兼容性能, 可以用低成本的专用电缆实现长距离、高质量的数据信号传输

3. RGB

从上面的接口可以发现, 从LCD传递的是RGB数据
这也是本人比较关注的东西

RGB一般是指RGB色彩模型(RGB color model), 是工业界的一种颜色标准
通过对红(Red)、绿(Green)、蓝(Blue)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的
RGB即是代表红、绿、蓝三个通道的颜色, 这个标准几乎包括了人类视力所能感知的所有颜色

通常一个颜色通道由8bit表示, 即每个颜色通道值得范围是0~255, 通常称RGB888/RGB24
三个颜色通道总共能组合出约1678(256×256×256)万种色彩, 通常也被简称为1600万色或千万色, 也称为24位色(2^24)

在实际的使用中, 除了RGB24, 还有RGB555,、RGB565、RGB32(另8bit用作alpha通道或者不用)

颜色名称

Red

Green

Blue

黑色 0 0 0
蓝色 0 0 255
绿色 0 255 0
青色 0 255 255
红色 255 0 0
洋红色 255 0 255
黄色 255 255 0
白色 255 255 255

4. YUV

颜色模型除了RGB, 还有CIE, YUV
其中YUV又包括YUV(PAL), Y'CbCr(是YUV压缩和偏移的版本)
通常YUV(PAL)用于彩色电视机, Y'CbCr在计算机系统中应用非常广泛, 我们一般说的YUV指的是Y'CbCr

历史上, YUV被用于电视系统PAL (NTSC里面使用YIQ, 是YUV color space的变种)的颜色信号的模拟编码
Y'PbPr/Y'CbCr 则被用于视频和静态图像处理系统中的颜色编码(例如MPEG/JPEG)

Y′是亮度(luma)分量, Cb指蓝色色度(chroma)分量,而Cr指红色色度(chroma)分量
Y′是区别于Y(亮度, luminance), 是光强(light)基于Gamma校正的RGB三原色的非线性编码
当只有Y′时, 显示出来的是黑白图像, 详细可参看下图

根据采样格式的不同 Y'CbCr又可分为Y′CbCr 4:2:0、Y′CbCr 4:2:2、Y′CbCr 4:1:1和Y′CbCr 4:4:4
以Y′CbCr 4:1:1为例, 其含义为: 每个点保存一个8bit 的亮度值(也就是Y′值), 每 2x2 个点保存一个Cr 和Cb 值, 图像在肉眼中的感觉不会起太大的变化

用RGB24模型, 每个点需要8x3=24 bits, 而Y′CbCr 4:1:1仅需要 8+(8/4)+(8/4)=12bits, 平均每个点占12bits
这样就把图像的数据压缩了一半

5. FOURCC

我们知道RGB/YUV按照不同采样格式有不同的类型, 在实际的使用中该如何简单快速地区分它们呢, 这里就得提到FOURCC了

FOURCC(four-character code)是一个4bit序列, 用来唯一标识一个数据格式(主要用于视频编解码)
同时也包括了RGB和YUV的格式, 当然FOURCC所定义远不止它们
在Linux中, 可以通过v4l2_fourcc宏来定义该值(include/linux/Videodev2.h)
比较常用的RGB和YCbCr格式有

/* RGB formats */
#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */
#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */
#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ /* two planes -- one Y, one Cr + Cb interleaved */
#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */
#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */

参考:

<Android LCD>
<常见视频接口介绍>
<各种视频信号格式及端子介绍>
<深入理解color model(颜色模型)>

LCD接口和RGB介绍【转】的更多相关文章

  1. LCD接口和RGB介绍

    1. 介绍 Video的显示离不开LCD, 所以这里简单介绍一下LCD的接口和RGB LCD的全称是Liquid Crystal Display 的简称, 即液晶显示器LCD目前已经取代CRT, 成为 ...

  2. LCD接口(转载)

    LCD接口分类 1.   I8080接口,我觉得应该就是所谓的8080,通常会用在12864屏上面,且有内部sdram,不需要实时的刷新图片,速度有限制, 支持的数据宽度有8/9/16/18bit,接 ...

  3. 【转】Android LCD(三):Samsung LCD接口篇

    关键词:android LCD控制器 Framebuffer PWM  平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos ...

  4. Android LCD(三):Samsung LCD接口篇

    关键词:android LCD控制器 Framebuffer PWM  平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0  平台:samsung exy ...

  5. 对LCD接口的认识

    LCD接口类型: 1.首先我们以传递的信号类型来区分主要有两大类:- 模拟信号: - VGA: Video Graphics Array- 数字信号 - TTL: Transistor Transis ...

  6. List接口:(介绍其下的两个实现类:ArrayList和LinkedList)

    以下介绍接口: List接口:(介绍其下的两个实现类:ArrayList和LinkedList) ArrayList和数组非常类似,其底层①也用数组组织数据,ArrayList是动态可变数组. ①  ...

  7. JDBC常用接口、类介绍

    JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connectio ...

  8. android系统平台显示驱动开发简要:Samsung LCD接口篇『三』

    平台信息: 内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博 ...

  9. (转)常见LCD接口

    LCD常用接口原理 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 xubin 平台信息:内核:linux2.6/linux3.0系统: ...

随机推荐

  1. 搭建vue项目环境

    前言 在开发本项目之前,我对vue,react,angular等框架了解,仅限于知道它们是什么框架,他们的核心是什么,但是并没有实际使用过(angular 1.0版本用过,因为太难用,所以对这类框架都 ...

  2. 自己动手写CPU(基于FPGA与Verilog)

    大三上学期开展了数字系统设计的课程,下学期便要求自己写一个单周期CPU和一个多周期CPU,既然要学,就记录一下学习的过程. CPU--中央处理器,顾名思义,是计算机中最重要的一部分,功能就是周而复始地 ...

  3. PHP环境手动搭建wamp-----Apache+MySQL+PHP

    首先下载分别下载Apache+MySQL+PHP. 然后分别解压到文件夹中. 1.安装Apache 1)检查80端口是否占用 说明:apache软件占用80软件,在计算机中一个端口只能被一个软件占用 ...

  4. Docker学习笔记 - Docker的仓库

  5. Linux知识积累 (9) 创建用户、分配权限和更改所有者

    一.useradd和adduser 1.useradd命令: 用于Linux中创建的新的系统用户. useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码. 而可用userde ...

  6. vue2.0+koa2+mongodb实现注册登录

    前言 前段时间和公司一个由技术转产品的同事探讨他的职业道路,对我说了一句深以为然的话: "不要把自己禁锢在某一个领域,技术到产品的转变,首先就是思维上的转变.你一直做前端,数据的交互你只知道 ...

  7. java中的interface

    转载: Java不支持多重继承,即一个类只能有一个父类 为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口 接口是抽象方法和常量值定义的集合,是一种特殊的抽象类接口中只包含常量和方法的定 ...

  8. Spring 环境与profile(三)——利用maven的resources、filter和profile实现不同环境使用不同配置文件

    基本概念 profiles定义了各个环境的变量id filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值 resources中是定义哪些目录下的文件会被配置文 ...

  9. [CodeForces10D]LCIS(最长公共上升子序列) - DP

    Description 给定两个数列,求最长公共上升子序列,并输出其中一种方案. Input&Output Input 第一行一个整数n(0<n<=500),数列a的长度. 第二行 ...

  10. 【转】Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)

      urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存哦,下面整理了一些关于urllib使用中的 ...