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

提交评论