TMDS視頻數據編碼_第1頁
TMDS視頻數據編碼_第2頁
TMDS視頻數據編碼_第3頁
TMDS視頻數據編碼_第4頁
TMDS視頻數據編碼_第5頁
已閱讀5頁,還剩4頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、TMDS視頻數據編碼(TMDS Video Data Coding)是將像素的8位數據轉化成10個位的字符,但他不是主流的8b/10b編碼方式。其編碼需兩道過程:首先將8位轉換到9位,將位的轉換最小化。轉換最小化可以降低銅連接線環境的電磁干擾(Electromagnetic Interference)。其次,產生10位來造成直流平衡化理想的字符。TMDS視頻數據編碼算法過程如下(摘自DVI規范):編碼:各參數的解釋:解碼:我的Verilog實現代碼:編碼:module vdc_encode( rst, clk, de, d, c0, c1, q_out); input rst; input c

2、lk; input de, c0, c1; input7:0 d; output reg9:0 q_out; reg9:0 q_m; reg7:0 cnt; wire3:0 num0d, num1d, num0q_m, num1q_m; numbercnt numbercnt_d_inst(d7:0, num0d, num1d); numbercnt numbercnt_q_m_inst(q_m7:0, num0q_m, num1q_m); always (*) begin if(num1d 8h4) | (num1d = 8h4) & (d0 = 1b0) begin q_m0 = d0;

3、q_m1 = q_m0 d1; q_m2 = q_m1 d2; q_m3 = q_m2 d3; q_m4 = q_m3 d4; q_m5 = q_m4 d5; q_m6 = q_m5 d6; q_m7 = q_m6 d7; q_m8 = 1b0; end else begin q_m0 = d0; q_m1 = q_m0 d1; q_m2 = q_m1 d2; q_m3 = q_m2 d3; q_m4 = q_m3 d4; q_m5 = q_m4 d5; q_m6 = q_m5 d6; q_m7 = q_m6 d7; q_m8 = 1b1; end end always (posedge cl

4、k) begin if(rst) begin q_out = 10b1111111111; cnt = 8h00; end else if(de) begin if(cnt = 8h00) | (num1q_m = num0q_m) begin q_out9 = q_m8; q_out8 = q_m8; q_out7:0 = q_m8 ? q_m7:0 : q_m7:0; if(q_m8 = 1b0) cnt = cnt + (num0q_m - num1q_m); else cnt num0q_m) | (cnt7 = 1b1) & (num0q_m num1q_m) begin q_out

5、9 = 1b1; q_out8 = q_m8; q_out7:0 = q_m7:0; cnt = cnt + (q_m8 1) + (num0q_m - num1q_m); end else begin q_out9 = 1b0; q_out8 = q_m8; q_out7:0 = q_m7:0; cnt = cnt - (q_m8 1) + (num1q_m - num0q_m); end end else begin if(c1 = 1b0) & (c0 = 1b0) q_out = 10b1101010100; else if(c1 = 1b0) & (c0 = 1b1) q_out =

6、 10b0010101011; else if(c1 = 1b1) & (c0 = 1b0) q_out = 10b0101010100; else q_out = 10b1010101011; end endendmodule其中模塊numbercnt是用來統計一個8位輸入數據中0和1的個數,定義為module numbercnt(d,num0,num1);。我這里為了加快編碼速度采用的是查表法,代碼太長不放上來了。解碼:module vdc_decode( rst, clk, d, c0, c1, de, q); input rst; input clk; input9:0 d; outp

7、ut reg c0, c1, de; output reg7:0 q; wire9:0 nd; assign nd = d; always (posedge clk) begin if(d = 10b1101010100) begin c1 = 1b0; c0 = 1b0; de = 1b0; end else if(d = 10b0010101011) begin c1 = 1b0; c0 = 1b1; de = 1b0; end else if(d = 10b0101010100) begin c1 = 1b1; c0 = 1b0; de = 1b0; end else if(d = 10

8、b1010101011) begin c1 = 1b1; c0 = 1b1; de = 1b0; end else if(d8 = 1b1) begin if(d9 = 1b1) begin q0 = nd0; q1 = nd1 nd0; q2 = nd2 nd1; q3 = nd3 nd2; q4 = nd4 nd3; q5 = nd5 nd4; q6 = nd6 nd5; q7 = nd7 nd6; end else begin q0 = d0; q1 = d1 d0; q2 = d2 d1; q3 = d3 d2; q4 = d4 d3; q5 = d5 d4; q6 = d6 d5;

9、q7 = d7 d6; end de = 1b1; end else begin if(d9 = 1b1) begin q0 = nd0; q1 = nd1 nd0; q2 = nd2 nd1; q3 = nd3 nd2; q4 = nd4 nd3; q5 = nd5 nd4; q6 = nd6 nd5; q7 = nd7 nd6; end else begin q0 = d0; q1 = d1 d0; q2 = d2 d1; q3 = d3 d2; q4 = d4 d3; q5 = d5 d4; q6 = d6 d5; q7 = d7 d6; end de = 1b1; end end en

10、dmoduleTMDS編碼算法可分為兩個階段:1) 第一階段是將輸入的D【0:7 變換成最小變換碼q_m 0:8 ,其中第9位( q_m【8 ) 指示運算的方式,若是采用異或運算( XOR) 取1,采用同或運算( NXOR) 取0。這里用3個8位數來舉例:當D 0:7 =10111010時,q_m 0:8=100001100;當D 0:7 =10101000時,q_J Il 0:8】_1 1001 1 11 1;當D 0:7=- 00101 101時,q_m 0:8 =01 10001 10。從這3組數據可以看出,經編碼后的數據比原始數據具有更少的跳變( 這里的跳變是指0和1之間的跳變) ,采

11、用最小變換碼進行編碼的目的是為了提高數據在線纜中傳輸的穩定性。2) 第二階段是將9位的最小變換碼( q_m【0:8】) 變換成10位的直流平衡碼( q_out 0:9 ) 。如果編碼中的1和0的數量相等,則低8位( q_out 0:7 ) 由q_m 8 決定,若q m8 為1,低8位原樣輸出q_out 0:7 =qm【0:7】,否則取反,第10位q_out 9 =- q_m 8】;若q m 0:7】有過多1(O)且上次的編碼數據中有過多1( 0) ,則低8位取反,并且第10位取1;否則低8位原樣輸出,并且第l O位取0。不論是何種情況,輸出的第9位q out 8 =q m 8 。TMDS編碼算

12、法可分為兩個階段:1) 第一階段是將輸入的D【0:7 變換成最小變換碼q_m 0:8 ,其中第9位( q_m【8 ) 指示運算的方式,若是采用異或運算( XOR) 取1,采用同或運算( NXOR) 取0。這里用3個8位數來舉例:當D 0:7 =10111010時,q_m 0:8=100001100;當D 0:7 =10101000時,q_J Il 0:8】_1 1001 1 11 1;當D 0:7=- 00101 101時,q_m 0:8 =01 10001 10。從這3組數據可以看出,經編碼后的數據比原始數據具有更少的跳變( 這里的跳變是指0和1之間的跳變) ,采用最小變換碼進行編碼的目的是為了提高數據在線纜中傳輸的穩定性。2) 第二階段是將9位的最小變換碼( q_m【0:8】) 變換成10位的直流平衡碼( q_out 0:9 ) 。如果編碼中的1和0的數量相

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論