TMDS的编码和解码,从8bit编码为10bit,并解码。
在编码为10bit的过程中,使用的是最小化差分算法和直流平衡算法。当然,TMDS是比LVDS强多了,一分钱一分货。
TMDS是收费的,貌似有版权费用,亲们小心使用~不过TMDS真的是很强大~
编码示意图:
请参考代码TMDS_Encode;
http://blog.csdn.net/shanghaiqianlun/article/details/6954500
解码示意图:
请参考代码TMDS_Decode;
http://blog.csdn.net/shanghaiqianlun/article/details/6954500
程序运行结果,编码测试图:
(从0x55和0xaa可以看出来,编码从电平的7次跳变,编码为电平的3次跳变,抗干扰能力增强)
data: [0x0] dis(0) 0b00000000 Encode: [0x100] 0b0100000000 Decode: 0x0
data: [0x1] dis(-8) 0b00000001 Encode: [0x1ff] 0b0111111111 Decode: 0x1
data: [0x2] dis(0) 0b00000010 Encode: [0x1fe] 0b0111111110 Decode: 0x2
data: [0x3] dis(-6) 0b00000011 Encode: [0x3fe] 0b1111111110 Decode: 0x3
data: [0x4] dis(2) 0b00000100 Encode: [0x303] 0b1100000011 Decode: 0x4
data: [0x5] dis(0) 0b00000101 Encode: [0x103] 0b0100000011 Decode: 0x5
data: [0x6] dis(-4) 0b00000110 Encode: [0x3fd] 0b1111111101 Decode: 0x6
data: [0x7] dis(4) 0b00000111 Encode: [0x302] 0b1100000010 Decode: 0x7
data: [0x8] dis(0) 0b00001000 Encode: [0x1f8] 0b0111111000 Decode: 0x8
data: [0x9] dis(-6) 0b00001001 Encode: [0x3f8] 0b1111111000 Decode: 0x9
data: [0xa] dis(-2) 0b00001010 Encode: [0x3f9] 0b1111111001 Decode: 0xa
data: [0xb] dis(4) 0b00001011 Encode: [0x306] 0b1100000110 Decode: 0xb
data: [0xc] dis(2) 0b00001100 Encode: [0x104] 0b0100000100 Decode: 0xc
data: [0xd] dis(-4) 0b00001101 Encode: [0x1fb] 0b0111111011 Decode: 0xd
data: [0xe] dis(2) 0b00001110 Encode: [0x305] 0b1100000101 Decode: 0xe
data: [0xf] dis(0) 0b00001111 Encode: [0x105] 0b0100000101 Decode: 0xf
data: [0x10] dis(0) 0b00010000 Encode: [0x1f0] 0b0111110000 Decode: 0x10
data: [0x11] dis(-6) 0b00010001 Encode: [0x10f] 0b0100001111 Decode: 0x11
data: [0x12] dis(-10) 0b00010010 Encode: [0x3f1] 0b1111110001 Decode: 0x12
data: [0x13] dis(-6) 0b00010011 Encode: [0x1f1] 0b0111110001 Decode: 0x13
data: [0x14] dis(-4) 0b00010100 Encode: [0x3f3] 0b1111110011 Decode: 0x14
data: [0x15] dis(2) 0b00010101 Encode: [0x30c] 0b1100001100 Decode: 0x15
data: [0x16] dis(0) 0b00010110 Encode: [0x1f2] 0b0111110010 Decode: 0x16
data: [0x17] dis(-2) 0b00010111 Encode: [0x3f2] 0b1111110010 Decode: 0x17
data: [0x18] dis(2) 0b00011000 Encode: [0x108] 0b0100001000 Decode: 0x18
data: [0x19] dis(-4) 0b00011001 Encode: [0x1f7] 0b0111110111 Decode: 0x19
data: [0x1a] dis(2) 0b00011010 Encode: [0x309] 0b1100001001 Decode: 0x1a
data: [0x1b] dis(0) 0b00011011 Encode: [0x109] 0b0100001001 Decode: 0x1b
data: [0x1c] dis(0) 0b00011100 Encode: [0x1f4] 0b0111110100 Decode: 0x1c
data: [0x1d] dis(-2) 0b00011101 Encode: [0x3f4] 0b1111110100 Decode: 0x1d
data: [0x1e] dis(2) 0b00011110 Encode: [0xa0] 0b0010100000 Decode: 0x1e
data: [0x1f] dis(-4) 0b00011111 Encode: [0x5f] 0b0001011111 Decode: 0x1f
data: [0x20] dis(-2) 0b00100000 Encode: [0x31f] 0b1100011111 Decode: 0x20
data: [0x21] dis(2) 0b00100001 Encode: [0x3e0] 0b1111100000 Decode: 0x21
data: [0x22] dis(2) 0b00100010 Encode: [0x11e] 0b0100011110 Decode: 0x22
data: [0x23] dis(-2) 0b00100011 Encode: [0x1e1] 0b0111100001 Decode: 0x23
data: [0x24] dis(-4) 0b00100100 Encode: [0x3e3] 0b1111100011 Decode: 0x24
data: [0x25] dis(0) 0b00100101 Encode: [0x1e3] 0b0111100011 Decode: 0x25
data: [0x26] dis(-2) 0b00100110 Encode: [0x1e2] 0b0111100010 Decode: 0x26
data: [0x27] dis(-4) 0b00100111 Encode: [0x11d] 0b0100011101 Decode: 0x27
data: [0x28] dis(-4) 0b00101000 Encode: [0x3e7] 0b1111100111 Decode: 0x28
data: [0x29] dis(2) 0b00101001 Encode: [0x318] 0b1100011000 Decode: 0x29
data: [0x2a] dis(0) 0b00101010 Encode: [0x1e6] 0b0111100110 Decode: 0x2a
data: [0x2b] dis(-2) 0b00101011 Encode: [0x3e6] 0b1111100110 Decode: 0x2b
data: [0x2c] dis(2) 0b00101100 Encode: [0x1e4] 0b0111100100 Decode: 0x2c
data: [0x2d] dis(0) 0b00101101 Encode: [0x11b] 0b0100011011 Decode: 0x2d
data: [0x2e] dis(0) 0b00101110 Encode: [0x24f] 0b1001001111 Decode: 0x2e
data: [0x2f] dis(0) 0b00101111 Encode: [0x2b0] 0b1010110000 Decode: 0x2f
data: [0x30] dis(-2) 0b00110000 Encode: [0x3ef] 0b1111101111 Decode: 0x30
data: [0x31] dis(6) 0b00110001 Encode: [0x310] 0b1100010000 Decode: 0x31
data: [0x32] dis(2) 0b00110010 Encode: [0x311] 0b1100010001 Decode: 0x32
data: [0x33] dis(0) 0b00110011 Encode: [0x111] 0b0100010001 Decode: 0x33
data: [0x34] dis(0) 0b00110100 Encode: [0x1ec] 0b0111101100 Decode: 0x34
data: [0x35] dis(-2) 0b00110101 Encode: [0x3ec] 0b1111101100 Decode: 0x35
data: [0x36] dis(2) 0b00110110 Encode: [0x247] 0b1001000111 Decode: 0x36
data: [0x37] dis(2) 0b00110111 Encode: [0x2b8] 0b1010111000 Decode: 0x37
data: [0x38] dis(0) 0b00111000 Encode: [0x1e8] 0b0111101000 Decode: 0x38
data: [0x39] dis(-2) 0b00111001 Encode: [0x117] 0b0100010111 Decode: 0x39
data: [0x3a] dis(-2) 0b00111010 Encode: [0xbc] 0b0010111100 Decode: 0x3a
data: [0x3b] dis(-2) 0b00111011 Encode: [0x2bc] 0b1010111100 Decode: 0x3b
data: [0x3c] dis(0) 0b00111100 Encode: [0x241] 0b1001000001 Decode: 0x3c
data: [0x3d] dis(0) 0b00111101 Encode: [0x2be] 0b1010111110 Decode: 0x3d
data: [0x3e] dis(-2) 0b00111110 Encode: [0x2bf] 0b1010111111 Decode: 0x3e
data: [0x3f] dis(4) 0b00111111 Encode: [0x240] 0b1001000000 Decode: 0x3f
data: [0x40] dis(-2) 0b01000000 Encode: [0x33f] 0b1100111111 Decode: 0x40
data: [0x41] dis(4) 0b01000001 Encode: [0x3c0] 0b1111000000 Decode: 0x41
data