HDMI设计2----EDID and E-EDID

article/2025/8/17 20:13:06

1,EDID是什么?有什么用?

图1 应用场景

        如图1所示的应用场景,PC将视频信号发送 到我们的设备上,经过一系列的传输和切换,设备将视频信号发送到显示器或者投影机上,也就是说,我们的设备位于PC和显示器之间。首先,在输入端,设备需要让PC知道自己是能够接受输入视频信号的,让PC认为自己是一台显示器。如果不这样做的话,PC可能会拒绝输出任何视频信号的(VGA接口不需要EDID也能输出)。除此之外,设备还要告诉PC自己支持的显示时序。而在输出端,当设备需要自建输出时序而不是简单的复制输入时序的适合,就需要知道显示器支持的显示时序,从而让自己输出的信号能在显示器上正常显示。在这些地方,EDID就发挥作用了。在输入端PC通过读取设备上的EDID来获悉设备支持的显示时序,而同样,在输出端设备需要读取显示器的EDID来确定自己的输出时序。注意,一个设备可能不止一个EDID,EDID是和HDMI Receiver接口绑定的,因此,可以理解为有多少个HDMI Receiver就有多少个EDID。

2,EDID Structure

AddressNo.bytesBytesDescriptionFormat
00h8BytesHeader
00h100h开头8个字节为EDID的开始标志,值固定
01h1FFh
02h1FFh
03h1FFh
04h1FFh
05h1FFh
06h1FFh
07h100h
08h10BytesVendor/Product Identification
08h2ID Manufacturer Name制造商名称(3字母组成,5bit为1字母)
0Ah2ID Product Code产品代码:4个16进制数,为客户提供,直接填写
0Ch4ID Serial Number产品的流水号(数值型),也可用字符型
10h1Week of Manufacture当年生产周:1-52
11h1Year of Manufacture生产年份:1990年开始,即1990年为0
12h2BytesEDID Structure Version/Revision
12h1Version #EDID 版本号
13h1Revision #EDID 修改号
14h5BytesBasic Display Parameters/Features
14h1Video Input Definition基本显示参数
15h1Max.Horizontal Image Size最大水平图像尺寸(单位:cm)
16h1Max.Vertical Image Size最大垂直图像尺寸(单位:cm)
17h1Display Transfer Characteristic(Gamma)显示传输特性:(gamma+100)/100,[1.00->3,55]
18h1Feature Support电源管理标准
19h10BytesColor Characteristics
19h1Red/Green Low Bits红绿场x,y坐标低2位值
1Ah1Blue/White Low Bits蓝白场x,y坐标低2位值
1Bh1Red-xRed-x坐标
1Ch1Red-yRed-y坐标
1Dh1Green-xGreen-x坐标
1Eh1Green-yGreen-y坐标
1Fh1Blue-xBlue-x坐标
20h1Blue-yBlue-y坐标
21h1White-xWhite-x坐标
22h1White-yWhite-y坐标
23h3BytesEstablished Timings
23h1Established Timings 1固定分辨率
24h1Established Timings 2
25h1Manufacture's Reserved Timings
26h16BytesStandard Timing Identification
26h2Standard Timing Identification 1标准分辨率
28h2Standard Timing Identification 2
2Ah2Standard Timing Identification 3
2Ch2Standard Timing Identification 4
2Eh2Standard Timing Identification 5
30h2Standard Timing Identification 6
32h2Standard Timing Identification 7
34h2Standard Timing Identification 8
36h72BytesDetailed Timing Descriptions
36h18Detailed Timing Descriptions 1
48h18Detailed Timing Descriptions 2 or Monitor Descriptor
5Ah18Detailed Timing Descriptions 3 or Monitor Descriptor
6Ch18Detailed Timing Descriptions 4 or Monitor Descriptor
7Eh1ByteExtension FlagNumber of 128-byte EDID extension block to follow
7Fh1ByteChecksum

The 1-byte sum of all 128 bytes in this EDID block shall equal zero

表2  EDID structure

EDID structure的结构如表2所示,主要有10部分组成。

第一个部分是:8个Bytes的Header,值固定了,用来标志EDID。

第二个部分是:10个Bytes的Vendor/Product Identification,用来描述制造厂商信息以及产品信息。

第三个部分是: 2个Bytes的EDID Structure Version/Revision,表示采用的EDID structure的版本号和修改号,和后续结构内容相对应。

第四个部分是:5个Bytes的Basic Display Parameter/Features,表示基本显示参数,图像的长宽(单位:cm),显示传输特性(一个量化后的gamma值,我也没清楚用来做什么),电源管理标准。

AddressDescribtion76543210
14h基本显示参数模拟(0)信号电平setup(一般为0)同步分离同步复合同步SOG场同步起点在复合同步或SOG信号被使用
数字(1)保留VESA DFP 1.x

表3 基本显示参数

表3是基本显示参数的具体信息,主要分成模拟和数字两个部分。我们的HDMI传输一般都是数字信号的(第一次接触HDMI,模拟选项我没有遇到过T.T)。

AddressDescribtion76543210
18h电源管理标准Standby待机Suspend挂起Active off/low power显示类型默认颜色空间推荐分辨率GIF

表4 电源管理标准

表4是电源管理标准,里面有个推荐分辨率,就是最佳分辨率,当使用HDMI Transmitter连接上HDMI Receiver后,HDMI Transmitter会以HDMI Receiver中的推荐分辨率输出图像格式,例如,使用PC连接上一个外屏后,可以在显示设置中发现,PC显示输出调整成了外屏的推荐分辨率输出,也就是最佳分辨率输出。

第五个部分是: 10个Bytes的Color Characteristics,是使用红,绿,蓝,白四个坐标表示出了一个三角颜色空间,如下图5所示。这里我也有点迷。

 图 5

第六个部分是:3个Bytes的Established Timings,用于标志是否兼容以前显示分辨率。如下表6所示。

AddressDescribtion76543210
23h固定时序720x400@70720x400@88640x480@60640x480@67640x480@72640x480@75800x600@56800x600@60
24h固定时序800x600@72800x600@75832x624@751024x768@87i1024x768@601024x768@701024x768@751280x1024@75
25h固定时序1152x870@75保留

表6 固定时序

第七个部分是:16 Bytes的Standard Timing Identification,即标准分辨率,使用变化的水平像素值,画面比和刷新率来表示。如下表7所示。

AddressDescribtion76543210
26h标准时序(水平活动像素/8)- 31
27h画面比=水平像素/垂直活动(1,3,4,9)刷新率(60-123Hz)

表7 标准时序 

第八个部分是:72 Bytes的Detailed Timing Descriptions/Monitor Desciptor,或者说是4个18 Bytes的Detailed Timing Descriptions/Monitor Desciptor,这里要注意的是,第一个18 Bytes必须是Detailed Timing Descriptions,后续3个18 Bytes可以是Detailed Timing Descriptions或者Mointor Desciptor中的一种。其具体格式如下表8所示。

AddressNo.bytesBytesDescriptionFormat
36h2Bytes像素时钟/10000先存储低8位
37h
38h1Byte水平活动像素数低8位像素数值
39h1Byte水平blanking低8位像素数值
3Ah1Byte水平活动+水平blankiing像素数高4位:水平高4位;低4位:blanking高4位
3Bh1Byte垂直活动像素数低8位像素数值
3Ch1Byte垂直blanking低8位像素数值
3Eh1Byte水平同步信号偏移量低8位像素数值
3Fh1Byte水平同步信号脉冲宽度低8位像素数值
40h1Byte垂直同步偏移+垂直同步脉冲宽度高4位:垂直低4位同步偏移;低4位:垂直低4位同步脉冲宽度
41h1Byte水平同步信号偏移量;水平同步信号脉冲宽度;垂直同步信号偏移量;垂直同步信号脉冲宽度6,7:水平同步偏移量;4,5:水平同步脉冲宽度;2,3:垂直同步偏移量;1,0:垂直同步脉冲宽度
42h1Byte水平图像尺寸低8位(单位:mm)
43h1Byte垂直图像尺寸低8位(单位:mm)
44h1Byte水平&垂直图像尺寸高4位:水平图像;低4位:垂直图像
45h1ByteHorizontal Border
46h1ByteVertical Border
47h1Byte标志位

表8 详细时序定义

第九个部分是: 1 Byte的Extension Flag,该Byte中标志是否有扩展128 Bytes的内容,即可用来区分是128 Bytes的EDID,还是256 Bytes的E-EDID。

第十部分是: 1Byte的Checksum,用来保证前128 Bytes的值的累加和为0。

        对于EDID而言,很重要的是Timing(分辨率)的区分,在EDID中Timing有4个Timing的定义。1,在Basic Display Parameters中的电源管理标准中有一个推荐显示分辨率,也就是最佳显示分辨率。2,在Established Timings中,用与标识Receiver是否支持历史遗留(legacy Timing)的显示分辨率。3,在Standard Timings中,使用转换后的水平像素,画面比,刷新率定义的显示分辨率。4,在Detailed Timing Descriptions中,详细定义的显示分辨率。这里定义的显示分辨率和3D 视频格式的分辨率没有关系。

3,E-EDID Structure

当EDID中的Extension Flag标识具有扩展128 Bytes内容时,该EDID Structure为E-EDID Structure。后续的128 Bytes内容如下表8所示。

Address(+80H)ValuesDescriptionFormat
00h02hTag固定为02h,EDID标志分配给CEA-861x
01h03h版本号CEA扩展版本号--03
02hDTD起始地址,暂用d表示d为扩展块中DTD开始地址
03hNative DTD数量及YCbCr444/422,过扫描支持设置7:过扫描;6:basic audio;5:YCbCr444;4:YCbCr422;DTD个数
<d各功能块参数设置Video Data Block;Audio Data Block;Speaker Allocation Data Block;Vendor Specific Data Block
dDTD起始地址,一个DTD为18字节DTD
d+(n*18)00h剩下的保留00h填充
7FhCheck Sum

表9 E-EDID Structure 

E-EDID的结构如表9所示,主要由7部分组成。

第一个部分是1 Byte的Tag号,其值固定为0x2H。

第二个部分是1 Byte的版本号,表示CEA扩展版本,这里用的是0x3h,该值会影响功能块的结构。

第三个部分是1 Byte的DTD(Detailed Timing Descriptions)的起始地址。

第四个部分是1 Byte中第7位表示是否支持过扫描,第6位标识基本audio格式支持,第5位标识YCbCr444颜色空间采样格式支持,第4位标识YCbCr422颜色空间采样格式支持,第3-0位标识DTD的个数。

第五个部分是各种功能块参数设置,

表 10 CEA Data Block Tag Codes 

 功能块的Tag编码如表10所示,该Tag值在功能块首字节的第7-5bits来标识。功能模块的基本结构如下表11所示。

表11 功能块基本结构 

1,Video Data Block,根据Data block结构,首字节的bit7-5为video data block=2,bit4-0为video data block长度,后面跟的字节为多个CEA short Video Desriptor。CEA short Video Desriptor如表12所示。

表12 CEA short Video Descriptor 

 在CEA short Video Descriptor中的VIC(Video Identification Code)定义如表13所示。

表13 VIC 

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 Descriptor由3个字节组成,分为LPCM,AC3,MPEG2等各种Audio Format Code。 如表14所示。

表14 CEA short Audio Descriptor 

在CEA short Audio Descriptor中的Audio Format Code定义如下表15所示。

表15 Audio Format Codes 

 3,Speaker Allocation Data Block,根据Data Block结构,首字节的bit7-5为Speaker Allocation Data Block=4,bit 4-0为Speaker Allocation Data长度(固定为3),后面跟的3字节,结构如表16所示,这里应该是用来定义Receiver音响的位置。

表16 Speaker Allocation Data Block

 4,Vendor-Specific Data Block,结构如表17所示。

表17 Vendor-Specific Data Block 

         该功能块结构标识了Receiver对3D 视频帧格式的支持。其中3D_present位表示HDMI Receiver是否支持3D视频格式。3D_Multi_present表示后续结构对3D_Structure_ALL和3D_Structure_Mask如何显示。

表18 3D_Structure_All

        3D_Structure_All的结构如表18所示,16位中只有三位标识3D格式,分别为Frame packing, Top-and-Bottom,Side-by-Side的3D格式,Frame packing的3D帧格式是上下帧为一帧数据,水平方向没有像素扩展,在垂直方向像素数扩展了一倍,中间用Active space隔开。Top-and-Bottom的3D帧格式也是上下分帧,和Frame packing不同的是,在垂直方向并没有像素数的扩展。Side-by-Side的3D帧格式是左右分帧,和Top-and-Bottom一样,和原2D格式大小相同,在水平和垂直方向没有像素数的扩展。具体的3D帧格式可以参考HDMI Spec,后续会单独介绍。

        这里要注意的是除了3D_Structure_ALL设置Receiver(Sink)对3D 帧格式的支持后,还要设置3D_Structure_Mask来表示设置的3D_Structure_All设置的3D帧格式是有效的。

第六部分就是DTD(Detailed Timing Descriptions),其起始偏移地址应该和offset=0x2h中给出的DTD起始地址相同,DTD的个数则和0x3h中的bit3-bit0标识的个数相同,DTD的具体格式和EDID中的DTD相同。

第七部分是DTD未将后续存储占满,则用0填充。

第八部分是一个Byte的Checksum,与EDID中Checksum相同,保证128 Bytes数据相加和为0。


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

相关文章

EDID 解析

1、显示器的第24个字节是设置显示器的电源管理标准的。 各个位的作用如下&#xff0c;注意到标号为1的位是关于主画面。 3、Gamma源于CRT的响应曲线&#xff0c;即反映显像管的图像亮度与输入电子枪的信号电压的非线性关系的一个参数。对于CRT显示器而言&#xff0c;显像管电子…

EDID标准简介

小伙伴们在设计显示接口的时候&#xff0c;常常会遇到显示器支持格式的问题&#xff0c;这里呢就简要的介绍下格式握手的重要协议EDID。 EDID&#xff08;ExtendedDisplay Indentification Data Standard&#xff09;就是显示器通过DDC&#xff08;Display DataChannel&#xf…

HDMI协议介绍(六)--EDID

目录 什么是EDID EDID结构 1)Header Information 头信息(厂商信息、EDID 版本等) (2)Basic Display Parameters and Features 基本显示参数(数字/模拟接口、屏幕尺寸、格式支持等) (3)色度信息 (4)Established Timings(VESA 定义的电脑使用 Timings) (5)Standard Timing…

EDID编辑器介绍

目录 1 EDID介绍2 DDC通道3 EDID编辑工具3.1 Phoenix EDID Designer3.2 Deltacast E-EDID Editor 4 EDID烧录工具 1 EDID介绍 EDID, Extended display identification data&#xff0c;中文名称扩展显示器识别数据&#xff0c;是VESA在制定DDC(Display Data Channel)显示器数据…

什么是EDID,EDID能做什么,EDID基本介绍

Q1: 为什么要写这篇文章&#xff1f; A1&#xff1a;在最近的工作中遇到了不少问题&#xff0c;其中很多都是和EDID相关的。可以说&#xff0c;作为一家以“显示”为生的企业&#xff0c;我们时时刻刻在与EDID打交道。EDID这东西很简单&#xff0c;但是如果不了解其基本原理和概…

EDID使用说明

来源:http://wenku.baidu.com/view/8f82728471fe910ef12df8f4.html Q1: 为什么要写这篇文章&#xff1f; A1&#xff1a;在最近的工作中遇到了不少问题&#xff0c;其中很多都是和EDID相关的。可以说&#xff0c;作为一家以“显示”为生的企业&#xff0c;我们时时刻刻在与EDID…

EDID解析

1 Instruction EDID: Extended Display Identification Data&#xff08;扩展显示标识数据&#xff09;是一种VESA &#xff08;Video Electronics Standards Association&#xff09;标准数据格式&#xff0c;其中包含有关显示器及其性能的参数&#xff0c;包括供应商信息、最…

EDID 详解

1 Instruction EDID: Extended Display Identification Data&#xff08;扩展显示标识数据&#xff09;是一种VESA &#xff08;Video Electronics Standards Association&#xff09;标准数据格式&#xff0c;其中包含有关显示器及其性能的参数&#xff0c;包括供应商信息、最…

EDID介绍

1.EDID是什么&#xff1f; EDID&#xff08;Extend Display Identification Data&#xff09;扩展显示器识别数据&#xff0c;是VESA在制定DDC&#xff08;Display Data Channel&#xff09;显示器数据通道通信协议时&#xff0c;制定的有关显示器识别数据的标准。其中包含有关…

EDID的简介和解析

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

有关交叉验证

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

关于交叉验证

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

Python 交叉验证模型评估

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

交叉验证应用

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

肝!交叉验证

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

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

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

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

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

入坑codewars

前几天做LeetCode上的大数乘法&#xff0c;代码没错&#xff0c;可就是提交不成功&#xff0c;显示SyntaxError: Unexpected token var我把所有代码都注释掉&#xff0c;只留下return 1&#xff0c;依然报同样的错误。。。感觉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 我的解决方案&#xff08;粗糙的一批&#xff09; function common(n, val) {var a, b;for (var key in n) {a key;b …