What's EDID?

本文详细介绍了扩展显示识别数据(EDID)标准,包括其历史发展、数据结构及传输方式等内容。EDID是计算机显示器向显卡传达自身能力的一种数据结构,包含制造商信息、支持的分辨率等关键参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Extended display identification data

(coming from http://en.wikipedia.org)

Extended display identification data (EDID) is a data structure provided by a computer display to describe its capabilities to a graphics card. It is what enables a modern personal computer to know what kind of monitor is connected. EDID is defined by a standard published by the Video Electronics Standards Association (VESA). The EDID includes manufacturer name, product type, phosphor or filter type, timings supported by the display, display size, luminance data and (for digital displays only) pixel mapping data.

EDID structure 1.0 was defined in 1994; version 1.1 followed in 1996, then 1.2, and 1.3 in 2000. All these define upwards compatible 128 byte structures. EDID structure 2.0 defines a new 256-byte structure.

The channel for transmitting the EDID from the display to the graphics card is usually the I²C bus. The combination of EDID and I²C is called the Display Data Channel version 2, or DDC2. The 2 distinguishes it from VESA's original DDC, which used a different serial format.

Before DDC and EDID were defined, there was no standard way for a graphics card to know what kind of display device it was connected to. Some VGA connectors in personal computers provided a basic form of identification by connecting one, two or three pins to ground, but this coding was not standardized.

The EDID is often stored in the monitor in a memory device called a serial PROM (programmable read-only memory) or EEPROM (electrically erasable PROM) that is compatible with the I²C bus.

Many software packages can read and display the EDID information, such as read-edid and Powerstrip for Microsoft Windows and read-edid and XFree86 (which will output the EDID to the log if verbose logging is on (startx -- -logverbose 6)) for Linux and BSD unix. Mac OS X natively reads EDID information (see /var/log/system.log or hold down Cmd-V on startup) and programs such as SwitchResX or DisplayConfigX can display the information as well as use it to define custom resolutions.

Contents

[hide]

[edit] Enhanced EDID (E-EDID)

Enhanced EDID is based on the EDID version 1.3, but offers support of extensions, which enable EDID 2.0 to be supported as an extension. Data fields for preferred timing, range limits, monitor name are required in E-EDID. E-EDID also supports dual GTF, standard timings aspect ratio change.

With the use of extensions, E-EDID string can be lengthened up to 32KiBytes.

[edit] EDID Extensions assigned by VESA

  • Timing Extension (00h)
  • Video Timing Block Extension (VTB-EXT) (10h)
  • EDID 2.0 Extension (20h)
  • Display Information Extension (DI-EXT) (40h)
  • Localized String Extension (LS-EXT) (50h)
  • Microdisplay Interface Extension (MI-EXT) (60h)
  • Display Transfer Characteristics Data Block (DTCDB) (A7h, AFh, BFh)
  • Block Map (F0h)
  • Display Device Data Block (DDDB) (FFh)
  • Extension defined by monitor manufacturer (FFh): According to LS-EXT, actual contents varies from manufacturer. However, the value is later used by DDDB.

[edit] Limitations

Some graphics card drivers have historically coped poorly with the EDID, using only its standard timing descriptors rather than it's Detailed Timing Descriptors (DTDs). Even in cases where the DTDs were read, the drivers are/were still often limited by the standard timing descriptor limitation that the horizontal/vertical resolutions must be evenly divisible by 8. This means that many graphics cards cannot express the native resolutions of the most common wide screen flat panel displays and liquid crystal display televisions. The number of vertical pixels is calculated from the horizontal resolution and the selected aspect ratio. To be fully expressible, the size of wide screen display must thus be a multiple of 16×9 pixels. For 1366×768 pixel Wide XGA panels the nearest resolution expressible in the EDID standard timing descriptor syntax is 1360×765 pixels. Specifying 1368 pixels as the screen width would yield an unnatural screen height of 769.5 pixels.

Many Wide XGA panels do not advertise their native resolution in the standard timing descriptors, instead offering only a resolution of 1280×768. Some panels advertise a resolution only slightly smaller than the native, such as 1360×765. For these panels to be able to show a pixel perfect image, the EDID data must be ignored by the display driver or the driver must correctly interpret the DTD and be able to resolve resolutions whose size is not divisible by 8. Special programs are available to override the standard timing descriptors from EDID data; PowerStrip for Microsoft Windows and DisplayConfigX for Mac OS X

[edit] EDID 1.1 data format

Byte sequence
00–07: Header information
08–17: Complete serial number
08–09: Manufacturer ID
10–11: Product ID Code (little-endian)
12–15: Serial Number (little-endian)
16: Week of Manufacture
17: Year of Manufacture. Add 1990 to the value for actual year.
18: EDID Version Number
19: EDID Revision Number
20-24: Basic Display Parameters
20: VIDEO INPUT DEFINITION
bit 7: 0=analog, 1=digital
if bit 7 is digital:
bit 0: 1=DFP 1.x compatible
if bit 7 is analog:
bit 6-5: video level
00=0.7, 0.3, 01=0.714, 0.286, 10=1, .4 11=0.7, 0
bit 4: blank-to-black setup
bit 3: separate syncs
bit 2: composite sync
bit 1: sync on green
bit 0: serration vsync
21: Maximum Horizontal Image Size (in centimeters).
22: Maximum Vertical Image Size (in centimetres).
23: Display Gamma. Divide by 100, then add 1 for actual value.
24: Power Management and Supported Feature(s):
bit 7: standby
bit 6: suspend
bit 5: active-off/low power
bit 4-3: display type.
00=monochrome, 01=RGB colour, 10=non RGB multicolour, 11=undefined
bit 2: standard colour space
bit 1: preferred timing mode
bit 0: default GTF supported
25-34: CHROMA INFO
25: low significant bits for Red X (bit 7-6), Red Y (bit 5-4), Green X (bit 3-2), Green Y (bit 1-0).
26: low significant bits for Blue X (bit 7-6), Blue Y (bit 5-4), White X (bit 3-2), White Y (bit 1-0).
27–34: high significant bits for Red X, Red Y, Green X, Green Y, Blue X, Blue Y, White X, White Y.
To decode actual value, rearrange bits as follows:
High significant bits 7-0 for (channel), low significant bits for (channel).
Actual value is between 0.000 and 0.999, but encoded value is between 000h and 3FFh.
35: ESTABLISHED TIMING I
bit 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
36: ESTABLISHED TIMING II
bit 7-0: 800×600@72 Hz, 800×600@75 Hz, 832×624@75 Hz, 1024×768@87 Hz (Interlaced),
1024×768@60 Hz, 1024×768@70 Hz, 1024×768@75 Hz, 1280×1024@75 Hz
37: Manufacturer's Reserved Timing
38–53: Standard Timing Identification. 2 bytes for each record.
First byte
Horizontal resolution. Multiply by 8, then add 248 for actual value.
Second byte
bit 7-6: Aspect ratio. Actual vertical resolution depends on horizontal resolution.
00=16:10, 01=4:3, 10=5:4, 11=16:9
bit 5-0: Vertical frequency. Adds 60 to get actual value.

54–71: Descriptor Block 1
54–55: Pixel Clock (in 10 kHz) or 0
If Pixel Clock is non null:
56: Horizontal Active (in pixels)
57: Horizontal Blanking (in pixels)
58: Horizontal Active high (4 upper bits)
Horizontal Blanking high (4 lower bits)
59: Vertical Active (in pixels)
60: Vertical Blanking (in vertical pixels/lines)
61: high significant bits for Vertical Active (4 upper bits)
high significant bits for Vertical Blanking (4 lower bits)
62: Horizontal Sync Offset (in pixels)
63: Horizontal Sync Pulse Width (in pixels)
64: Vertical Sync Offset (in lines) (4 upper bits)
Vertical Sync Pulse Width (in lines) (4 lower bits)
65: high significant bits for Horizontal Sync Offset (bit 7-6)
high significant bits for Horizontal Sync Pulse Width (bit 5-4)
high significant bits for Vertical Sync Offset (bit 3-2)
high significant bits for Vertical Sync Pulse Width (bit 1-0)
66: Horizontal Image Size (in mm)
67: Vertical Image Size (in mm)
68: high significant bits for Horizontal Image Size (4 upper bits)
high significant bits for Vertical Image Size (4 lower bits)
69: Horizontal Border
70: Vertical Border
71: Interlaced or not (bit 7)
Stereo or not (bit 6-5) ("00" means not)
Separate Sync or not (bit 4-3)
Vertical Sync positive or not (bit 2)
Horizontal Sync positive or not (bit 1)
Stereo Mode (bit 0) (unused if 6-5 are 00)
If Pixel Clock is null:
56: 0
57: Block type
FFh=Monitor Serial Number, FEh=ASCII string, FDh=Monitor Range Limits, FCh=Monitor name,
FBh=Colour Point Data, FAh, Standard Timing Data, F9h=Currently undefined, F8h=defined by manufacturer
58: Unknown
59–71: Descriptor block contents.
If block type is FFh, FEh, or FCh, the entire area is a text string.
If block type is FDh:
59–63:
Min Vertical frequency, Max Vertical frequency,
Min Horizontal frequency (in kHz), Max Horizontal frequency (in kHz), pixel clock (in MHz (multiply by 10 for actual value))
64–65: Secondary GTF toggle
If encoded value is 000A, bytes 59-63 are used. If encoded value is 0200, bytes 67–71 are used.
66: Start horizontal frequency (in kHz). Multiply by 2 for actual value.
67: C. Divide by 2 for actual value.
68-69: M (little endian).
70: K
71: J. Divide by 2 for actual value.
If block type is FBh:
59: W Index 0. If set to 0, bytes 60-63 are not used. If set to 1, 61–63 are assigned to white point index #1
64: W Index 1. If set to 0, bytes 65-68 are not used. If set to 2, 65–68 are assigned to white point index #2
White point index structure:
First byte
bit 3-2: low significant bits for White X (bit 3-2), White Y (bit 1-0)
Second to third byte: high significant bits for White X, White Y.
Fourth byte: Gamma. Divide by 100, then add 1 for actual value.
To decode White X and White Y, see bytes 25-34.
If block type is FAh:
59–70: Standard Timing Identification. 2 bytes for each record.
For structure details, see bytes 38-53.

72–89: Descriptor Block 2
90–107: Descriptor Block 3
108–125: Descriptor Block 4
126: Extension EDID Block(s). In EDID 1.1, it is ignored, and should be set to 0.
127: Checksum.

For example, here is a summary of the data reported by an Envision EN-775e monitor:

  Monitor Name                 EPI EnVision EN-775e
Monitor ID EPID775
Model EN-775e
Manufacture Date Week 26 / 2002
Serial Number 1226764172
Max. Visible Display Size 32 cm × 24 cm (15.7 in)
Picture Aspect Ratio 4:3
Horizontal Frequency 30–72 kHz
Vertical Frequency 50–160 Hz
Maximum Resolution 1280×1024
Gamma 2.20
DPMS Mode Support Active-Off

Supported Video Modes:
640×480 140 Hz
800×600 110 Hz
1024×768 85 Hz
1152×864 75 Hz
1280×1024 65 Hz

Monitor Manufacturer:
Company Name Envision, Inc.

[edit] External links

 
<think>好的,我现在需要回答用户关于显卡驱动程序是否默认支持超过256字节的大容量EDID的问题。首先,我需要理解EDID是什么,以及它在显卡驱动中的作用。根据用户提供的引用内容,EDID信息用于显示器分辨率的识别,显卡驱动会提取这些信息并与自身支持的分辨率做交集,然后报告给操作系统[^2]。 接下来,用户的问题是关于支持超过256字节的EDID的显卡驱动。传统的EDID结构是128字节,后来扩展到256字节(通过CEA扩展块)。但有些情况下可能需要更大的EDID数据,比如高分辨率或HDR等高级功能。这时候就需要驱动程序支持处理超过256字节的EDID。 根据现有知识,大多数现代显卡驱动如NVIDIA、AMD和Intel的驱动程序已经支持扩展的EDID,尤其是为了适应4K、8K或HDR显示器。但默认是否启用可能需要进一步确认。例如,用户提到的引用[2]中,驱动程序从显示器提取EDID并处理交集,但未明确说明是否支持大容量EDID。另外,引用[3]提到Linux下通过特定文件进行OpenGL绘制,可能涉及驱动对EDID的处理,但具体支持情况需要查证。 需要确认各主流驱动的支持情况:NVIDIA的专有驱动可能较早就支持,AMD的驱动在开源和闭源版本中的支持可能不同,Intel的开源驱动可能随着内核版本更新而支持。另外,Linux内核版本和驱动模块(如DRM/KMS)的支持也很重要,较新的内核可能默认支持更大的EDID数据块。 可能存在的问题是,某些旧驱动或配置可能需要手动启用,或者存在固件限制。用户可能需要检查驱动文档或更新驱动版本以确保支持。此外,EDID的读取还涉及硬件接口(如HDMI版本),这也可能影响支持情况。 最后,总结各厂商驱动的支持情况,并建议用户如何验证和配置,比如检查内核日志、使用工具读取EDID等,同时指出可能的限制和解决方法。</think>关于显卡驱动程序对超过256字节的EDID支持情况,以下是详细分析: ### 1. **EDID容量扩展的背景** 传统EDID遵循VESA标准,基础结构为128字节(EDID 1.3),后通过CEA扩展块扩展到256字节(EDID 1.4)。随着显示技术发展(如高刷新率、HDR、多显示器配置),部分场景需更大容量的EDID存储,这通常通过多块扩展实现(例如使用多个扩展块)。 ### 2. **驱动支持情况** - **NVIDIA驱动**: 自2016年后的驱动版本(如R375及以上)已支持解析超过256字节的EDID,尤其是对HDMI 2.1和DisplayPort 2.0规范下的显示器。但需确保显卡硬件(如RTX 20系列及以上)和显示器均支持相关协议。 - **AMD驱动**: 开源驱动(如AMDGPU)从Linux内核5.0开始支持大容量EDID,闭源驱动(如Radeon Software Adrenalin)在2020年后默认支持。Windows平台通过WDDM 2.6+模型实现兼容。 - **Intel驱动**: 开源驱动(i915内核模块)从Linux 4.15版本开始完整支持扩展EDID解析,Windows驱动则需DCH驱动版本27.20.100.9621及以上。 ### 3. **验证方法** - **Linux系统**: 使用`edid-decode /sys/class/drm/*/edid`命令可查看原始EDID数据长度。若输出包含多个扩展块(如Block 1, Extension 1),则表明驱动已读取完整数据。 ```bash sudo apt-get install edid-decode sudo find /sys/devices -name edid | xargs -I{} sh -c "echo {}; edid-decode {}" ``` - **Windows系统**: 通过工具**CRU (Custom Resolution Utility)** 或**Monitor Asset Manager**可直接查看EDID长度。若显示"EDID Version 1.4"且扩展块数≥2,则说明支持大容量EDID。 ### 4. **常见限制与解决方案** - **固件限制**:部分旧显卡固件仅支持256字节EDID截断。需更新显卡固件或启用驱动参数(如NVIDIA的`EdidSize`覆盖选项)。 - **操作系统兼容性**:Windows 10 1809及以上版本完全支持,旧版本可能需手动注册表修改。 - **接口限制**:HDMI 1.4及以下接口可能无法传输扩展EDID,需升级到HDMI 2.0/DP 1.4或更高。 ### 5. **手动配置示例(Linux)** 若驱动未自动加载完整EDID,可通过强制注入: ```bash # 提取显示器EDID sudo cp /sys/class/drm/card0-HDMI-A-1/edid /etc/X11/edid.bin # 修改Xorg配置 Section "Device" Identifier "GPU" Driver "nvidia" Option "CustomEDID" "HDMI-0:/etc/X11/edid.bin" EndSection ``` ###
评论 57
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值