HDMI前端設計與實(shí)現
摘要:隨著(zhù)高清影音時(shí)代的到來(lái),新的高清多媒體接口技術(shù)也漸趨成熟。本文研究了高清多媒體接口的編碼和解碼功能,并采用硬件描述語(yǔ)言實(shí)現高清多媒體接口規范定義的編解碼功能。首先對高清多媒體接口的整體信道傳輸過(guò)程進(jìn)行了分析和分解,并闡述了三個(gè)數據周期傳輸時(shí)間及其解碼方式的不同。在此基礎上對編解碼功能進(jìn)行了模塊劃分,采用分層及模塊復用至頂向下的設計方法。最后通過(guò)NC—Verilog仿真工具仿真驗證代碼功能的正確性。
本文引用地址:http://dyxdggzs.com/article/201610/307870.htm關(guān)鍵詞:高清多媒體接口;編碼;解碼;至頂向下;仿真
0 引言
數字影音技術(shù)發(fā)展日新月異,多媒體視聽(tīng)領(lǐng)域正在進(jìn)行著(zhù)一場(chǎng)革命,隨著(zhù)生活水平的提高,普通影音己不能滿(mǎn)足人們的需求,追求高清晰畫(huà)質(zhì),立體感音質(zhì),已經(jīng)成為新一代人追求時(shí)尚的一種詮釋。
在過(guò)去相當長(cháng)的一段時(shí)間,CRT(Cathode Ray Tube)為代表的模擬顯示設備主導了整個(gè)顯示設備市場(chǎng)。隨著(zhù)高清視頻格式(720p/1080i/1080p)的確定,液晶電視、等離子電視等大尺寸數字化平板顯示設備的發(fā)明和普及,傳統模擬接口易受電磁干擾、傳輸速率低、帶寬小、傳輸損耗大等缺點(diǎn)已經(jīng)不能滿(mǎn)足海量數據流傳輸等需求;同時(shí),影視等行業(yè)對版權意識越來(lái)越重視,數據傳輸的加密變得愈發(fā)重要,傳輸更快更安全的全數字化接口代替模擬接口成為必然趨勢。于是第一個(gè)行業(yè)支持的、無(wú)壓縮的、全數字的音視頻接口 —HDMI誕生了。
HDMI的全稱(chēng)是“High Definition Multimedia Interface高清多媒體接口”。2002年4月,來(lái)自電子電器行業(yè)的7家公司——日立、松下、飛利浦、Silicon Image、索尼、湯姆遜、東芝共同組建了HDMI高清多媒體接口組織HDMI founders(HDMI論壇),HDMI founders在2002年12月9號正式發(fā)布HDMI1.0版標準,標志著(zhù)HDMI技術(shù)正式進(jìn)入歷史舞臺。隨著(zhù)HDMI標準本身的發(fā)展,1.3a版本和2.0等后續版本也陸續推出,不僅性能更加強大,兼容性也更加出色。
在HDMI標準制定之初,繼承了DVI標準中相對成熟且較容易實(shí)現的部分技術(shù)標準。整個(gè)傳輸原理依然是基于Silicon Image公司的TMDS(Transition Minimized Differential Sienaling)編碼技術(shù)。
HDMI具有體積小、抗干擾強、兼容性好、智能連接、單線(xiàn)纜同時(shí)傳輸無(wú)壓縮音視頻等優(yōu)勢。因此,它已被廣泛地應用到DVD、機頂盒等設備中,HDMI正在成為高清時(shí)代普及率最高、用途最廣泛的數字接口。
1 HDMI概述
HDMI系統架構由信源端和接收端組成。如圖1所示,HDMI提供四個(gè)獨立的TMDS(Transition Minimized Differential Signaling)通信通道:三個(gè)數據信道和一個(gè)時(shí)鐘信道,這些信道主要用于傳遞視頻、音頻和輔助數據。另外,HDMI提供一個(gè)VESADDC(Video Electronics Standards Association)(Display Data Channel)信道。DDC是用于配置和在一個(gè)單獨的信源端和一個(gè)單獨的接收端交換狀態(tài),讀取接收端的E-EDID數據結構。CEC(Consumer Electronics Control)是一個(gè)可選信道,可選擇在用戶(hù)的各種不同的音視頻產(chǎn)品中,為高端用戶(hù)提供高水平的控制功能??蛇x擇的HDMI以太網(wǎng)和音頻返回(HEAC),在連接的設備中提供以太網(wǎng)兼容的網(wǎng)絡(luò )數據和一個(gè)和TMDS相對方向的音頻返回信道。

音頻,視頻和輔助數據都是在三個(gè)TMDS數據信道中相互交錯傳輸。TMDS時(shí)鐘,即視頻像素速率傳輸時(shí)鐘,在TMDS時(shí)鐘信道中傳輸,它被接收端三個(gè) TMDS信道作為一個(gè)頻率參考,用于對三個(gè)TMDS數據信道的數據復原。在信源端,TMDS編碼將每個(gè)TMDS數據的8bits數據轉換成10bits的 DC-balanced數據,10bits的DC-balanced數據將以每個(gè)TMDS時(shí)鐘周期串行地在差分線(xiàn)對上進(jìn)行傳輸。
視頻數據像素時(shí)鐘的TMDS時(shí)鐘上傳遞默認值為24位色深,視頻數據還兼容30,36,48位像素的數據。更高的色深使用需要相應的更高的TMDS時(shí)鐘率。視頻格式TMDS時(shí)鐘率低于25M可以運用像素復用發(fā)送的策略來(lái)進(jìn)行傳輸。視頻像素支持多種編碼格式,可以是 RGB,YCbCr4:4:4,YCbCr4:2:2格式編碼。
TMDS信道傳輸音頻和輔助數據中,HDMI的信源端需要采取用包的格式來(lái)保證傳輸。為了保證音頻和控制信號的高保真度,音頻和輔助數據數據需要BCH糾錯碼的編碼方式,且采取了一種10bits減少錯誤編碼的特殊編碼方式?;镜囊纛l傳輸功能幾乎包括所有的普通的立體聲音頻,在采樣頻率分別為 32KHz,44.1KHz和48KHz情況下的IEC60958L—PCM音頻流。HDMI還可以傳輸采樣頻率高達192KHz,采用3到8個(gè)音頻通道的音頻流。HDMI同樣可以傳輸采樣頻率高達24.576MHz的IEC61937壓縮音頻。HDMI同樣可以傳輸2—8通道的OneBit音頻或者是一種被稱(chēng)為DST的壓縮的One Bit音頻。
2 HDMI編碼設計
本設計是基于HDMI 1.4版本的編解碼設計。主要分為兩個(gè)大模塊設計,即HDMI TX編碼模塊和HDMI RX解碼模塊。TX編碼模塊主要實(shí)現把視頻、音頻數據通過(guò)編碼傳輸給Rx解碼模塊。RX解碼模塊主要把視頻、音頻數據解碼后傳輸給外置設備。
如圖2所示,HDMI有三種處理數據的操作模式:視頻數據周期,數據島周期,控制周期。在視頻數據周期,傳輸每一個(gè)有效的視頻像素行。在數據島周期中,音頻和輔助數據使用一系列數據包來(lái)傳輸。在音頻和視頻周期的兩個(gè)非控制周期之間要插入控制周期。

視頻數據周期采用最小化差分傳輸編碼(TMDS)的編碼方式,對每個(gè)8bits傳輸信道進(jìn)行編碼,三個(gè)傳輸信道共24bits數據。
數據島周期采用TMDS糾錯編碼(TERC4)的編碼方式,每個(gè)4bits傳輸信道進(jìn)行編碼,三個(gè)傳輸信道共12bits數據。
控制周期采用最大化傳輸編碼的編碼方式,對每個(gè)2bits傳輸信道進(jìn)行編碼,三個(gè)傳輸信道共6bits。這6bits數據包括HSYNC、VSYNC、CTL0、CTL1、CTL2、CTL3。在每個(gè)控制周期的末尾有一個(gè)報文頭,使用CTLx bits數據組成的preamble,指示下一個(gè)數據周期是視頻周期還是數據島周期。
每一個(gè)數據島周期起始于前導保護帶(Leading Guard Band),結束于后置保護帶(Training Guard Band);而視頻數據周期只始于前導保護帶,沒(méi)有后置保護帶。保護邊界兩個(gè)特殊字符組成,設計目標是提供從控制周期到數據周期或從數據周期向控制周期轉化的魯棒決策。
下表2.3展示在數據傳輸中每種操作模式的編碼類(lèi)型。

2. 1 編碼器TX模塊
TX(信源端)發(fā)射模塊,包括時(shí)鐘模塊(由Timing和Timing_dly兩個(gè)模塊組成)、以及編碼模塊。時(shí)鐘模塊主要為視頻音頻交錯相傳產(chǎn)生時(shí)鐘,編碼模塊實(shí)現對視頻音頻數據編碼傳輸。

2. 1.1 時(shí)鐘模塊
(1)Timing模塊
Timing模塊是HDMI編碼器的基礎,它產(chǎn)生720*480p、1280*720p、1920*1080i等視頻格式的行信號hsync_pr、場(chǎng)信號vsync_pr、行無(wú)效信號hblnk_pr和場(chǎng)無(wú)效信號vblnk_pr。如圖2所示,hsync_pr、vsync_pr分別為HSYNC、 VSYNC;hblnk_pr為每行前138 pixels置高位,vblnk_pr為每幀前42行和后3行共45行置高位(注:具體定義以CEA-861-D中規定的720*480p的標準視頻格式為準)。
(2)Timing_dly模塊
Timing_dly模塊是HDMI高速數據傳輸的核心,按照TMDS通道的視頻音頻交錯傳輸數據要求,分配視頻數據、音頻數據和輔助數據,以及控制數據的傳輸時(shí)間周期,并為編碼模塊提供控制信號。

主要端口定義:
hsync_pr、vsync_pr;行信號和場(chǎng)信號。
aux_rdy:當輸出是“1”,則外部數據緩存音頻數據準備完畢,可以傳輸音頻數據;否則,音頻數據未完成打包,終止傳輸音頻數據。
aux_admit:當輸出是“1”,則傳輸音頻數據;否則終止接受音頻包數據。
ade、vde:分別表示傳輸音、視頻數據標志位,為高時(shí)表示進(jìn)入數據島或視頻數據周期。
2.1.2 encoder模塊
timing模塊采用TMDS編碼、TERC4編碼和最大化傳輸編碼三種編碼形式,對視頻數據、音頻數據包和輔助數據、控制數據編碼傳輸。
視頻像素數據的編碼可分為兩個(gè)階段:第一個(gè)階段是輸入音頻的8bits像素數據轉換成9bits數據;第二階段是把9bit數據轉換成TMDS傳輸10bits。
實(shí)現的TMDS編碼算法如圖5所示。

D:輸入8 bits視頻數據。
cnt:計算編碼數據中0和1個(gè)數的差值。若cnt為正值表示發(fā)送1的數量超過(guò)0的數量,負值則表示發(fā)送0的數量多于1的數量。cnt{t-1}表示相對于輸入數據的前一個(gè)周期的cnt的值,cnt{t}表示本周期的值。
q_m:第一階段的9 bits輸出數據。
q_out:第二階段的10 bits輸出數據,即編碼器輸出值。
N1{x}:這個(gè)操作符返回參數x中的1的個(gè)數。
N0{x}:這個(gè)操作符返回參數x中的0的個(gè)數部分核心代碼如下:


2.2 解碼器RX模塊
解碼器模塊較容易實(shí)現,只需依據preamble控制位判斷接下來(lái)傳輸的數據類(lèi)型,即音頻或視頻數據,然后解碼即可。解碼同樣分兩個(gè)階段,如圖5所示,第一階段由10bits數據轉為9bits數據,第二階段由9bits數據轉為8bits數據。
圖6 TMDS解碼原理

3 HDMI功能仿真驗證
在HDMI功能驗證采用分層驗證法,根據Spec1.4的編碼解碼的要求,制定驗證計劃,設計各種激勵,實(shí)現近百分之百的覆蓋率。本文運用的工具是Cadence NC—Verilog,文中介紹部分驗證計劃,以及驗證的結果。
3.1 時(shí)鐘模塊的功能仿真驗證
按Spec1.4要求,給定仿真必需激勵信號,仿真數據島周期及視頻數據周期的每個(gè)像素時(shí)鐘的功能分布是否符合Spec1.4的要求。比如驗證ctl[3:0]的正確性,如圖4所示,在3個(gè)blanking、8個(gè)preamble、2個(gè)leading guard band的時(shí)鐘周期之后,進(jìn)入下一個(gè)狀態(tài),ctl[3:0]的值與狀態(tài)所表示的值對比便可驗證。
在驗證數據島周期:在ade_pr置高位后,經(jīng)過(guò)4個(gè)blanking+8個(gè)preamble+2個(gè)leading guard band。packet傳輸結束后置低位。ade置高位進(jìn)入data island period,再經(jīng)過(guò)2個(gè)leading guard band+N個(gè)32位的packets+trialing guard band。trialing guard band后置低位。在8個(gè)preamble時(shí),ctl[3:0]=4’b0101。
在驗證視頻數據周期時(shí):vde_pr置高位后,經(jīng)過(guò)4個(gè)blanking+8個(gè)preamble+2個(gè)leading guard band。video data傳輸結束后置低位。vde置高位進(jìn)入video data period,再經(jīng)過(guò)2個(gè)leading guard band+active video pixels。video data傳輸完后置低位。在8個(gè)preamble時(shí),ctl[3:0]=4’b0001。
圖7數據島周期和視頻數據周期仿真圖

3.2 HDMI模塊仿真
把時(shí)鐘模塊和encoder模塊整合成TX模塊,其中encoder模塊分別實(shí)例為Encdr、Encdg、Encdb三個(gè)信道的編碼模塊。將TX和RX模塊,即hdmi_encoder和hdmi_decoder,組合在一起仿真。
如圖8所示,輸入的音頻、視頻數據用random函數隨機產(chǎn)生,且在固定的時(shí)間周期輸入,將輸出與輸入對比,得出HDMI整個(gè)編解碼模塊是否正確。

如圖9所示,第一組為7bits視頻數據輸入,第二組為編碼后的10bits視頻數據輸出,第三組為解碼后的7bits視頻數據輸出。視頻數據編碼需要三個(gè)時(shí)鐘,解碼需要兩個(gè)時(shí)鐘,所以每間隔五個(gè)時(shí)鐘輸入7bits數據等于輸出的7bits數據,即從編碼到解碼一共需要五個(gè)時(shí)鐘。

4 結論
進(jìn)入21世紀,在帶寬、音頻、傳輸安全等方面具有優(yōu)越性的HDMI的出現,滿(mǎn)足了數字高清時(shí)代海量數據流傳輸的需求。本設計運用 verilog HDL實(shí)現HDMI編碼及解碼功能,通過(guò)寫(xiě)仿真測試激勵及運用NC—Verilog工具仿真代碼邏輯的正確性。從子模塊、模塊、系統仿真驗證自底向上的方法來(lái)進(jìn)行,最終根據仿真驗證結果確認實(shí)現編解碼功能。非常感謝芯珠微電子林泉工程師及梁文鋒、黎偉蓮、洪傳練、楊家昌等同事的幫助,本設計的不足之處將在后續工作中改進(jìn)。
評論