https://en.wikipedia.org/wiki/Transition-minimized_differential_signaling
TMDS,Transition Minimized Differential Signaling,是一种编码方法,它脱胎于8B/10B编码,但使用不同的编码映射集。
TMDS把8-bit数据编码成10-bit数据,过程分2个阶段。
1,第一比特不变,接下来的7比特或者是与上一比特异或,或者是异或反,取决于哪种结果导致翻转数较少;第9比特指示是哪种操作;
2,第10比特决定是否要把阶段1中的前8比特反相,决策依据取决于操作是否有利于整体数据的0-1平衡。
编码后的10-bit数据,最多有1024种组合,其中:
(1) 460种用于表示8-bit video data,8-bit数据的256种组合中,绝大多数有2种编码结果;
(2) 4种用于表示每个TMDS数据通道上的2-bit控制信号。编码后的10-bit控制信号可提供7次翻转,因此也可以于解码时用作同步字符。
这里需要注意,wiki上的编码结果来自于DVI的标准,与HDMI-1.4b spec稍有不同:
wiki:
HDMI-1.4b :
Ch0上的控制信号是HSync/VSync,Ch1 CTL0/CTL1,Ch2 CTL2/CTL3。在HDMI中,CTL0~CTL3被用于指示接下来发的是什么类型的数据,因此它们也被称为 preamble。