[HDMI]TMDS编码算法分析(2)


HDMI采用和DVI相同的传输原理–TMDS(Transition Minimized Differential signal),最小传输差分信号。TMDS支持高达225MHz的传输速率,一个传输链路能满足高达2048*1536分辨率电视信号。
TMDS的原理
 
TMDS传输系统分为分为两个部分:发送端和接收端。TMDS发送端收到HDMI接口传来的表示RGB信号的24位并行数据(TMDS对每个像素的RGB三原色分别按8bit编码,即R信号有8位,G信号有8位,B信号有8位),然后对这些数据进行编码和并/串转换,再将表示3个RGB信号的数据分别分配到独立的传输通道发送出去。接收端接收来自发送端的串行信号,对其进行解码和串/并转换,然后发送到显示器的控制端。与此同时也接收时钟信号,以实现同步。
每一个TMDS链路都包括3个传输RGB信号的数据通道和1个传输时钟信号的通道。每一个数据通道都通过编码算法,将8位的视、音频数据转换成最小化传输、直流平衡的10位数据。这使得数据的传输和恢复更加可靠。最小化传输差分信号是通过异或及异或非等逻辑算法将原始8位信号数据转换成10位,前8为数据由原始信号经运算后获得,第9位指示运算的方式,第10位用来对应直流平衡。
一般来说,HDMI传输的编码格式中要包含视频数据、控制数据和数据包(数据包中包含音频数据和附加信息数据,例如纠错码等)。TMDS每个通道在传输时要包含一个2bit的控制数据、8bit的视频数据或者4bit的数据包即可。在HDMI信息传输过程中,可以分为三个阶段:视频数据传输周期、控制数据传输周期和数据包传输周期,分别对应上述的三种数据类型。
TMDS中采用的技术
1、最小传输化
8位数据经过编码和直流平衡得到10位最小化数据,这仿佛增加了冗余位,对传输链路的带宽要求更高,但事实上,通过这种算法得到的10位数据在更长的同轴电缆中传输的可靠性增强了。
《[HDMI]TMDS编码算法分析(2)》

《[HDMI]TMDS编码算法分析(2)》
第一步:将8位并行RED数据发送到TMDS发送端。
第二步:并/串转换.
第三步:进行最小化传输处理,加上第9位,即编码过程。第9位数据称为编码位。
2、直流平衡
直流平衡(DC-balanced)就是指在编码过程中保证信道中直流偏移为零。方法是在原来的9位数据的后面加上第10位数据,这样,传输的数据趋于直流平衡,使信号对传输线的电磁干扰减少,提高信号传输的可靠性。
3、差分信号
TMDS差分传动技术是一种利用2个引脚间电压差来传送信号的技术。传输数据的数值(“0”或者“1”)由两脚间电压正负极性和大小决定。即,采用2根线来传输信号,一根线上传输原来的信号,另一根线上传输与原来信号相反的信号。这样接收端就可以通过让一根线上的信号减去另一根线上的信号的方式来屏蔽电磁干扰,从而得到正确的信号。如图所示:
《[HDMI]TMDS编码算法分析(2)》

《[HDMI]TMDS编码算法分析(2)》
HDMI的带宽和TMDS的关系
HDMI电路中的时钟频率在最初制定时范围在25MHz-165MHz之间,也就是说一个TMDS通道每秒最多能传输165MHz×10bit=1.65Gbit的数据,3个TMDS通道一秒就可以传输1.65×3=4.95Gbit的数据,再加上控制数据,用标准方法表示就是4.96Gbps的带宽。而如果用像素点来表示,那就是一秒可以传输显示1.65G个像素点(一个完整的像素点信息由R/G/B三原色信息构成)所需要的数据量。而HDTV最高标准:像素位1920*1080,逐行扫描,帧频为30,假设每帧扫描两次,在1秒内的图像数据量为1920×1080×30×2=1.25G像素点。另外还有音频数据和其他数据。
TMDS结构与元素
1、连接结构
《[HDMI]TMDS编码算法分析(2)》

《[HDMI]TMDS编码算法分析(2)》
数据流中包含了像素数据和控制数据,发送在任意给定的输入时钟周期中,那么发送的编码是像素数据还是控制数据,取决于数据使能信号DE,DE == 1 时发送像素数据,DE == 0发送的是控制数据,发送控制数据时忽略像素数据,反之成立。在接收端,恢复的像素数据仅在DE == 1时才传输,控制数据在DE == 0时传输。
发送端有相同的3个编码器,每个编码器的输入2bit控制信号和8bit像素数据,编码器会根据DE的状态,按照2bit控制信号和8bit像素数据产生10bit的TMDS数据。每个编码器输出是串行TMDS数据流。
2、时钟
TMDS时钟通道的时钟频率就是字符速率,接收器利用这个时钟,产生用于串行流接收的采样时钟,由于要求能容忍信号畸形,所以期望每个数据通道的采样时钟的相位能够单独调整。
3、同步
TMDS接收端主要要考虑的问题就是同步的问题,同步主要关注的是怎么去检测到串行数据流中的字符边界。一旦所有的数据通道字符边界被建立,我们就说,此时接收器与数据流同步并可以从数据通道中接收TMDS字符加以译码。TMDS数据流会提供周期性的提示同于同步及解码。
用来作为像素数据的TMDS字符包含
5个或更少
的跳变,而用来作为控制数据的TMDS字符包含
7个或更多
的跳变。在空期间传送的多跳变内容形成解码端的字符边界的基础,这些字符在串行数据流中个体不是独一无二,但它们足够相似,使得,在发送空间隙期间,解码器它们可以唯一地检测出它们连续的存在。
4、编码
TMDS数据通道传送的是一个连续的10bit TMDS字符流,在空期间,传送4个有显著特征的字符,它们直接对应编码器的2个控制信号的4个可能的状态。在数据有效期间,10bit的字符包含8bit的像素数据,编码的字符提供近似的DC平衡,并最少化数据流的跳变次数,对有效像素数据的编码处理可以认为有两个阶段:
第一个阶段是依据输入的8bit像素数据产生跳变最少的9bit代码字;
第二阶段是产生一个10bit的代码字,
最终的TMDS字符,将维持发送字符总体的DC平衡。
编码器在第一个阶段产生的9bit代码字由“8bit” + “1bit”组成,
“8bit”反映输入的8bit数据位的跳变,“1bit”表示用来描述跳变的两个方法中哪一个被使用
,无论哪种方法,输出的最低位都会与输入的最低位相匹配。用一个建立的初值,输出字的余下7bit的产生是按照顺序将输入的每一位与前一导出的位进行XOR或NOR(XNOR)。使用XOR还是XNOR要看哪个方法使得
编码结果包含最少的跳变
,代码字的
第9位
用来表示导出输出代码是
使用XOR还是XNOR
,这9bit代码字的解码方法很简单,就是相邻位的XOR或XNOR操作。从解码输入到解码器输出最低位不改变。
在有效数据期间,编码器执行使传输的数据流维持近似的DC平衡处理,这是通过选择性地反转第一阶段产生的9bit代码中的8bit数据位来实现的,
第10bit
被加到代码字上,表示
是否进行了反转处理

编码器是基于跟踪发送流中1和0个数的不一致以及当前代码字1和0的数目来确定什么时候反转下一个TMDS字符。
如果太多的1被发送,且输入包含的1多于0,则代码字反转
,这个发送端的动态编码决定在接收端可以很简单地解码出来,方法是以TMDS字符的第10bit决定是否对输入代码进行反转。
5、双连接结构
MDS连接结构的数据通道数目的选择主要基于下面两点考虑:
一是视频数据要求的带宽,
二是对每个像素的R、G、B分量,每个分量对应于一个通道,从而使得逻辑简单。
在这里双TMDS链路等同于使用6个数据通道共享一个时钟通道,这样使得接口带宽加倍。对于这个配置,第一个数据链路传输奇数像素点,而第二个数据链路传输偶数像素点。每一行的第一个像素是奇数像素,即为像素1。
《[HDMI]TMDS编码算法分析(2)》

6、编码
单链路TMDS发送器由三个相同的编码器组成,如下图,2个控制信号和8bit像素数据映射到每个编码器,双链路发送器增加了三个数据通道。
如上图,双链路配置在第一个链路上发送每行的奇像素,在第二个链路上发送每行的偶像素,每一行的第一个像素是奇数像素,即为像素1。除了行同步HS和场同步VS外,其它控制信号的作用并没有定义,在发送器的输入端,控制信号CTL1、CLT2、CTL3必须保持逻辑低电平,推荐CTL0也保持逻辑低电平,由于历史原因,某些发送器芯片可以通过CTL0传递一个控制信号,如果这么做,仅需要满足一个条件:这个信号发生在单像素输入时钟的奇边缘或偶边缘。当链路有效的时候,在奇偶之间一定不要来回切换。
《[HDMI]TMDS编码算法分析(2)》

7、编码算法
TMDS
编码
算法
,如图所示,在空间隙,编码器产生
4个
独一无二的字符,以及在有效的数据期间,产生460个独一无二的10bit字符中的一个,在链路上,除此以外的其它10bit字符是保留的,编码器不会产生这些字符。

D,C0,C1,DE编码器输入数据集。D表示8bit 像素数据,C0和C1表示通道的控制数据,DE表示数据使能
CNT寄存器,用来跟踪数据流的不一致,正值表示发送的1的个数超过的数目,负数表示发送的0的个数超过的数目。表达式cnt{t-1}表示相对于输入数据前一个集的前一个不一致值。表达式cnt{t}表示相对于输入数据当前集的新的不一致设置。
q_out编码器产生10bit数
N1{x}这个操作符返回参数x中的1的个数
N0{x}这个操作符返回参数x中的0的个数

《[HDMI]TMDS编码算法分析(2)》

串行化
由编码器形成的TMDS字符流转换为串行数据,用于在TMDS数据通道上发送,低位在前先发送。
《[HDMI]TMDS编码算法分析(2)》

8、解码
时钟恢复
TMDS接收器必须有能力相位锁定与发送时钟,发送时钟的时钟频率范围是25MHz到接收器的最大允许频率,对输入时钟的相位锁定必须发生在从输入时钟满足规定起100ms之前。
数据同步
接收器要求在任何大于128字符长度的空间隙期间,建立与数据流的同步。
在同步检测之前,和在丢失同步期间,接收器不应该更新接收到的数据流信号。
解码算法
《[HDMI]TMDS编码算法分析(2)》
错误处理
TMDS链路不要求错误处理能力。
9、链路定时要求
《[HDMI]TMDS编码算法分析(2)》

符号描述单位
tB最小空间隙,为了在接收端确保字符边界的恢复,要求有这个最短的空间隙,空间隙至少每50mS(20Hz)出现一次。128Tpixel
tE最大编码/并转串电路管线延迟64Tpixel
tR最大恢复/串转并电路管线延迟,恢复定时包括通道间的抖动,从在数据通道间最早的DE跳变开始测量,64Tpixel
点赞