1、简介
HDMI 是新一代的多媒体接口标准,英文全称是 High-Definition Multimedia Interface,即高清多媒体接口。它能够同时传输视频和音频,简化了设备的接口和连线;同时提供了更高的数据传输带宽,可以传输无压缩的数字音频及高分辨率视频信号。HDMI 1.0版本于2002 年发布,最高数据传输速度为 5Gbps;而2017 年发布的 HDMI 2.1 标准的理论带宽可达 48Gbps。
在 HDMI 接口出现之前,被广泛应用的是 VGA 接口。VGA 的全称是 Video Graphics Array,即视频图形阵列,是一个使用模拟信号进行视频传输的标准。VGA 接口采用 15 针插针式结构,里面传输模拟信号颜色分量、同步等信号,是很多老显卡、笔记本和投影仪所使用的接口。由于VGA 接口传输的是模拟信号,其信号容易受到干扰,因此 VGA 在高分辨率下字体容易虚,信号线长的话,图像有拖尾现象。VGA 接口由下图所示:
图 1 VGA 接口
VGA 接口除信号容易受到干扰外,其体积也较大,因此 VGA 接口已逐渐退出舞台,一些显示器也不再带有 VGA 接口,在数字设备高度发展的今天,取而代之的是 HDMI 接口和 D(Display Port)接口等。
HDMI 向下兼容 DVI,但是 DVI(数字视频接口)只能用来传输视频,而不能同时传输音频,这是两者最主要的差别。此外,DVI 接口的尺寸明显大于 HDMI 接口,如下图所示:
图2 DVI 接口(左)和 HDMI 接口(右)实物图
图2 右侧是生活中最常见的 A 型 HDMI 接口,其引脚定义如下图所示:
图3 HDMI 接口引脚定义
DVI 和 HDMI 接口协议在物理层使用 TMDS 标准传输音视频数据。TMD(Transition Minimized Differential Signaling,最小化传输差分信号)是美国 Silicon Image 公司开发的一项高速数据传输技术,在DVI 和 HDMI 视频接口中使用差分信号传输高速串行数据。TMDS 差分传输技术使用两个引脚(如图3中的“数据 2+”和“数据 2-”)来传输一路信号,利用这两个引脚间的电压差的正负极性和大小来决定传输数据的数值(0 或 1)。
TMDS 传输系统分为两个部分:发送端和接收端。 TMDS 链路包括 3 个传输 RGB 信号的数据通道和 1 个传输时钟信号的通道。TMDS 发送端对这些数据进行编码和并/串转换,再将数据分别分配到独立的传输通道发送出去。接收端接收来自发送端的串行信号,对其进行解码和串/并转换,然后发送到显示器的控制端。与此同时也接收时钟信号,以实现同步。每一个数据通道都通过编码算法,将 8 位数据转换成最小化传输、直流平衡的 10 位数据。这使得数据的传输和恢复更加可靠。最小化传输差分信号是通过异或及异或非等逻辑算法将原始 8 位信号数据转换成 10 位,前 8 为数据由原始信号经运算后获得,第 9 位指示运算的方式,第 10 位用来对应直流平衡。如下图所示:
图4
一般来说,HDMI 传输的编码格式中要包含视频数据、控制数据和数据包(数据包中包吨音频数据和附加信息数据,例如纠错码等)。 TMDS 每个通道在传输时要包含一个 2bit 的控制数据、 8bit 的视频数据或者 4bit 的数据包即可。在 HDMI 信息传输过程中,可以分为三个阶段:视频数据传输周期、控制数据传输周期和数据包传输周期,分别对应上述的三种数据类型。
TMDS包含:
(1)传输最小化
8 位数据经过编码和直流平衡得到 10 位最小化数据,这仿佛增加了冗余位,对传输链路的带宽要求更高,但事实上,通过这种算法得到的 10 位数据在更长的同轴电缆中传输的可靠性增强了。下图是一个例子,说明对一个 8 位的并行 RED 数据编码、并/串转换。
图5
1)将 8 位并行 RED 数据发送到 TMDS 収送端。
2)并/串转换。
3)进行最小化传输处理,加上第 9 位,即编码过程。第 9 位数据称为编码位。
(2)直流平衡
直流平衡(DC-balanced)就是指在编码过程中保证信道中直流偏移为零。方法是在原来的 9 位数据癿后面加上第 10 位数据,传输的数据趋于直流平衡,使信号对传输线的电磁干扰减少,提高信号传输的可靠性。
(3)差分信号
TMDS 差分传动技术是一种利用2个引脚间电压差来传送信号的技术。传输数据的数值(“0”或者“1”)由两脚间电压正负极性和大小决定。即,采用 2 根线来传输信号,一根线上传输原来的信号,另一根线上传输与原来信号相反的信号。这样接收端就可以通过让一根线上的信号减去另一根线上的信号的方式来屏蔽电磁干扰,从而得到正确的信号。
图6
另外,还有一个显示数据通道(DDC),是用于读取表示接收端显示器的清晰度等显示能力的扩展显示标识数据(EDID)的信号线。搭载 HDCP(High-bandwidth Digital Content Protection,高带宽数字内容保护技术)的发送、接收设备之间也利用 DDC 线进行密码键的认证。
2、DVI 和 HDMI
图 7 是 TMDS 发送端和接收端的连接示意图。DVI 或 HDMI 视频传输所使用的 TMDS 连接通过四个串行通道实现。对于 DVI 来说,其中三个通道分别用于传输视频中每个像素点的红、绿、蓝三个颜色分量(RGB 4:4:4 格式)。HDMI 默认也是使用三个 RGB 通道,但是它同样可以选择传输像素点的亮度和色度信息(YCrCb 4:4:4 或 YCrCb 4:2:2 格式)。第四个通道是时钟通道,用于传输像素时钟。独立的 TMDS 时钟通道为接收端提供接收的参考频率,保证数据在接收端能够正确恢复。
图 7 TMDS 连接示意图
如果每个像素点的颜色深度为 24 位,即 RGB 每个颜色分量各占 8 位,那么每个通道上的颜色数据将通过一个 8B/10B 的编码器(Encoder)来转换成一个 10 位的像素字符。然后这个 10 位的字符通过并串转换器(Serializer)转换成串行数据,最后由 TMDS 数据通道发送出去。这个 10:1 的并转串过程所生成的串行数据速率是实际像素时钟速率的 10 倍。
在传输视频图像的过程中,数据通道上传输的是编码后的有效像素字符。而在每一帧图像的行与行之间,以及视频中不同帧之间的时间间隔(消隐期)内,数据通道上传输的则是控制字符。每个通道上有两位控制信号的输入接口,共对应四种不同的控制字符。这些控制字符提供了视频的行同步(HZYNC)以及帧同步(VSYNC)信息,也可以用来指定所传输数据的边界(用于同步)。
对于 DVI 传输,整个视频的消隐期都用来传输控制字符。而 HDMI 传输的消隐期除了控制字符之外,还可以用于传输音频或者其他附加数据,比如字幕信息等。这就是 DVI 和 HDMI 协议之间最主要的差别。从图8中也可以看出这一差别,即“Auxiliary Data”接口标有“HDMI Olny”,即它是 HDMI 所独有的接口。
从前面的介绍中我们可以看出,TMDS 连接从逻辑功能上可以划分成两个阶段:编码和并串转换。在编码阶段,编码器将视频源中的像素数据、HDMI 的音频/附加数据,以及行同步和场同步信号分别编码成10 位的字符流。然后在并串转换阶段将上述的字符流转换成串行数据流,并将其从三个差分输出通道发送出去。
DVI 编码器在视频有效数据段输出像素数据,在消隐期输出控制数据,如图 8 所示。其中 VDE(Video Data Enable)为高电平时表示视频数据有效,为低电平代表当前处于视频消隐期。
图8 DVI 编码输出示意图
图 9 给出了三个通道的 DVI 编码器示意图。对于像素数据的 RGB 三个颜色通道,编码器的逻辑是完全相同的。VDE 用于各个通道选择输出视频像素数据还是控制数据。HSYNC 和 VSYNC 信号在蓝色通道进行编码得到 10 位字符,然后在视频消隐期传输。绿色和红色通道的控制信号 C0 和 C1 同样需要进行编码,并在消隐期输出。但是 DVI 规范中这两个通道的控制信号是预留的(未用到),因此将其置为 2’b00。
图9 DVI 编码器示意图
每个通道输入的视频像素数据都要使用 DVI 规范中的 TMDS 编码算法进行编码。每个 8-bit 的数据都将被转换成 460 个特定 10-bit 字符中的一个。这个编码机制大致上实现了传输过程中的直流平衡,即一段时间内传输的高电平(数字“1”)的个数大致等于低电平(数字“0”)的个数。同时,每个编码后的 10-bit字符中状态跳转(“由 1 到 0”或者“由 0 到 1”)的次数将被限制在五次以内。
除了视频数据之外,每个通道 2-bit 控制信号的状态也要进行编码,编码后分别对应四个不同的 10-bit控制字符,分别是 10’b1101010100,10’b0010101011,10’b0101010100,和 10’b1010101011。可以看出,每个控制字符都有七次以上的状态跳转。视频字符和控制字符状态跳转次数的不同将会被用于发送和接收设备的同步。
HDMI 协议与 DVI 协议在很多方面都是相同的,包括物理连接(TMDS)、有效视频编码算法以及控制字符的定义等。但是相比于 DVI,HDMI 在视频的消隐期会传输更多的数据,包括音频数据和附加数据。4-bit 音频和附加数据将通过 TERC4 编码机制转换成 10-bit TERC4 字符,然后在绿色和红色通道上传输。
HDMI 在输入附加数据的同时,还需要输入 ADE(Aux/Audio Data Enable)信号,其作用和 VDE 是类似的:当 ADE 为高电平时,表明输入端的附加数据或者音频数据有效。
在编码之后,3 个通道的 10-bit 字符将进行并串转换,这一过程是使用 7 系列 FPGA 中专用的硬件资源来实现的。7 系列的 FPGA 提供了专用的并串转换器——OSERDESE2。单一的 OSERDESE2 模块可以实现 8:1 的并串转换,通过位宽扩展可以实现 10:1 和 14:1 的转换率。