EDID

延伸显示能力识别（Extended display identification data，简称EDID）包含显示器的解析度、厂商名称与序号等资讯。一般EDID存在于显示器的PROM或EEPROM内。一般如要读取EDID都是透过I2C，slave address是0x50。目前HDMI 1.0 - 1.3c使用EDID结构1.3版。
许多现成的套装软体都可以读取并显示EDID资讯，像是read-edid 和 Powerstrip 可以使用于Windows之上，又如XFree86 〔将EDID 资料输出到log档, 如果 verbose logging 是在 (startx -- -logverbose 6)〕可以使用于Linux平台上，以及BSD Unix。在Linux平台上也可以看到raw EDID的十六进位格式，只要你执行 "xrandr --verbose"。Mac OS X平台上可自然的读取EDID资讯 (见 /var/log/system.log or hold down Cmd-V on startup) 并加以程式化，像是 SwitchResX 或 DisplayConfigX 可以显示其资讯。

**EDID 1.3 资料格式**
位元组序列
0x00-0x13: 标头资讯
0x00–0x07: 标头资讯 "00h FFh FFh FFh FFh FFh FFh 00h"
0x08–0x09: 制造商ID。 这个识别码是经由微软来分配。 
"00001=A”； “00010=B”； ... “11010=Z”，每个字元是5bits。 第7bit (位址 08h) 是0， 第一个字元(字母)
是位于bit 6 ~ 2 (位址 08h)， 第二个字元(字母)是位于bit 1和0 (位址 08h) 和 bit7 ~ 5
(位址 09h)，第三个字元(字母)是位于bit4 ~ 0 (位址 09h)。
Ex:
制造商ID : CEA -> 00011 00101 00001
EDID Byte 8~9: 0CA1

0x0A–0x0B: 生产ID码 (储存方式是LSB开始)。 由制造商分配。
0x0C–0x0F: 32位元序号。 非必需格式。 通常储存由 LSB 优先。为了去维持和之前需求的相容性，假如一个ASCII
序号在详细时脉部分被提供，这个栏位应该设定至少一个位元组不是零。
0x10: 制造周。 这个由制造商改变。 法一是去计算一月的 1-7 当做第一周，一月 8-15 当做第二周并且以此
类推。 一些计算是以星期几(星期日-星期六)为基础。有效范围是 1-54。
0x11: 制造年份。 加上1990才是确实的年份。
0x12: EDID 版本号码。 "01h"
0x13: EDID 修订版号码。 "03h"
0x14-0x18: 基本显示参数
0x14: 影像输入定义
位元 7： 0=类比, 1=数位
假如 位元 7 是数位：
位元 0： 1=相容DFP 1.x
假如 位元 7 是类比：
位元 6-5： 影像等级
00=0.7, 0.3， 01=0.714, 0.286， 10=1, 0.4 11=0.7, 0
bit 4: 白黑设定
bit 3: 分离同步
bit 2: 合成同步
bit 1: 绿色同步
bit 0: 锯齿垂直同步
0x15: 最大水平图形尺寸 (单位为公分)。
0x16: 最大垂直图形尺寸 (单位为公分)。
0x17: 显示伽玛。 除以100再加1才是真正的值。
0x18: 电源管理和支援的特征：
bit 7： 待命
bit 6： 暂停
bit 5： 活跃关闭/低电源
bit 4-3： 显示型态
00=黑白, 01=RGB 色彩, 10=非 RGB 多色彩, 11=未定义
bit 2： 标准色彩空间
bit 1： 偏好时脉模式
bit 0： 预设 GTF 支援
0x19-0x22: 色度调节
0x19: 低有效位关于红色 X1X0 (位元 7-6)， 红色 Y1Y0 (位元 5-4)， 绿色 X1X0 (位元 3-2)，
绿色 Y1Y0 (位元 1-0)。
0x1A: 低有效位关于蓝色 X1X0 (位元 7-6)， 蓝色 Y1Y0 (位元 5-4)， 白色 X1X0 (位元 3-2)，
白色 Y1Y0 (位元 1-0)。
0x1B–0x22: 高有效位关于红色 X9-2， 红色 Y9-2， 绿色 X9-2， 绿色 Y9-2， 蓝色 X9-2， 
蓝色 Y9-2， 白色 X9-2， 白色 Y9-2。
正确值是介于0.000和0.999，但编码值是介于000h和3FFh。
0x23: 建立时脉 I
位元 7-0： 720×400@70 Hz， 720×400@88 Hz， 640×480@60 Hz， 640×480@67 Hz，
640×480@72 Hz， 640×480@75 Hz， 800×600@56 Hz， 800×600@60 Hz
0x24: 建立时脉 II
位元 7-0： 800×600@72 Hz， 800×600@75 Hz， 832×624@75 Hz， 1024×768@87 Hz (交错的)，
1024×768@60 Hz， 1024×768@70 Hz， 1024×768@75 Hz， 1280×1024@75 Hz
0x25: 制造商保留的时脉
00h 是无
位元 7： 1152x870 @ 75 Hz (麦金塔 II， 苹果)
0x26–0x35: 标准时脉识别。
第一个位元组
水平结果。  加上31，再乘上8， 得到正确值。
第二个位元组
位元 7-6： 外观比例。 正确的垂直结果依赖水平结果。
00=16：10， 01=4：3， 10=5：4， 11=16：9 (00=1:1 在v1.3之前)
位元 5-0： 垂直频率。 加上 60 去得到正确的值。
0x36–0x47: 详细时脉描述 1
0x36–0x37: 像素时脉 (单位为 10 kHz) 或 0  (55 MSB  54 LSB)
假如像素时脉并非无效：
0x38： 水平活跃 (单位为像素)
0x39： 水平空白 (单位为像素)
0x3A： 水平活跃高 (4 高位元)
水平空白高 (4 低位元)
0x3B： 垂直活跃 (单位为线)
0x3C： 垂直空白 (单位为线)
0x3D： 垂直活跃在高有效位 (4 高位元)
垂直空白在高有效位 (4 低位元)
0x3E： 水平同步偏移量 (单位为像素)
0x3F： 水平同步脉冲宽度 (单位为像素)
0x40： 垂直同步偏移量 (单位为线) (4 高位元)
垂直同步脉冲宽度 (单位为线) (4 低位元)
0x41： 高有效位关于水平同步偏移量 (位元 7-6)
高有效位关于水平同步脉冲宽度 (位元 5-4)
高有效位关于垂直同步偏移量 (位元 3-2)
高有效位关于垂直同步脉冲宽度 (位元 1-0)
0x42： 水平图像尺寸 (单位为公厘)
0x43： 垂直图像尺寸 (单位为公厘)
0x44： 高有效位关于水平图像尺寸 (4 高位元)
高有效位关于垂直图像尺寸 (4 低位元)
0x45： 水平边界线 (单位为像素且只表示一边)
0x46： 垂直边界线 (单位为线且只表示一边)
0x47： 交错与否 (位元 7)
立体与否 (位元 6-5) ("00" 表示否)
分离同步与否 (位元 4-3)
垂直同步正与否 (位元 2)
水平同步正与否 (位元 1)
立体模式 (位元 0) (若是6-5 是 00 则没使用)
假如像素时脉是无效：
0x38： 0
0x39： 区块型态
FFh=监视器序号， FEh=ASCII 字串， FDh=监视器变动限制， FCh=监视器名称，
FBh=色彩点资料， FAh， 标准时脉资料， F9h=现在未定义， 
0Fh=由制造商定义
0x3A： 0
0x3B–0x47: 区块内容描述符。
假如区块型态是 FFh， FEh， 或 FCh， 整个区域是字串。
假如区块型态是 FDh：
0x3B–0x3F：
最小垂直频率， 最大垂直频率， 
最小水平频率 (单位为 kHz)， 最大水平频率 (单位为 kHz)， 像素时脉 
(单位为 MHz (正确值需乘上10))
0x40–0x41: 第二 GTF 触发器
假如编码值是 000A， 位元组 59-63 是使用。 假如编码值是 0200， 
位元组 67–71 是使用。
0x42： 开始水平频率 (单位为 kHz)。  乘上2得到实际值。
0x43： C。 除以 2 得到实际值。
0x44-0x45： M (以LSB优先储存)。
0x46： K
0x47： J。 除以 2 得到实际值。
假如区块型态是 FBh：
0x3B： W 索引 0。 假如设定成 0， 位元组 60-63 是没使用。 假如设定成 1， 61–63 是 
分配到白点索引 #1
0x40： W 索引 1。 假如设定成 0， 位元组 65-68 是没使用。 假如设定成 2， 65–68 是 
分配到白点索引 #2
白点索引结构：
第一个位元
位元 3-2： 低有效位关于白 X (位元 3-2)， 白 Y (位元 1-0)
第二到第三位元组： 高有效位关于白 X， 白 Y。
第四位元组： 伽玛。 除以100， 再加上1得到实际值。
解码白 X 和白 Y， 看位元组 25-34。
假如区块型态是 FAh：
0x3B–0x46： 标准时脉识别。  2 位元组对于每一个纪录。
关于结构细节， 看位元组 38-53。
0x48–0x59: 详细时脉描述 2 或监视器描述符
0x5A–0x6B: 详细时脉描述 3 或监视器描述符
0x6C–0x7D: 详细时脉描述 4 或监视器描述符
0x7E: 额外的旗标。 额外的数值采用这个区块。
在EDID 1.3之前， 这是被忽略的， 并且应该被设成 0。
0x7F: 校验和 - 这个位元组应该被程式化使得所有 128 位元组的加总等于 00h.

**参见**
 电脑标准列表