zoukankan      html  css  js  c++  java
  • 【转载】EDID的简介和解析

    原文:https://www.cnblogs.com/beyond-rxl/p/9266997.html

    去年对EDID做了一个解析,下面是学习EDID过程中整理的资料。

    一、EDID简介

    EDID: Extended Display Identification Data (外部显示设备标识数据)----指DDC通讯中传输的显示设备数据。

    Q1:EDID是什么?

    A1:EDID的全称是Extended Display Identification Data(扩展显示标识数据),VGA、DVI的EDID由主块128字节组成,HDMI的EDID增加扩展块(128字节),扩展块的内容主要是和音频属性相关的,DVI和VGA没有音频,HDMI自带音频,扩展块数据规范按照CEA-861x标准定义,未来可能增加到512或256的整数倍。

    其中包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。形象地说,EDID就是显示器的身份证、户口本、技能证书等证件的集合,目的就是告诉别人我是谁,我从哪来,我能干什么。

    Q2:为什么要使用EDID?

    A2:为了能让PC或其他的图像输出设备更好的识别显示器属性

    EDID并非古而有之,在古老的CRT时期是没有EDID这个概念的,那为什么后来会有呢?因为随着显示设备的发展,显示器的种类越来越多,模拟的、数字的、普屏的、宽屏的、17寸、19寸、22寸……这让PC傻了眼,分辨率和时序的种类太多了,而每种显示器又不可能支持所有的分辨率,那怎么知道该给显示器一个什么样的分辨率啊?显示出的效果是最佳效果吗?不仅如此,随便输出一个分辨率还有损坏显示器硬件的可能,这可太危险了。于是,EDID临危受命,担当起显示器和PC之前的传话筒。“PC你好,我是A显示器,我能显示N种分辨率,最佳分辨率是XXX”。“显示器你好,收到你的信息,现在就按最佳分辨率给你输出”。这下大家明白了吧,EDID就是为了能让PC或其他的图像输出设备更好的识别显示器属性而出现的。

    Q3:经常听到有同志一会说“EDID信息”,一会说“DDC信息”。那么哪种说法更准确?EDID和DDC的关系又是什么?

    A3: DDC的全称是Display Data Channel(显示数据通道),顾名思义,它是一个通道。我们可以说DDC是用来传送EDID信息的,也可以说EDID信息是通过DDC传送的,所以,“DDC信息”的说法并不准确。

    Q4:每个显示器只有一个EDID吗?

    A4:不一定。

    现在的显示器功能很强大,通常都提供多种视频接口,常见的有DVI、VGA、HDMI、Display Port等,由于每种接口的特性和带宽不同,使得不同接口的EDID也不同。使用哪个接口,PC读到的就是哪个接口的EDID。我们的设备主要使用DVI、VGA、HDMI几种接口。由于VIDEO接口的几种制式如PAL、NTSC等,其分辨率场频都是固定的,没有使用EDID的必要,故不在讨论之列。

    Q5:EDID对我们到底有什么用?

    A5:要回答这个问题,首先要弄清我们设备的应用场景,请看下图

    这是一个典型的应用场景,PC将视频信号发送到我们的设备上,经过一系列的传输或切换,设备将视频信号发送到显示器或投影机上,也就是说,我们的设备位于PC和显示器之间。首先,在输入端,设备需要让PC知道自己是能够输入视频信号的,换句话说,设备要“欺骗”PC,让PC认为自己是一台显示器。如果不这样的话,PC可能会拒绝输出任何视频信号的(VGA接口不需要EDID也能输出)。除此之外,设备还要告诉PC自己支持的显示时序。而在输出端,当设备需要自建输出时序(如大屏控制器的输出卡)而不是简单的复制输入时序(如各种矩阵设备)的时候,就需要知道显示器支持的显示时序,从而让自己输出的信号能在显示器上正常显示。在这些地方,EDID就发挥作用了。在输入端PC通过读取设备上的EDID来获悉设备支持的显示时序,而同样,在输出端设备需要读取显示器的EDID来确定自己的输出时序。

    二、EDID主块详解

    1. EDID主块结构

     

    2. Header:

    在EDID的开头八个字节为EDID的开始标志,简称头,固定为:

    00H

    01H

    02H

    03H

    04H

    05H

    06H

    07H

    00

    FF

    FF

    FF

    FF

    FF

    FF

    00

    3. Vendor / Product Identification

    这十个字节表示产品ID和制造商信息。详细如下:

    08H

    09H

    0AH

    0BH

    0CH

    0DH

    0EH

    0FH

    10H

    11H

    制造商名称

    产品代码

    产品序列号

    制造周

    制造年份

    制造商名称:3个字母组成,基于压缩的ASCII码见下表,例如“00001=A”… …”11010=Z”。这两字节排列如下:

    地址

    bit1

    bit2

    bit3

    bit4

    bit5

    bit6

    bit7

    bit8

    08H

    -

    (4

    3

    2

    1

    0)

    (4

    3

     

    字符1

    字符2

    09H

    2

    1

    0)

    (4

    3

    2

    1

    0)

    字符2

    字符3

    A

    B

    C

    D

    E

    F

    G

    H

    I

    J

    K

    L

    M

    00001

    00010

    00011

    00100

    00101

    00110

    00111

    01000

    01001

    01010

    01011

    01100

    01101

    N

    O

    P

    Q

    R

    S

    T

    U

    V

    W

    X

    Y

    Z

    01110

    01111

    10000

    10001

    10010

    10011

    10100

    10101

    10110

    10111

    11000

    11001

    11010

     

    产品代码:固定为4位16进制数,即两个字节,为客户提供,直接填写。

    产品序列号:即产品的流水号(数值型),直接转成16进制或以ASCII格式转换。序列号也可用字符型,在后面DTD部分定义。

    生产周:即在当年中的生产周,范围1~52,注意0为无效值。

    生产年份:规定1990开始计算,即1990年为0,然后递增计算。

    4. EDID Structure Version / Revision

    字节

    EDID版本及修改

    备注

    1(12H)

    版本号

    1(13H)

    修改号

    5. Basic Display Parameters / Features

    5

    字节

    基本的显示参数/特征

    14H

    1

    视频信号定义

    见下表

    15H

    1

    最大水平图像尺寸

    cm

    16H

    1

    最大垂直图像尺寸

    cm

    17H

    1

    显示传输特性(Gamma)

    (gamma x 100)-100,[1.00→3.55]

    18H

    1

    电源管理标准(DPMS)

    见下表

    字节

    类型

    详细描述

    14H

    7

    模拟/数字信号

    模拟= 0,数字= 1

    bit7=0,即模拟信号,bit6~0定义如下:

    6

    信号电平[6:5]

    参阅下列定义。

    Bit6   Bit5   Operation

    0   0      0.700,0.300(1.000Vp-p)

    0     1      0.714,0.286(1.000Vp-p)

    1     0      1.000,0.400(1.400Vp-p)

    1     1      0.700,0.000(0.700Vp-p)

    5

    4

    setup

    一般为0

    3

    同步输入支持[3]

    如果设置1, 支持同步分离信号;

    2

    同步输入支持[2]

    如果设置1, 支持同步复合信号(在水平同步行信号上);

    1

    同步输入支持[1]

    如果设置1, 支持同步SOG信号;

    0

    同步输入支持[0]

    如果设置1, 场同步扫描起点,脉冲须在复合同步信号或同步SOG信号被使用;

    bit7=1,即模拟信号,bit6~0定义如下:

    6-1

    保留

    0

    DFP 1.x

    If set = 1, Interface is signal compatible with VESA DFP 1.x TMDS CRGB, 1 pixel / clock, up to 8 bits / color MSB aligned,DE active high

     

    字节

    特点支持

    详细描述

    18H

    7

    Standby待机

    是否支持Standby功能

    6

    Suspend挂起

    是否支持Suspend功能

    5

    Active Off/Very

    Low Power

    是否支持Off Mode功能

    [4:3]

    显示类型[4:3]

    Bit4 Bit3 解释       

    0 0   黑白/灰度显示

    0 1   RGB颜色显示

    1 0   非RGB多彩色显示,如RGY

    1   1   没有定义

    2

    标准默认颜色空间sRGB

    如果置1,显示将使用默认的颜色空间sRGB作为基色

    1

    推荐分辨率模式

    如果置1,推荐分辨率为第一个详细描述的时序(DTD)

    0

    支持GTF

    如果置1,支持GTF标准分辨率

    6. Color Characteristics

    字节

    颜色特征

    基于CIE出版15.2测定空间

    19H

    Red / Green Low Bits

    红绿场xy坐标低2位值

    Rx1 Rx0 Ry1 Ry0

    Gx1 Gx0 Gy1 Gy0

    1AH

    Blue / White Low Bits

    蓝白场xy坐标低2位值

    Bx1 Bx0 By1 By0

    Wx1 Wx0 Wy1 Wy0

    1BH

    Red_x红场画面x坐标

    Red_x    bits 9 →2

    1CH

    Red_y红场画面y坐标

    Red_y    bits 9 →2

    1DH

    Green_x绿场画面x坐标

    Green_x  bits 9 →2

    1EH

    Green_y绿场画面y坐标

    Green_y  bits 9 →2

    1FH

    Blue_x蓝场画面x坐标

    Blue_x   bits 9 →2

    20H

    Blue_y蓝场画面y坐标

    Blue_y   bits 9 →2

    21H

    White_x白场画面x坐标 

    White_x  bits 9 →2

    22H

    White_y白场画面y坐标  

    White_y  bits 9 →2

    7. Established Timings

    提供一些基本固定的VESA, Apple, Mac, IBM VGA等输出的Timing

    字节

    描述

    信源

    23H

    7

    720 x 400 @ 70Hz

    IBM, VGA

    6

    720 x 400 @ 88Hz

    IBM, XGA2

    5

    640 x 480 @ 60Hz

    IBM, VGA

    4

    640 x 480 @ 67Hz

    Apple, Mac II

    3

    640 x 480 @ 72Hz

    VESA

    2

    640 x 480 @ 75Hz

    VESA

    1

    800 x 600 @ 56Hz

    VESA

    0

    800 x 600 @ 60Hz

    VESA

    24H

    7

    800 x 600 @ 72Hz

    VESA

    6

    800 x 600 @ 75Hz

    VESA

    5

    832 x 624 @ 75H z

    Apple, Mac II

    4

    1024 x 768 @ 87Hz(I)

    IBM

    3

    1024 x 768 @ 60Hz

    VESA

    2

    1024 x 768 @ 70Hz

    VESA

    1

    1024 x 768 @ 75Hz  

    VESA

    0

    1280 x 1024 @ 75Hz

    VESA

    25H

    7

    1152 x 870 @ 75Hz

    Apple, Mac II

    6-0

    保留

    8. Standard Timing Identification

    这16个字节提供最多8种分辨率的识别,每一种分辨率都是由2个字节的模式格式和刷新率得到的。这些分辨率都没有包含Established Timings中。备注:这2个字节的识别码都是由VESA标准分辨率来定义的,它们都是VESA分辨率的一部分,未使用的字节应该设为01H. 详细设定见表12。

    字节

    描述

    标准分辨率定义1

    注释

    26H

    (水平活动像素 /8)-31

    一个字节能够的水平活动像范围是

    256-2以 8 个像素为增加

    27H

    7,6

    5-0

    画面比

    Bit7 Bit6 生效

    0   0   1  : 1 画面比

    0   1   4  : 3 画面比

    1   0   5  : 4 画面比

    1   1   16 :9 画面 比

    刷新率( Hz ) -60

    画面比 = 水平像素 / 垂直活动

    范围是 60-123Hz

    28H-29H

    同上

    同上

    2AH-2BH

    同上

    同上

    2CH-2DH

    同上

    同上

    2EH-2FH

    同上

    同上

    30H-21H

    同上

    同上

    32H-33H

    同上

    同上

    34H-35H

    同上

    同上

     

    9. Detailed Timing Descriptions(DTD)

    共72个字节分为四个详细时序描述块(DTD),每部分18个字节,故最多可以对四个TIMING进行详细描述

     

    Detailed Timing Descriptions(DTD)还可以用来描述显示器的其他特性,如机名、最大频率范围,字符型序列号SN,字符串描述信息,如下结构:

     

     

    10. Extension Flag

    扩展标志:除主块128字节外,如果有扩展块则该字节置1,VGA和DVI的值为0,HDMI的值为1

    11. Checksum

    校验和:使前127字节加上此字节等于0。

    三、EDID扩展块(CEA-861D)详解

    1. CEA-861D(HDMI)结构

    地址

    (+80H)

    描述

    格式

    00H

    02H

    Tag(02H)

    01H

    03H

    版本号

    02H

    DTD开始地址,暂用d表示

    d为扩展块中详细时序描述(DTD)开始地址

    03H

    Native DTD数量及YCbCr444/422,过扫描支持设置

    Bit7:是否支持过扫描

    Bit6:是否支持basic audio

    Bit5:是否支持YCbCr 4:4:4

    Bit4:是否支持YCbCr4:2:2

    低4bits:Native DTD个数

    <d

    各功能块参数设置

    各功能块包括:

    Video Data Block

    Audio Data Block

    Speaker Allocation Data Block

    Vendor Specific Data Block

    等等....

    大部分功能块长度可变

    d

    DTD开始地址,根据剩下空间情况,可定义n个DTD(每个18字节),所以DTD占用空间为n*18

    Detailed Timing Descriptor(DTD 详细时序描述),每一个DTD包括18字节,具体结构EDID主块中已有定义。

    d+(n*18)

    00H

    剩下的保留字节(Padding)

    00H填充

    7FH

    Checksum

    使前127字节加上此字节等于0

    2. Tag

    固定数值02H,EDID标准分配给CEA-861x标准的扩展标识。

    3. Revision

    CEA扩展块版本号,目前使用03版本

    4. 数字信号特性

    此字节各位定义如下:

    Bit7:是否支持过扫描

    Bit6:是否支持basic audio

    Bit5:是否支持YCbCr 4:4:4

    Bit4:是否支持YCbCr4:2:2

    低4bits:Native DTD个数

    Data

    5. Data Blocks(各功能块参数设置)

    各Data Block结构如下:

    注:L表是length,即长度,表中有说明

     

    其中各Data Block的Tag Code值定义如下:

     

    1.Video Data Block

    根据Data Block结构,首字节的bit7~5为Video Data Block = 2,bit4~0为Video Data Block长度,后面跟的字节为多个CEA short Video Descriptor,结构如下:

     

    Video Identification Code见CEA-861D标准定义,如下:

     

    2.Audio Data Block

    根据Data Block结构,首字节的bit7~5为Audio Data Block = 1,bit4~0为Video Data Block长度,后面跟的字节为1个或多个CEA short Audio Descriptor,每个CEA short Audio Descripto由三个字节组级,分为LPCM,AC3,MPEG2等各种Audio Format Code,  Audio Format Code及CEA short Audio DZescriptor结构如下:

     

    3.Speaker Allocation Data Block

    根据Data Block结构,首字节的bit7~5为Speaker Allocation Data Block = 4,bit4~0为Speaker Allocation Data Block长度(固定为3),后面跟的3字节,结构如下:

     

    注:F为前置,L为左置,R为右置,C为中置,Fxx=0表示预留位

    4.Vendor Specific Data Block(VSDB)

    厂商定义块,根据Data Block结构,首字节的bit7~5为Vendor Specific Data Block= 3,bit4~0为Vendor Specific Data Block长度,后面结构参照HDMI标准中的VSDB规范,如下是HDMI1.4a(HDMI1.4a使用CEA-861D)中的VSDB结构:

     

    6. Detailed Timing Descriptions(DTD)

    Detailed Timing Descriptions(DTD),每块18字节,详细结构见EDID主块对此部分的解释。

    7. Padding保留字节

    保留字节,用00填充。

    8. Checksum

    校验和:使前127字节加上此字节等于0。

     参考资料:

    1.EDID_V3标准规范

    2.CEA-861-F 规范

  • 相关阅读:
    Windows Azure Web Site (19) Azure Web App链接到VSTS
    Windows Azure Virtual Machine (35) Azure VM通过Linked DB,执行SQL Job
    Azure PowerShell (16) 并行开关机Azure ARM VM
    Windows Azure Virtual Network (12) 虚拟网络之间点对点连接VNet Peering
    Azure ARM (21) Azure订阅的两种管理模式
    Windows Azure Platform Introduction (14) 申请海外的Windows Azure账户
    Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
    Azure ARM (19) 将传统的ASM VM迁移到ARM VM (2)
    Azure ARM (18) 将传统的ASM VM迁移到ARM VM (1)
    Azure Automation (6) 执行Azure SQL Job
  • 原文地址:https://www.cnblogs.com/yishuad/p/10576778.html
Copyright © 2011-2022 走看看