本文從軟件工程師角度對HDMI spec進(jìn)行解析,基于的spec版本為1.4,也是設(shè)備支持最多最成熟的版本,目前最新版本為2.0。
1 概述
HDMI(High-Definition Multiface Interface)是Hitachi, Panasonic, Philips, SiliconImage, Sony, Thomson, Toshiba幾家公司共同發(fā)布的一款音視頻傳輸協(xié)議,主要用于DVD, 機(jī)頂盒等音視頻source到TV,顯示器等sink設(shè)備的傳輸。傳輸基于的是TMDS(Transition Minimized Differential Signaling)協(xié)議。此外,使用TMDS也是DVI標(biāo)準(zhǔn)的主要特點(diǎn) 。
2 物理結(jié)構(gòu)
上圖是HDMI block結(jié)構(gòu)圖,可以看出HDMI用于audiovisual source和sink之間的連接,HDMI cable由3組差分信號傳輸TMDS數(shù)據(jù),1組差分信號傳輸clock。此外,HDMI還有一個(gè)DDC的通道連接到sink的EDID。CEC和HEAC都是HDMI的可選協(xié)議。
HDMI定義了五種類型的connector,上圖是最常見的type A。
1-9是TMDS data傳輸用到的引腳,共有三組;
10-12是TMDS clock傳輸用到的引腳,共有一組,TMDS clock就是pixel clock;
13是CEC引腳,一種消費(fèi)電子兼容的傳輸協(xié)議;
14是保留引腳;
15,16是DDC的引腳,DDC是基于I2C協(xié)議傳輸,故引腳為SCL和SDA;
17是接地;
18是+5V power;
19是HPD引腳,用于建立連接。
3 傳輸
概述
HDMI傳輸由三組TMDS通道和一組TMDS clock通道組成,TMDS clock的運(yùn)行頻率是video信號的pixel頻率,在每個(gè)cycle,每個(gè)TMDS data通道發(fā)送10bit數(shù)據(jù)。
上圖是HDMI傳輸?shù)氖疽鈭D,從圖中可知,HDMI傳輸如下四種類型數(shù)據(jù):
(1)Preamble控制信息,圖中的CTLx,可用來表示后面?zhèn)鬏數(shù)氖莇ata island還是video data。通過channel1和2的D[1:0]傳輸,占用4bit。
(2)Data Island,即數(shù)據(jù)包,如Audio數(shù)據(jù)包。通過3個(gè)channel的D[3:0]傳輸,占用12bit。
(3)Video Data,視頻數(shù)據(jù)。示意圖中傳輸?shù)氖荝GB格式圖像,R,G,B分別通過channel2,1,0傳輸,每個(gè)顏色8bit,共24bit。
(4)HSYNC, VSYNC。使用channel0的D[1:0]傳輸,占用2bit。
8bit的數(shù)據(jù)在source經(jīng)過TMDS encoder后得到10bit數(shù)據(jù),經(jīng)過serializer后串行輸出;在sink端先進(jìn)行復(fù)原成10bit的數(shù)據(jù),再通過TMDS decoder得到8bit的源數(shù)據(jù)。
此外,HDMI視頻是stream式的傳輸,不涉及packet式的傳輸。
上圖是傳輸720x480p video的hdmi timing圖。
在video data period,有效的video數(shù)據(jù)進(jìn)行傳輸;
在data island period,audio和auxiliary數(shù)據(jù)以包的形式進(jìn)行傳輸;
在control period,CTLx和HSYNC, SYNC進(jìn)行傳輸。
data island period和control period都是在消隱區(qū)進(jìn)行。圖中行消隱占用138像素,場消隱占45行。
上圖中是對時(shí)序圖中描述的三種period分別傳輸?shù)臄?shù)據(jù)和編碼類型進(jìn)行說明。video數(shù)據(jù)從8bit/channel encode后變?yōu)?0bit/channel, data island的packet數(shù)據(jù)從4bit/channel encode后為10bit/channel, control數(shù)據(jù)從2bit/channel encode為10bit/channel。
Control Period
只有兩種類型的preamble信息組合,CTL0:3=1000代表接下來的是video data period,CTL0:3=1010代表接下來的是data island period。HSYNC, VSYNC此時(shí)也有可能發(fā)生變化。
Video Data Period
video data period以2個(gè)字符(pixel)長度的leading gurad band開始,guard band如下:
ch0: q_out[9:0] = 0b1011001100
ch1: q_out[9:0] = 0b0100110011
ch2: q_out[9:0] = 0b1011001100
Data Island Period
data island period傳輸audio數(shù)據(jù)和輔助數(shù)據(jù),輔助數(shù)據(jù)包括Infoframe和其他用于音視頻信息描述的數(shù)據(jù)。data island period以2個(gè)字符長度的leading guard band開始,并以2個(gè)字符寬度的trailing guard band 結(jié)束。guard band如下:
ch0: q_out[9:0] = n.a
ch1: q_out[9:0] = 0b0100110011
ch2: q_out[9:0] = 0b0100110011
data island傳輸?shù)膒acket類型和格式詳見spec說明。
三個(gè)傳輸階段的過渡過程如下圖所示:
(1) 左一是control period, 分別占用三個(gè)channel的D[1:0],channel 0傳輸HSYNC, VSYNC, channel1,2 傳輸Preamble
(2) 左二是data island period,分別占用了三個(gè)channel的D[3:0],channel 0的D[1:0]傳輸HSYNC, VSYNC, channel0的D[3:2]傳輸packet header, channel 1,2的D[3:0]傳輸packet。并且兩端以guard band隔離
(3)右二接下來又是control period
(4)右一是 video data island, 占用了全部三個(gè)通道,并且開始以guard band 隔離
4 Video
支持三種pixel encoding:RGB4:4:4, YCbCr4:4:4, YCbCr4:2:2
video format除了CEA-861-D中格式外,還會(huì)支持一些較特殊的格式
color depth可支持一個(gè)像素24, 30, 36和48bits
下面分別是24bit/pixel的RGB444, YCbCr422, YCbCr444的pixel encoding示意圖。RGB444每個(gè)顏色占8bit, YCbCr422中Y占12bit,C占12bit,YCbCr444中Y,Cb,Cr都占用8bit。
Deep Color模式
Pixel Packing
24 bit mode: 1 pixel/group, 1 fragment/group
30 bit mode: 4 pixel/group, 5 fragment/group
36 bit mode: 2 pixel/group, 3 fragment/group
48 bit mode: 1 pixel/group, 2 fragment/group
1fragment/TMDS clock, 如30bit下的4pixel,需要5次傳輸完成,每次1個(gè)fragment。
5 Audio
Audio數(shù)據(jù)以Audio Sample Packet或High Bitrate Audio Stream Packet的形式傳輸,但是HDMI沒有傳輸audio clock,因此sink設(shè)備需要進(jìn)行audio clock regeneration。原理如下:
128?fs=N×fTMDS/CTS
N和CTS會(huì)在Audio Clock Regeneration Packet中進(jìn)行傳輸,TMDS clock可通過硬件獲取,因此sink端可算出source傳輸?shù)腶udio clock。
6 Control
InfoFrame
Infoframe以Infoframe packet的形式傳輸,它的大小不超過30字節(jié)加上一個(gè)checksum字節(jié)。具體infoframe的格式及內(nèi)容需要查看spec。
AVI(Auxiliary Video Information) Infoframe
Audio Infoframe
HDMI Vendor Specific Infoframe, 傳輸4kx2k或3D格式時(shí)需要發(fā)送此packet
EDID & DDC
sink設(shè)備在ROM中存放EDID信息,source在收到HPD后會(huì)通過DDC通道讀取EDID得到顯示設(shè)備的屬性。EDID包含兩部分,前128字節(jié)符合EDID1.3數(shù)據(jù)結(jié)構(gòu),128字節(jié)的擴(kuò)展EDID,符合CEA extension verison3。CEA extension verison3如下圖所示。
HDMI VSDB
HDMI sink設(shè)備在第一個(gè)擴(kuò)展EDID中包含HDMI VSDB,source在讀取EDID后會(huì)根據(jù)是否有此block來判斷設(shè)備是HDMI還是DVI。
Hotplug
source會(huì)監(jiān)測HPD pin的狀態(tài),當(dāng)source和sink連接后,如果HPD為高電平,說明sink設(shè)備正常可以工作,source可通過DDC讀取EDID,如果為低電平,說明sink已斷開。
sink可通過拉低HPD超過100ms來向source表明EDID發(fā)生了變化,此時(shí)source會(huì)重新讀取EDID。
HDCP
涉及內(nèi)容較多,會(huì)在單獨(dú)章節(jié)中講解。
編輯:hfy
-
機(jī)頂盒
+關(guān)注
關(guān)注
4文章
390瀏覽量
54120 -
顯示器
+關(guān)注
關(guān)注
21文章
4970瀏覽量
139926 -
HDMI
+關(guān)注
關(guān)注
32文章
1694瀏覽量
151863 -
音視頻
+關(guān)注
關(guān)注
4文章
471瀏覽量
29872
發(fā)布評論請先 登錄
相關(guān)推薦
評論