EDID 详解

article/2025/8/18 17:59:10

1 Instruction

这里写图片描述

EDID: Extended Display Identification Data(扩展显示标识数据)是一种VESA (Video Electronics Standards Association)标准数据格式,其中包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串(摘自百度百科“EDID”词条)。Host Device通过读取Display中的EDID数据来“知道”Display的一些属性。简而言之,EDID就是Display的一个铭牌。EDID数据通常是由DDC通道来传输。

2 Overview

这里写图片描述

一份EDID数据是由128个字节的基本数据块(Block 0)和拓展数据块(Block 1)组成,Block 0是必须要有的,而Block 0是可选的。每一个字节都代表Display的相关信息,下面就详细讲一下里面数据的含义。

3 Block 0

这里写图片描述

上图是Block 0中的相关信息,最左边一列是数据的地址。

3.1 Header:8 Bytes(00H - 07H)

这8个字节中的值是固定的,不能做任何更改,内容如下图所示:
这里写图片描述

3.2 Vendor & Product ID:10 Bytes(08H-11H)

这10个字节中包含一些厂商和产品的一些信息,由分为几个代表不同信息的部分,如下图所示:
这里写图片描述

3.2.1 ID Manufacturer Name:2 Bytes(08H-09H)
这两个字节表示的是厂商ID,由微软注册管理,共有16bit,代表三个字母,这16bit是采用6+5+5的方式来划分的。例如, 【0x36, 0x74】表示的内容是:0011 0110 0111 0100.即 001101 + 10011 + 10100 = “M” + “S” + “T”. 即表示MSTAR公司。其中“00001”表示字母A,“00010”表示字母B,“00011”表示字母C,依次类推,“11010”表示Z。
3.2.2 ID Product Code:2 Bytes(0AH-0BH)
这两个字节表示产品ID,由厂商分配。
3.2.3 ID Serial Number:4 Bytes(0CH-0FH)
这两个字节表示产品序列号,有厂商分配。
3.2.4 ID Manufacturer Name:2 Bytes(10H-11H)
产品的制造日期,第一个字节表示一年中的第几周,第二个字节表示年份,这个年份是相对于1990年来说的。比如里面的数据为
0AH,16H,十进制为10和22,则表示1990+22=2012年的第10周。

3.3 EDID Structure Version & Revision:2 Bytes(12H-13H)

这两个字节表示EDID的版本,比如其中值为01H,03H就表示version1.3。目前EDID最高版本为1.4,下图是不同版本之间的区别。

这里写图片描述

3.4 Basic Display Parameter and Features:5Bytes(14H-18H)

这5个字节中包含了显示器的一些基本参数。
3.4.1 Video Input Definition:1Byte(14H)
这一个字节包含输入视频的一些基本参数。这个字节的最高位如果为0则表示输入的为模拟视频信号,其具体定义如下表:
这里写图片描述

如果最高位为1表示输入的是数字视频信号,其具体定义如下表:
这里写图片描述

3.4.2 Horizontal and Vertical Screen Size or Aspect Ratio: 2 Bytes(15H-16H)

这里写图片描述

这两个字节用来表示显示器的物理尺寸或者是宽高比。当15H(水平长度)和16H(垂直长度)中的值都不为0是就表示显示器的物理尺寸,单位为cm。 例如 ,该内容为0x73, 0x41,十进制为115, 65。表示该显示器尺寸为115cm x 65cm。如果其中一个字节中的值为零,另一个字节的值不为零,则表示宽高比。宽高比的技术公式如下:

Landscape Orientation mode(横屏模式):
Aspect Ratio = (Stored Value + 99) ÷ 100

Portrait Orientation mode(竖屏模式)
Aspect Ratio = 100 ÷ (Stored Value + 99)

3.4.3 Display Transfer Characteristics (GAMMA): 1 Byte(17H)
显示器伽马在不同的上下文环境中,有不同的含义,一个意思是指显示器的输出图像对输入信号的失真,另一个意思是指这种失真的具体数值。由于显示器伽马和文件伽马是固定不变的,伽马校正过程是校正计算机的系统伽马!,使得显示器伽马、系统伽马、文件伽马三个变换的叠加为1.0,从而使最终显示器的图像和原始场景一样,不存在失真。(摘自百度百科“伽马值”词条)

Stored Value = (GAMMA x 100) – 100

要的到gamma 值,通过存储的值反向计算就可得到。

3.4.4 Feature Support: 1 Byte: 1 Byte(18H)
这一个字节中包含了一些显示器支持的功能和色彩空间,如下表所示:
这里写图片描述

下面对每一位作一个说明:
bit[7,6,5]:Display Power Management(电源管理)
Standby Mode : 待机模式
Suspend Mode:暂停模式
Active Off:休眠/唤醒模式(低功耗模式)
如果在EDID 地址为14H中表明输入的为模拟信号时则:
bit[4,3]:Display Color Type
如果在EDID 地址为14H中表明输入的为数字信号时则:
bit[4,3]:Supported Color Encoding Format/s
最后三位表示
bit[2,1,0]:Other Feature Support Flags
sRGB Standard : RGB(standard Red Green Blue)是由Microsoft影像巨擎共同开发的一种彩色语言协议,微软联合爱普生、HP惠普等提供一种标准方法来定义色彩,让显示、打印和扫描等各种计算机外部设备与应用软件对于色彩有一个共通的语言。(摘自百度百科sRGB词条)

3.5 Display x, y Chromaticity Coordinates: 10 Bytes(19H-22H)

这10个字节是用来表示显示器支持的色彩范围,没一个值是采用10bit来表示的,其中低位的2个bit为19H和1AH中的值,高位的8个bit为1BH-22H中的值。10bytes总共表示8个参数,这8个参数为四个点坐标,其中三个用来表示色彩范围坐标,另一个是白色点的坐标。如下图所示:
这里写图片描述

这里写图片描述

3.6 Established Timings I & II: 3 bytes(23H-25H)

这里写图片描述

相应位置置1,表示支持这个Timing。这个时序块中定义的时序是EDID标准出现还早的一些时序。

3.9 Standard Timing:16Bytes(26H-35H)

这里写图片描述

这里面定义了从Standard Timing 1- Standard Timing 8总共8个Standard Timing,每个Timing用两个字节来描述,Timing的格式参照表中Standard Timing 1。里面包括宽高像素值,宽高比,刷新率等参数。如果不是用,则将第一个字节设置为01H第二个为0。

3.10 Detailed Timing Blocks - 72 Bytes(36H-7DH)

这里写图片描述
这72个字节分为4组,每18个字节用来描述一个Timing。第一个18Bytes block必须用来表示详细时序(Detailed Timing),第二到第四个除了可以表示Detailed Timing之外,还可以用来表示显示器描述符(Display Description)。
3.10.1 Detailed Timing Descriptor-18Bytes
这18个被分成两个Part,Part 1里面包括了视频时序的一些非常详细的参数,每一个参数的含义参考下列视频时序图:
这里写图片描述

里面的参数如下表所示:

这里写图片描述

Part 2中有一些与音视频相关的设置,内容如下表:

这里写图片描述

3.10.2 Display Descriptor Definitions-18Bytes
在3.10节中讲到,第一个block(36H-47H)必须是detailed timing descriptor,而第二到第四个(48H-7DH)block可以是detailed timing descriptor也可以是display descriptor definition。Display Descriptor Definition中的内容如下表:
这里写图片描述
前3个字节(Byte 0-Byte 2)都为0,表示着是一个Display Descriptor Definition 而不是Detailed Timing Descriptor;第4个字节(Byte 3)为要描述的参数的代号(Tag),比如为FFH,则表示这18个Bytes是用来描述Display Product Serial Number。第5个字节为00H,从第6个字节到第18个字节则是第4个字节表示的参数的具体值。Tag表示的含义如下表:
这里写图片描述

下面就每个参数的含义做详细说明

3.10.2.1 Display Product Serial Number
产品序列号,采用ASCII码存储,比如:S/N:A0123456789,则后13个字节为:41h 30h 31h 32h 33h 34h 35h 36h 37h 38h 39h 0Ah 20h,不够13个字节的在后面加一个0AH(换行),后面填充20H(空格)。
这里写图片描述

3.10.2.2 Alphanumeric Data String Descriptor Definitionr

这里面存的是一个用ASCII码表示的字符串,具体用来干啥的我还不是很懂。
这里写图片描述

3.10.2.3 Display Range Limits & Additional Timing Descriptor Definition

这里面有一些显示器频率范围限制
这里写图片描述

3.10.2.4 Display Product Name (ASCII) String Descriptor Definition
这里面是表示产品名称字符串的ASCII码。
这里写图片描述

下面的内容由于我不常用到,所以就不讲了,有兴趣的读者可以自行查阅EDID标准文档。
3.10.2.5 Color Point Descriptor Definition
3.10.2.6 Standard Timing Identifier Definition
3.10.2.7 Color Management Data Definition
3.10.2.8 CVT 3 Byte Code Descriptor Definition
3.10.2.9 Established Timings III Descriptor Definition
3.10.2.10 Unused – Reserved Data Tag Numbe
3.10.2.11 Dummy Descriptor Definition
3.10.2.12 Manufacturer Specified Data Tag Numbers

3.11 Timing Information Priority Order

在EDID中定义了四种Timing,分别是Established Timing、Standard Timing、Preferred Timing还有一些额外的Timing,比如GTF和CVT Timing。对于显示器来说,支持的这些Timing有一个优先级,如下图:
这里写图片描述

优先级:Preferred Timing > Detailed Timing > Extension Block中的Detailed Timing>CVT > Standard Timing > Established Timing

3.12 Extension Block Count N - 1 Bytes(7EH)

这一个字节表示除了Block 0之外还有多少个拓展的Block,一般为1,即还存在Block 1

3.13 Checksum - 1 Bytes(7F)

校验和

4 Block 1(这一部分属于CEA-861标准的内容)

拓展部分由三个版本的格式分别为Version 1、Version 2和Version 3

4.1 CEA Extension Version 1

这里写图片描述

CEA对Version 1是不推荐使用的,它已经被Version 3替代了。

这里写图片描述

Version 2 也被弃用了,所以,目前常见的EDID extension block 采用的是version 1.3,其数据结构如下图所示:

这里写图片描述

Byte0和Byte1是拓展数据块的版本号;
Byte2是偏移量d,当d=4时,表示没有数据,d=0是表示没有详细时序;
Byte3;
Byte4-Byte(d-1)是CEA Data Block Collection,里面的内容如下图所示:
这里写图片描述

在这一个数据块中,第一个Byte的高3bit用来表示Tag Code,不同的Tag Code表示不同的参数,其具体定义如下表:
这里写图片描述
当Tag Code为7时,表示后面还有拓展的Tag。后面紧跟着的一个字节则用来表拓展的Tag Code,如下图:
这里写图片描述
由于表示的Block太多,在这就不一一讲解了,每一个Block的具体信息请查阅CEA-861标准文档。
后面没有用到的字节填充0,最后一个为检验和。


http://chatgpt.dhexx.cn/article/QUw1imcL.shtml

相关文章

EDID介绍

1.EDID是什么? EDID(Extend Display Identification Data)扩展显示器识别数据,是VESA在制定DDC(Display Data Channel)显示器数据通道通信协议时,制定的有关显示器识别数据的标准。其中包含有关…

EDID的简介和解析

from:EDID的简介和解析 - 花生红枣眼泪和小米 - 博客园 去年对EDID做了一个解析,下面是学习EDID过程中整理的资料。 一、EDID简介 EDID: Extended Display Identification Data (外部显示设备标识数据)----指DDC通讯中传输的显示设备数据。 Q1:EDID是…

有关交叉验证

https://sklearn.apachecn.org/docs/master/30.html 学习预测函数的参数,并在相同数据集上进行测试是一种错误的做法: 一个仅给出测试用例标签的模型将会获得极高的分数,但对于尚未出现过的数据它则无法预测出任何有用的信息。 这种情况称为 overfitting…

关于交叉验证

1、一文看懂 AI 数据集:训练集、验证集、测试集: https://zhuanlan.zhihu.com/p/98532085 2、机器学习之K折交叉验证 - 吉什么的文章 - 知乎 https://zhuanlan.zhihu.com/p/38121870 注意:cross_val_score() 传入的 X 和 y 是原始特征和标签…

Python 交叉验证模型评估

Python 交叉验证模型评估 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。 2 交叉验证模型评估简介 交叉验证(Cross Validation)是机…

交叉验证应用

交叉验证 另一种常用的模型选择方法是交叉验证( cross validation)。 如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集(training set)、验证集(validation set)和测试集(testset)。训练集用来…

肝!交叉验证

概述Holdout 交叉验证K-Fold 交叉验证Leave-P-Out 交叉验证总结 概述 交叉验证是在机器学习建立模型和验证模型参数时常用的办法。 顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集。 用训练集来训练模型&…

深度学习:交叉验证(Cross Validation)

首先,交叉验证的目的是为了让被评估的模型达到最优的泛化性能,找到使得模型泛化性能最优的超参值。在全部训练集上重新训练模型,并使用独立测试集对模型性能做出最终评价。 目前在一些论文里倒是没有特别强调这样的操作,很多研究使…

【笔记】【机器学习基础】交叉验证

(一)交叉验证 交叉验证(cross-validation)是一种评估泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。在交叉验证中,数据被多次划分,并且需要训练多个模型。 最常用的…

入坑codewars

前几天做LeetCode上的大数乘法,代码没错,可就是提交不成功,显示SyntaxError: Unexpected token var我把所有代码都注释掉,只留下return 1,依然报同样的错误。。。感觉LeetCode对JSer不是特别友好刚刚在node社区看到有人…

CodeWars 我二了

昨天刷题,不经意间刷出来一个小彩蛋👇 今天醒来便发现, 卧槽,自己出现在解答列表第二,这lima,我一个小辣鸡也上榜了?🐂 话不多说,看键 警告,长文劝退,不是我啰嗦,是这题目一直在bibi赖赖 Simple Fun #345: The Original Numbers Task Some players are playin…

codewars题目

codewars题目解答 1.Calculating with Functions2.Sum of Pairs3.Maximum subarray sum4.Rot135.Calculating with Functions 1.Calculating with Functions 我的解决方案(粗糙的一批) function common(n, val) {var a, b;for (var key in n) {a key;b …

编程刷题平台Codewars初体验-Java

点此欢迎光临我的个人网站【一几文星球】 最近发现了一个很多网友都在推荐的编程刷题平台Codewars,作为一个对啥都好奇(啥都学不深 )的编程菜鸟,我二话不说直接开始注册体验。 网站一进,嘿,全英文&#x…

Codewars | 使用入门

https://jingyan.baidu.com/article/adc81513864eebf723bf73ab.html https://www.codewars.com/trainer/setup 注册以后,大家的编程段位是8段。段位越高,段数越小。 目前笔者的段位是6段。通过解决难度在6段和6段以上的问题可以获得段位的提升。当然&…

梯度提升树(GBDT)

提升树模型 提升树是以分类数或回归树为基本分类器的提升方法。提升方法实际采用加法模型&#xff08;即基函数的线性组合&#xff09;与前向分布算法&#xff0c;以决策树为基函数的提升方法为提升树&#xff08;boosting tree&#xff09;。基本分类器 x < v x<v x<…

机器学习: 提升

文章目录 Github提升的概念理解与随机森林的比较提升算法 GBDT参数设置和正则化 XGBoostAdaboost算法总结 Github 系列文章 pdf 版本已经上传至&#xff1a; https://github.com/anlongstory/awsome-ML-DL-leaning/tree/master/xiaoxiang-notes 欢迎 Star 和下载 ? 提升的概…

多模态深度学习综述:网络结构设计和模态融合方法汇总

点击上方“机器学习与生成对抗网络”&#xff0c;关注"星标" 获取有趣、好玩的前沿干货&#xff01; 作者丨小奚每天都要学习知乎 编辑丨极市平台 来源丨https://zhuanlan.zhihu.com/p/152234745 一、简介 从2010年开始&#xff0c;深度学习方法为语音识别&#xff0…

回归分析(数据拟合---MATLAB和1stopt软件)

回归分析&#xff08;regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 回归分析按照涉及的变量的多少&#xff0c;分为一元回归和多元回归分析&#xff1b; 按照因变量的多少&#xff0c;可分为简单回归分析和多重回归分析&#xf…

利用Excel的LINEST计算线性拟合的斜率和截距的不确定性

目录 线性拟合的斜率和截距的不确定性Excel数组函数LINESTLINEST结果的含义LINEST输出的10个统计参数含义如下&#xff1a; 模型预测 y ^ \widehat{y} y ​ m x b mxb mxbReferences 线性拟合的斜率和截距的不确定性 利用熟悉的Excel绘图功能&#xff0c;可以根据距离-高程散…

机器学习算法——Kmeans

1.k-mean算法的原理 1、选取K个点做为初始聚集的簇心 2、分别计算每个样本点到K个簇核心的距离&#xff08;这里的距离一般取欧氏距离或余弦距离)&#xff0c;找到离该点最近的簇核心&#xff0c;将它归属到对应的簇 3、所有点都归属到簇之后&#xff0c;M个点就分为了K个簇…