HDMI全稱(High Definition Multimedia Interface)高清多媒體接口,支援在單線纜上傳輸全數字高清視訊和多聲道音頻。
HDMI基于TMDS協定傳輸,主要用于DVD, 機頂盒等音視訊source到TV,顯示器等sink裝置的傳輸。HDMI向下相容 DVI,但是 DVI(數字視訊接口)隻能用來傳輸視訊,而不能同時傳輸音頻,這是兩者最主要的差别。
術語
HDMI:High Definition Multimedia Interface高清多媒體接口,傳輸音視訊。
HDCP:High-bandwidth Digital Content Protection 版權保護相關的,通過IIC擷取。
EDID:Extended Display Identification Data 擴充顯示辨別資料,包含有關顯示器及其性能的參數,包括供應商資訊、最大圖像大小、顔色設定、廠商預設定、頻率範圍的限制以及顯示器名和序列号的字元串等。
DDC:Display Data Channel 顯示資料通道,其實就是IIC通道,用來擷取EDID、HDCP密鑰等内容。
HDP:Hot Plug Detect熱插拔檢測。
CEC:Consumer Electronics Control 使用者電氣控制,CEC可以控制從裝置的一些狀态,即遙控器功能。
TMDS:Transition Minimized Differential Signaling最小化傳輸差分信号,一種差分傳輸技術
HEAC:HDMI Ethernet and Audio Return Channel 以太網和音頻傳回,HEAC需要額外的phy才能支援。
Source:A device with an HDMI output
Sink:A device with an HDMI input
CTS:Compliance Test Specification
實體結構
HDMI有A、B、C、D、E五種引腳類型,目前常用的是Type A:
1-9是TMDS data傳輸用到的引腳,共有三組;
10-12是TMDS clock傳輸用到的引腳,共有一組,TMDS clock就是pixel clock;
13是CEC引腳,一種消費電子相容的傳輸協定;
14是保留引腳;
15,16是DDC的引腳,DDC是基于I2C協定傳輸,故引腳為SCL和SDA;
17是接地;
18是+5V power;
19是HPD引腳,用于熱插拔檢測
HDMI框圖
HDMI 系統架構由Source端和Sink端組成:Source是指發送HDMI信号的一側,Sink是指接收HDMI信号的一側。
HDMI信号四路差分信号組成,包括三路TMDS Data信号和一路TMDS Clock信号。TMDS信号不僅僅用于傳輸video信号,還傳輸audio和輔助資訊。
HDMI 提供一個 DDC 通道用于在source端和sink端交換狀态。
HDP用于熱插拔檢測,CEC是使用者電氣控制,一般用作遙控,HEAC以太網和音頻傳回。CEC和HEAC是HDMI可選協定。
HDMI傳輸
TMDS信号
TMDS 傳輸系統分為兩個部分:發送端和接收端。TMDS 鍊路包括 3 個傳輸資料的通道和1個傳輸時鐘信号的通道。
發送端對這些資料進行編碼和并/串轉換,再将資料分别配置設定到獨立的傳輸通道發送出去。
接收端接收來自發送端的串行信号,對其進行解碼和串/并轉換,然後發送到顯示器的控制端。
TMDS不僅僅是對video進行編碼,還包括audio和控制信号:
- 對于video周期采用的是video data encoding,将8bits資料轉換成10bits資料
- 對于control周期采用的是CTL encoding,将2bits資料轉換成10bits資料
- 對于DataIsland周期采用的是TERC4 encoding,将4bits資料轉換成10bits資料
HDMI連接配接架構
HDMI傳輸由三組TMDS通道和一組TMDS clock通道組成,TMDS clock的運作頻率是video信号的pixel頻率,在每個TMDS 時鐘通道周期,每個TMDS data通道都發送10bit資料。
channel0傳輸B資料和HSync、VSync
channel1傳輸G資料和CTL0、CTL1
channel2傳輸R資料和CTL2、CTL3
HDMI傳輸模式
HDMI的TMDS資料傳輸可以分為三個傳輸周期:
Control Period控制周期:主要用于控制接下來傳輸的是data island還是video data
Data Island Period資料島周期:各種類型的包資訊,包括音頻資料包、輔助資料包、圖像資訊包等
Video Data Period視訊資料周期:視訊像素資料,HDMI可以傳輸RGB和YUV兩種格式的像素資料
1、左邊是Control period:傳輸有Hsync、Vsync與Preamble。占用1、2兩個通道共4bit輸入;channel 0傳輸HSYNC, VSYNC, channel1[1:0]和channel2[1:0] 傳輸Preamble,用來判斷接下來輸入的是Video Data還是Data Island。
2、中間是Data Island period:傳輸有Hsync、Vsync,以及兩個Packet Header與Packet,占用三通道共12bit輸入,Channel0[3:2]用于傳輸Data Island Header(標頭),Channel1[3:0]與Channel2[3:0]用于傳輸Data Island Content(包内資料)
3、右邊是Video Data period :視訊信号經過編碼生成三路TMDS資料通道,共24位視訊流資料,輸入到HDMI Tx中。24位像素的視訊信号通過TMDS通道傳輸,将每通道8位信号轉換為10位,在每個10位像素周期傳送一個最小化的信号序列,視訊信号将被調制為TMDS信号傳送出去。
Control Period(preamble)
在資料島或者視訊資料傳輸周期之前,每一個TMDS通道包含2bit的控制資料,一共6位控制資料。
TMDS Channel | D0 | D1 |
---|---|---|
HSYNC | VSYNC | |
1 | CTL0 | CTL1 |
2 | CTL2 | CTL3 |
每個TMDS通道使用了D1:D0共2bit,采用2bit到10bit的編碼方式。在每個控制周期的最後階段,CTL0、CTL1、CTL2、CTL3組成的檔案頭說明下一個周期是視訊資料還是資料島。
CTL0 | CTL1 | CTL2 | CTL3 | 資料周期類型 |
---|---|---|---|---|
1 | video data | |||
1 | 1 | data island |
Video Data Period
視訊資料周期用來傳輸視訊線的像素,每個視訊資料周期以封包頭為前導,在封包頭之後,視訊資料周期以兩個字元開始,做為視訊前導保護邊界。對于資料周期,沒有末尾保護邊界。
Data Island Period
資料島用來攜帶音頻和輔助資料的封包。輔助資料包括Info frame和其他用于音視訊資訊描述的資料。
每個資料島以2個字元長度的前導保護邊界開始,并以2個字元寬度的末尾保護邊界結束。
TMDS Channel | BitN | 傳輸内容 |
---|---|---|
Channel0 | Bit0 | HSync |
Bit1 | VSync | |
Bit2 | packet header | |
Channel1 | Bit3:0 | packet |
Channel2 | Bit3:0 | packet |
資料島包的結構
包括一個封包頭、封包體(包含 4個子包)和相關的差錯糾正位。
每個子包含有56bit的資料和8bit的ECC校驗位組成。子包 0 加上它的奇偶校驗位構成 BCH 塊 0,這個塊映射到通道 1 和通道 2 的bit0。
同樣地,BCH 塊 1(子包 1 加上它的奇偶校驗位)映射到通道 1 和通道 2 的bit1上。
對于標頭即BCH block4映射到通道0的bit2,包括3個byte共24bit,以及8bit ECC。
封包頭
封包頭包含 24 個資料位,附加 8 位 BCH(32,24) ECC 校驗,其中24bit的資料分為8bit的封包類型和16bit的封包。
封包類型表格如下:
空包
source端可以在任何時候使用空包。空包的位元組是未定義的,其包内都是 0 值。HDMI sink端應該忽略空包的標頭 HB1 和 HB2,以及空包體中的全部位元組。
Audio 時鐘重生成包ACR
標頭中隻有包類型,沒有封包資料,Sink裝置應該忽略HB1和HB2。
包體中包含N和CTS(cycle time stamp),在生成音頻時鐘的時候會用到這兩個值。
audio采樣包
音頻采樣包攜帶 LPCM 和 IEC61937 壓縮音頻格式的資料。音頻包包括 1 到 4 個音頻采樣。這些音頻采樣可能是不同的音頻,也可能是同一音頻的不同部分(比如 6 聲道的 2 個聲道資料)。
幀資訊
CEA-861D 定義的所有的資訊幀都可以在 HDMI 的資訊幀中傳輸。
通用控制包
標頭隻有包的類型,沒有封包資料,Sink端應該忽略HB1、HB2。
包體中包括AVMUTE、CD、PP等資訊。
AVMUTE 被用以source端減少TMDS時鐘變化或者中斷帶來的負面影響,比如pop音和噪音。
CD(color depth)用于訓示色深:
如果sink端不支援Deep Color模式,CD域應該都設定為零。
video
像素編碼
HDMI1.4 支援三種pixel encoding:RGB4:4:4, YCbCr4:4:4, YCbCr4:2:2
HDMI2.0補充支援了YCbCr4:2:0
視訊格式
HDMI1.4支援CEA-861-D,HDMI2.0支援到CEA-861-F
color depth
color depth支援像素24bit、30bit、36bit、48bit,其中24bit是必須支援的。
大于24bit的屬于“Deep Color”,如果sink裝置支援Deep color,36bit是必須要支援的;如果sink不支援deep color,source裝置不應該發送deep color mode。
video控制信号
在Video Data周期HDMI不發送HSync和VSync信号,Data Island周期Channel0會發送編碼後的HSync和VSync,Control階段的Channel0也會發送HSync和VSync。
Pixel-repetition
原始像素速率低于25HMz時需要使用pixel repetition才能通過TMDS鍊路傳輸。通過字段PR0~PR3:Pixel Repetition Factor訓示像素重複的使用。