Granite River Labs, GRL
楊昕叡 Ray Yang
DisplayID的全名為Display Identification Data,又名第二世代的EDID,2013年VESA推出的DisplayID 1.3版本被廣泛地運用在DisplayPort介面;而在2021年第四季VESA再度頒布了更新後的2.1版本。若想了解DisplayID 1.3的基本架構,請參考GRL另一篇技術文章:VESA® DisplayID 1.3 Standard Overview。
最新的2.1版本延續著DisplayID 1.3以及DisplayID 2.0的所有基本結構,同時更新了許多的Data block以適用於日益漸增的現代高清顯示器,或穿戴式裝置如AR及VR。隨著高清顯示器的普及,DisplayID 2.1的出現為電子消費市場提供一個簡潔且清晰的方式來描述甚至優化連接性。本篇文章將著重於DisplayID Data block的描述,讓讀者們更熟悉DisplayID 2.1的構造與更新內容,可搭配參考VESA® Display Identification Data (DisplayID) Standard version 2.1取得更詳細的規範說明,進一步運用至產品中。
DisplayID 2.1延續著DisplayID1.3的基本架構,由一個最基本的Base DisplayID搭配一個或是多個的DisplayID Extension為一個組合,原則上不管是Base DisplayID或是DisplayID Extension內部的結構都是一樣的,只是DisplayID 2.1多做了一些內容的更新。
例如在Base DisplayID下的第三個Byte為Product Type Identifier,用來描述該顯示器的類別為何,以下分別為此Byte在DisplayID 1.3以及DisplayID 2.1定義的產品分類。
圖1: DisplayID 1.3 Product type identifier (來源:DisplayID spec1.3)
圖2: DisplayID 2.1 Product type identifier (來源:DisplayID spec2.1)
可以看出兩個版本從0h至6h都是相似的內容,但在DisplayID 2.1多了7h以及8h用來描述VR以及AR顯示裝置,由此可見DisplayID 2.1的推出對於未來的VR、AR顯示裝置扮演很重要的角色。
顯示器所有相關資訊幾乎都包含在”Data Block”裡面,大部分的Data Block為VESA或是CEA兩個組織定義好的模組,各家廠商可以自由的選擇使用Data Block來描述自家的產品。VESA或是CEA定義的Data Block基本上不會有固定的長度,端看廠商使用了幾個Descriptor來描述,而VESA在DisplayID 2.1規範中新增了幾個以往在DisplayID 1.3或是DisplayID 2.0沒有的Data Block,如Adaptive-Sync、AR/VR等,相關的顯示器可以透過新增Data Block宣告詳細內容供Source端來做相對應的輸出以及應用。Data Block的基本結構如圖3所示。
圖3: Data Block Format (出自DisplayID spec2.0)
Data Block的基本構造在DisplayID 2.1和DisplayID 1.3中沒有差別,唯一不一樣的地方為Block Tag,過往DisplayID 1.3的00h至13h在DisplayID 2.1皆為RESERVED,DisplayID 2.1有規定若使用了DisplayID 2.1的架構則不能使用上述DisplayID 1.3 00h至13h的Data Block。DisplayID 2.1的Data Block Tag則由20h開始,81h開始依然是CEA所定義的Data Block,如下圖。
圖4: Data Block Tag Allocation (來源:DisplayID spec2.1)
如前文所述,在Base DisplayID Section會描述該產品屬於哪一類別,每個不同類別的產品都有必須具備的Data Block,如每個產品類別都必須含有20h Product Identification Data Block。其餘的Data Block則要根據產品類別決定是否需要支援,以下會針對目前較常見到的Data Block內容、必備性以及如何使用加以說明。
前面章節提到Base DisplayID的02h必須說明該產品的類別,不論哪一種類別的產品,在Base DisplayID下一定要將Product Identification Data Block作為第一個Data Block,除此之外整個DisplayID結構僅能有一個Product Identification Data Block,圖5為該Data Block的結構。
圖5: Product Identification Data Block (來源:DisplayID spec2.0)
第一個Byte為Product Identification Data Block的Block Tag “20h”,隨後的Byte則會詳細的說明該產品的製造日、Vendor ID、Product code、Serial number等詳細資訊。要注意的是除了Serial number以及Product Nam String是選擇性支援,其餘的Descriptor都是必須宣告的。
Display Parameters Data Block是由不同的欄位組成來定義螢幕尺寸、像素等。一個DisplayID section只能宣告一個Display Parameters Data Block。所有Base DisplayID定義為Display類別的產品皆必須支援此Data Block,其餘類別則皆為選擇性支援,下圖為Display Parameters Data Block的結構。
圖6: Display Parameters Data Block (來源:DisplayID spec2.0)
這裡簡單舉Horizontal Image Size與Vertical Image Size欄位為例,顧名思義就是在宣告此產品的顯示畫面大小,這兩個Descriptor會搭配在01h bit 7的Image Size Multiplier而有不同的倍數關係(圖7),接著如圖8所示,若Image Size Multiplier為0的時候Horizontal / Vertical的範圍為0.1mm至6553.5mm,而當Image Size Multiplier為1的時候Horizontal / Vertical的範圍為1mm至65535.0mm。
圖7: Image Size Multiplier bit (來源:DisplayID spec2.0)
圖8: Horizontal Image Size and Vertical Image Size Fields (來源:DisplayID spec2.0)
然而某些顯示產品不能精確的量測畫面尺寸,如CRT顯示器,這些產品此欄位需宣告的大小即為該顯示器可輸出的最大解析度。另外,像是投影設備的相關產品如果沒有一個固定的尺寸,兩個Descriptor皆需宣告為0。
Video Timing Mode Data Block可以使用多個Descriptor來描述多個解析度,而此在DisplayID 2.1 Data Block又可向下細分四種不同的Video Timing Mode:Type VII Timing – Detailed、Type VIII Timing – Detailed、Type IX Timing – Short、Type X Timing – Formula-Based Timing,Block Tag分別如下表。而本文將對Type VII Timing – Detailed進行簡單說明。
表1: Video Timing Mode subcategories
Type VII Timing Data Block是由每個20 byte的Detailed Timing Descriptor組成,所有在Base DisplayID定義為Display類別的產品是強制支援此Data Block的,其餘類別的產品皆為選擇性支援。Type VII Timing Data Block與DisplayID 1.3裡定義的Type I Timing Data Block有相似的功能,只不過在Bytes 0,1,2對於Pixel Clock有所不同。Type VII所使用的單位為KHz,可以更精確地宣告Pixel Clock,數值可從0.001宣告至16777.216MP/s。
圖9: Type VII Detailed Timing Data Block Format (出自DisplayID spec 2.0)
任何支援Adaptive-Sync功能的顯示器都必須在DisplayID裡宣告Adaptive-sync data block,下圖為此Data Block的基本構造。
圖10: Adaptive-Sync Data Block Format (來源:DisplayID spec2.1)
下圖則為Adaptive-Sync Data Block中Descriptor內的細節,這邊會舉幾個例子作為範例。
圖11: Adaptive-Sync operation mode and range descriptor (出自DisplayID spec2.1)
Byte 0會清楚地宣告該Descriptor的Adaptive-Sync範圍以及操作模式,如 Byte 0的bit3:2會說明此模式有無支援FAVT,或是FAVT及AVT兩種模式都支援。
Byte 2則是會宣告最低的Refresh rate(更新率),範圍從0至255Hz,分母為1.001。Byte3及Byte4則宣告最高的Refresh rate,範圍從1至1024Hz,再乘上350ppm。
為了讓DisplayID v2.0的結構(註1)可以做為EDID的extension block,在DisplayID 2.1規範裡一些相關的規定以及須包含哪些必要的Data Block,以下為相關規則:
註1:DisplayID v2.0為包含DisplayID2.0 spec以及DisplayID2.1 spec裡提及的結構,在此章節統稱為DisplayID v2.0
此外,因早期的Source裝置可能無法解讀DisplayID v2.0的架構,為了使這類的Source產品可以完整讀取DisplayID的產品內容,Sink裝置允許同時將DisplayID v1.2(註2)以及DisplayID v2.0的Extension block作為EDID的Extension block。不過有以下的要求以及規定:
註2:DisplayID v1.2為包含DisplayID1.2 spec以及DisplayID1.3 spec裡提及的結構,在此章節統稱為DisplayID v1.2
以下為EDID的架構下含有DisplayID v1.2以及DisplayID v2.0的Extension block順序表範例。
表2: Example of Mandatory Ordering of EDID Extension Section Block
最後,我們將根據GRL的測試經驗來分享DisplayPort及HDMI在使用DIsplayID的規範,因目前市場上多數產品仍為EDID標準,極少數產品擁有完整的DisplayID架構(Base DisplayID +DisplayID Extension),大部分皆是以EDID Base為主再加上一個DisplayID Extension;但為了滿足更高解析度及更新率的需求,相信未來市場上以DisplayID為架構的產品將會越來越多。
- HDMI
HDMI現階段的規範仍是不允許Display Extension作為EDID的Extension block,即使是DisplayID V1.x也無法使用,目前的規範還是多半使用CTA 861 Extension作為Extension Block,且必須遵守EDID1.3的規範去做設計。
- DisplayPort
相較於HDMI,Display Port的EDID規範可以將DisplayID Extension作為EDID Base下的Extension Block。僅需遵守上述的相關規範即可。
下方附上一實例,DisplayID Structure v2.0作為EDID Extension,該DisplayID Extension接續在EDID base之後,符合目前Display Port的EDID規範。
表3: DisplayID Structure v2.0 as an EDID Extension Section Example
參考文獻
作者
GRL 台灣技術工程師 楊昕叡 Ray Yang
畢業於國立台灣科技大學化學工程學系。
在 GRL 累積四年多的 HDMI 相關測試經驗,熟悉 HDMI、MIPI、V by One 等測試規範。目前在 GRL 台灣主要負責HDMI 測試,樂於協助客戶釐清 HDMI 方面的問題,以順利取得認證。
本文件中規格特性及其說明若有修改恕不另行通知。
發佈日期 2022/08/10 AN-220810-TW