【技術文章】顯示器的身份證 – EDID 是什麼?

Granite River Labs, GRL
李清宇 Peter Lee

 

          EDID全名為Extended Display Identification Data,是由VESA協會制定的顯示器標準資訊格式。具體來說,EDID其實就像是顯示器的身分證,其內容會包含顯示器的相關資訊,如顯示器名稱、產品序號、支援解析度、聲音格式等等。目的為告訴輸出端顯示器支援的能力,確保電腦或是機上盒等影音輸出裝置,在連接上顯示器後,能根據資訊輸出正確的影音格式,因此可以避免無法顯示或顯示比例不正常等狀況發生,帶給消費者更佳的娛樂體驗。

          目前此項技術已廣泛應用於影音顯示介面如 DisplayPort、HDMI。在實作上,為了要容納先前提到的EDID資訊於顯示器中,一般會使用儲存裝置如 ROM 來進行儲存,並且在HDMI介面會利用I2C的介面來進行雙向的資料傳輸。

圖1: EDID 傳輸架構
(VESA ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA STANDARD, Version 1, Revision 4)

 

本文將以HDMI介面為例,介紹完整的 EDID 溝通過程:

  1. 當輸出端連結上顯示器後,顯示器確認連結成功會將 HPD 電壓拉高。
  2. 輸出端確認 HPD 電壓狀態後,會透過 SDA/SCL 兩條數據線,向顯示器要求 EDID 資訊讀取。值得注意的是,HDMI規範允許產品透過硬體設計,讓顯示器關機時能藉由輸出端給提供的5V將 HPD 拉高,這使得輸出端能在顯示器關機時也能讀取 EDID。
  3. 當輸出端能正確的讀取 EDID 格式時,就會根據雙方能力做出預設影音輸出。但若EDID格式有誤,或是顯示卡無法正確理解EDID資訊,此時會依據各家顯示卡廠商設計方式不同,電腦有可能會將螢幕識別為 Non-PNP,並會輸出大部分顯示器所支援的解析度,如HDMI最低要求的 640x480p60Hz。其餘狀況顯示卡有可能會顯示Inactive並呈現反灰,代表不會有任何畫面輸出。

 

» EDID 架構介紹

          EDID的相關標準在這二十年間不斷進行修改,從下表可以看到EDID的版本由EDID1.0演進至E-EDID1.4,再到最新的DisplayID 2.0格式。這些版本的更改主要是因應娛樂產業的蓬勃發展,因為隨著科技進步,出現越來越多的顯示格式、聲音格式、甚至傳輸技術也有所不同,這一方面代表著要有更大的容量來存放這些訊息,另外也要有相關的格式規範來描述這些新技術。所以EDID就從原先只能容納單一個128Byte的Block的EDID1.0版本,到目前發展到能利用Extension Block格式在EDID內放置多個Block,最多可放置256個Block的E-EDID1.4版本。

          而在現今 HDMI 介面中,並非使用最新的DisplayID格式,因協會為確保與舊有產品間的相容性,目前仍採用 E-EDID1.3架構。

EDID revision history
EDID v1.0, August 1994 Defined original 128-byte data format (deprecated)
EDID v1.1, April 1996 Added definition to existing data fields (deprecated)
EDID v1.2, November 1997 Added definition to existing data fields (deprecated)
EDID v1.3, September 1999 New baseline for EDID data structure
E-EDID v1.3, February 2000 Allows addition data stored as EDID extensions, and is used in HDMI
E-EDID v1.4, September 2006 Added support for consumer electronic product
DisplayID v2.0, November 2017  Introduced variable-length structures of up to 256 bytes
    • 表1: EDID版本更動歷史
    • (https://en.wikipedia.org/wiki/Extended_Display_Identification_Data)

1. EDID Block0

接著對HDMI的EDID 內容進一步解說,以下圖的EDID為例,首先EDID基礎由一個Base Block組成,稱為 Block0,內部總共能容納128Byte,且每個Byte採用16進位格式進行資料填寫。

圖2: EDID Block0

 

Block0前20Byte稱為Header,前8個Byte為固定格式需填寫00FFFFFFFFFFFF00,接下來的10個Byte則須填寫製造廠商相關資訊,如廠商名稱以及生產日期等等。最後2個Byte填寫使用的EDID版本,如前文提及,HDMI目前採用E-EDID1.3架構,因此欄位只能填寫0103,若填寫0104或更高的版本皆會無法通過HDMI1.4b的Compliance測試。

圖3: EDID Header 架構
(VESA ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA STANDARD, Version 1, Revision 4)

 

14h至18h,描述顯示器支援的影像輸入格式(類比或數位),顯示器尺寸以及Gamma值設定。

圖4: 顯示器影像輸入格式
(VESA ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA STANDARD, Version 1, Revision 4)

 

19h至22h,描述顯示器支援的色域範圍。

圖5: 顯示器色域範圍設定
(VESA ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA STANDARD, Version 1, Revision 4)

 

23h至25h為Established timing,填寫顯示器支援的解析度,每個bit都對應到一個特定格式,格式均為早期顯示器支援的解析度,主要提供給VSEA、IBM、APPLE等Source使用。由於在HDMI介面中,顯示器必須支援640x480p60Hz (VGA)格式,因此建議可在Established timing I 中支援該解析度。

圖6: Established timing I & II

(VESA ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA STANDARD, Version 1, Revision 4)

 

26h至35為Standard timing,填寫顯示器支援的解析度,最多可以填寫8個解析度,會用2個byte描述支援解析度的寬像素值、畫面長寬比例、螢幕更新率。如果在此不需要填寫支援解析度,可將剩餘的byte設置為01。

圖7: Standard timing
(VESA ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA STANDARD, Version 1, Revision 4)

 

36h至7DH合計72個Byte,可被分為四組18byte的Descriptors,其目的是對顯示器的功能進一步補充。首先第一組Descriptor根據HDMI規範必須為Detailed Timing Descriptor,用來填寫支援解析度,但是相較於前面提到的Established timing和Standard Timing,它使用較多的影像參數來描述:如影像的時鐘頻率、長寬像素、空白區長寬等等,也因為這樣的特性,這組Descriptor可用來填寫一些特殊、並非列在CEA-861文件的解析度。剩餘的三組Descriptors,根據HDMI規範,需要至少包含一組Monitor Range Descriptor和Monitor Name Descriptor,分別描述顯示器支援的垂直、水平更新率以及產品名稱。Block0最後的2個byte,7E代表除了Block0以外的Extension Block數量,7F則為校驗值。

Block0已對顯示器的功能進行基本的描述,像是產品資訊和支援的解析度等等,但如果顯示器要額外支援一些HDMI進階功能:如色深、音訊格式、3D,此時就需要使用Extension block 來描述。Extension block的格式總共有下列幾種,但由於在HDMI規範中必須至少使用一個CEA-EXT,下文將只針對其進行介紹,其餘格式不在本文討論範圍。

圖8: EDID Extension Block 格式

(VESA ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA STANDARD, Version 1, Revision 4)

 

在Block0後置入的第一個CEA-EXT稱為Block1,前2個Byte分別代表這是CEA-EXT以及使用的CEA版本,使用版本如果晚於CEA-861B均填寫03。第三個Byte代表的是DTD offset,描述在Block1何處開始列出DTD,以下圖為例51即是DTD起始的位置。第四個Byte中填寫顯示器是否支援基本音訊輸出、以及Ycbcr色彩格式。

 

2. EDID Block1

圖9: EDID Block1

 

在header之後,CEA-EXT採用多個Data block的方式來描述支援的能力,根據CEA-861G文件的規範,僅有下列的Data block能使用:

圖10: HDMI可使用的Data Block 種類(CTA-861-G, November 2016)

 

– Data Block 種類:

1. Audio data block:描述待測物支援的音訊能力,內容包含顯示器支援的聲音格式、聲道數目、音頻採樣率、音頻位元率。如果HDMI顯示器支援音訊輸出,根據規範須支援LPCM音訊,且同時支援32kHz,44.1kHz,48kHz的音頻採樣率。

圖11: Audio Data Block 格式(LPCM)(CTA-861-G, November 2016)

2. Speaker allocation data block:如果顯示器支援聲道數目大於二,就必須使用此格式來描述多聲道的支援配置。

圖12 Allocation Data Block 格式(CTA-861-G, November 2016)

 

3. Video data block:使用VIC code描述顯示器支援的解析度,如果DTD中有列出CEA的解析度,在Video data block中也需同步列出。

4. Vendor specific data block:提供給各影像協會使用,內容會因使用的影像介面不同而異。像是HDMI協會自定義HDMI VSDB以及HDMI HF-VSDB兩種格式,來描述專屬於HDMI的相關功能。

如果顯示器支援HDMI1.4b,則必須含有HDMI VSDB,格式如下:Byte1至Byte3為IEEE提供給HDMI的數值,代表顯示器為HDMI 裝置,若產品沒有HDMI VSDB則會被輸出端判定為DVI裝置。Byte4至Byte5代表顯示器輸入端的物理位址,一般會由1.0.0.0開始,若顯示器具有多個輸入端,為了進行區別,不同輸入端對應的位址需分別填寫為2.0.0.0, 3.0.0.0….以此類推,以上為HDMI VSDB最少要填寫的內容,總長為5個Bytes。Byte6開始為額外內容,如果待測物有支援不同色深、3D、4K解析度才需要進行填寫。

圖13: HDMI VSDB 格式(HDMI Specification Version 1.4b)

 

若顯示器支援最新的HDMI2.1,除了HDMI VSDB也必須含有HDMI HF-VSDB,格式如下:Byte1至Byte3同樣為IEEE提供給HDMI的數值,Byte5之後可填寫顯示器支援的2.1 TMDS/FRL功能:如DSC、VRR、ALLM等等。

圖14: HDMI HF-VSDB 格式(HDMI Specification Version 2.1)

 

5. Extended Tag:上述Data block未提及的HDMI功能,均定義於Extended tag格式中,以下僅對常見的data block進行介紹。

圖15: HDMI可使用的 Extended tag 格式(CTA-861-G, November 2016)

 

  • Video capability data block:QY,QS描述顯示器分別在Ycbcr以及RGB色彩格式下是否支援full range灰階模式,Byte3的bit0~5則用來表示顯示器在接收PT/IT/CE 等影像格式時,是採用overscan還是underscan方式顯示。

圖16: Video capability data block 格式(CTA-861-G, November 2016)

  • Ycbcr420 Video data block如果特定解析度只支援Ycbcr420,不支援Ycbcr444以及RGB色彩格式時,要在此data block列出該解析度的VIC值。

圖17: Ycbcr 4:2:0 Video Data Block 格式(CTA-861-G, November 2016)

 

  • Ycbcr420 Capability map data block此格式會列出VDB中額外支援Ycbcr420的解析度,因此使用Ycbcr420 CMAB代表這些解析度仍同時支援Ycbcr444和RGB,與前述的Ycbcr420 VDB用法不同。

圖18: Ycbcr 4:2:0 Capability Map Data Block 格式(CTA-861-G, November 2016)

 

» EDID 常見問題

最後,GRL列出客戶常見的HDMI EDID問題:

 

1. 我的顯示器產品只支援 HDMI2.1 TMDS模式,且支援傳輸速率最高至 6Gps,為甚麼在EDID中不能支援YCbCr420色彩格式的4K120/4K100,即使該解析度所需的傳輸速率不到6Gps?

根據 HDMI 2.1 Spec Erratum No.E3 文件, 若 Sink 要支援 4K120 影像格式,則必須同時支援以下其中一種格式:1. 未壓縮的 YCbCr420 4K120 10 bit 解析度 2. 壓縮的 YCbCr444 4K120 10bit 解析度。由於以上兩種解析度速率均大於 6Gps,已經超出 HDMI2.1 TMDS 模式的速率上限,因此代表產品需支援更高速的 HDMI 2.1 FRL 模式才能支援4K120輸入,同理4K100也有相同的規定。

 

2. EDID 中的 VRR 相關資訊要如何填寫?

VRRmin 以及 VRRmax 需以產品能力去做填寫,但注意 VRRmax 需要與 EDID 內寫入的解析度的最大更新率一致。例如在DTD 內寫入 3840x2160p120Hz,VRRmax 則不能填寫大於 120 的數值。

 

3. 什麼是 HF-SCDB, 與常見的 HF-VSDB 格式有何差異?

HF-SCDB是HF-VSDB的一種替代寫法,兩者內容大致上相同,Byte4後均放置SCDS,用來描述Sink支援的HDMI2.1功能。唯一差異只在於前四個Byte,HF-SCDB使用Extension tag,而HF-VSDB則使用Vendor specific data block格式填寫。

 

4. HF-EEODB 這種新格式的 Data Block 內容為何?

HF-EEODB這種新的 Data block格式,通常放置於Block1的Byte4至Byte6,內容用來表示EDID的EXT-Block 數量,是一種Block map的替代寫法。其格式總共由3個Byte組成,Byte1至Byte2為固定參數,代表此為HF-EEODB,Byte3則填寫在此EDID中的EXT-Block數量。HF-EEODB寫法相較於Block map有兩點差異,一是容量差異,HF-EEODB只使用三個Byte,而Block map 則需使用一整個Block來描述 (128byte),因此在ROM容量有限時,建議優先使用HF-EEODB。二是內容差異,HF-EEODB只能描述EXT-Block的數量,但Block map則除了數量以外,也能同時描述使用的EXT-Block種類。

 

 

參考文獻

  • VESA ENHANCED EXTENDED DISPLAY. IDENTIFICATION DATA STANDARD. (Defines EDID Structure Version 1, Revision 4)
  • CTA-861-G

 

文章下載

 

作者
GRL 台灣測試工程師 李清宇 Peter Lee

國立成功大學材料系碩士畢業。兩年 HDMI 測試經驗,熟悉 HDMI2.1 與 HDCP 技術測試。GRL 技術文章作者及演講講師。

 

想瞭解更多相關服務,歡迎聯絡:

11493台北市內湖區內湖路一段516號4樓
電話: +886 (2) 2657-2199 #105
Email: info_taiwan@graniteriverlabs.com
官網: www.graniteriverlabs.com.tw

 

本文件中規格特性及其說明若有修改恕不另行通知。                         發佈日期 2021/12/16 AN-211216-TW