HDMI(High-Definition Multimedia Interface)高清多媒体接口技术详解
1、High-Definition Multimedia Interface (HDMI). 高清多媒体接口(HDMI)技术总体概述
HDMI还可以在两个方向上传输控制和状态信息
HDMI可以携带高质量的多通道音频数据,并且可以携带所有标准和高清晰度的消费电子视频格式。内容保护技术是可用的。
视频像素率为25到165Mhz,视频像素可以使用rgb ycbcr444或者ycbcr422进行编码。
使用packet结构传送辅助和音频数据。使用bch校正编码同时使用10位的做转换来增加可靠性。
接收端使用DDC读取Sink的增强型扩展显示识别数据(E-EDID),以便发现发送装备的配置和/或功能。
2、信令和编码
上图是HDMI发送端(source)和接收端(sink)的数据搜发的情况。
TMDS时钟通道不断地以传输视频的像素速率运行。在TMDS时钟通道的每个周期中,三个TMDS数据通道都传输一个10位字符。
每个时钟要转换10个字节,这个10位的单词使用几种不同的编码技术进行编码。
源编码逻辑的输入流将包含视频像素、数据包和控制数据。
接收端的数据包含视频像素,包、控制指令。包packet中包含了音频和幅值数据以及相关的错误校正编码。
这些数据项以各种方式处理,并以2比特的控制数据、4比特的数据包数据或每个TMDS通道的8位视频数据呈现给TMDS编码器。该源编码其中一种数据类型,或在任何给定的时钟周期中编码一个警卫带字符。
这些数据组建被各种方法处理。被编码成2bit的控制数据,4bit的包数据或者8位的是视频数据。在每一个时钟周期,发送设备将这些数据编码或者被编码成保护带字节。如下图所示。
下图说明了在三个通道上可以传输的数据信息。
3、操作模式
HDMI连接在三种模式中运行:视频数据周期、数据岛周期和控制周期。在视频数据期间,活动视频的活动像素被传输转换。在数据岛期间,音频和辅助数据是通过一系列的数据包传输的。当没有视频、音频或辅助数据需要传输时,就使用控制周期。在不属于控制期的任何两个时期之间,需要一个控制周期。再两种数据模式切换的时候需要使用控制模式。
在视频数据模式周期中使用转换最小化编码,为每个通道编码8位,或每像素24位。(见编码部分);
数据岛周期是使用类似的转换最小化编码即TMDS错误减少编码(TERC4)进行编码的,它每通道传输4比特,或每像素时钟周期12位。
在控制期间,每个通道2比特,或6bits每像素时钟编码一次,使用转换最大化编码。这6位是HSYNC、VSYNC、CTLO、CTL1、CTL2和CTL3。在每个控制周期的末尾,一个使用CTLx位的序言,表明下一个数据周期是一个视频数据周期还是一个数据岛周期。
每个视频数据周期和数据岛周期都从一个主要的保护带开始,旨在提供从控制期到数据周期的转换的健壮的确定。
这个保护带由两个特殊的字符组成。
数据岛时期也受到一个尾部保护带的保护,它的设计目的是为控制期间的过渡提供抵抗能力。
小结:
每一个像素周期的每个通道要传送8(视频数据)或者2(控制指令数据)或者4(辅助或者音频)个数据,然后这些数据会被最小化、校正编码和最大化编码方法编码成10位数据。这丧钟数据分别在三个阶段分别传送。视频数据之后会发送保护带,包数据会发送保护带和追踪带;在控制模式每个周期的结尾会发送序言来表明下一个阶段发送的是数据岛还是视频数据,通道0会发送水平和垂直控制指令,通道1和通道2会发送下一个阶段发送的是数据岛还是视频数据。
3.1控制阶段操作模式详解
控制周期用于传送序言。控制周期也被从机用于字符同步!
在每个视频数据周期或数据岛周期之前,都是序言。
这8个相同的控制字符序列,表示即将到来的数据周期数据周期还是数据岛。ctl0、CTL1、CTL2和CTL 3的值表明了接下来的数据周期类型。其余的控制信号,HSYNC和VSYNC,在这一序列中可能有所不同。
上图是发送端编码前的数据岛的数据指示。
3.2视频保护带
在此序列之后,从TMDS控制字符到保护带字符的转换确定了数据周期的开始。
视频数据周期用于携带活动视频线的像素。每个视频数据周期之前都有一个序言,如上所述。在序言之后,视频数据周期开始于一个两个像素的视频领先的保护带。视频数据期间没有跟踪保护带。在活动视频期间,使用TMDS转换最小化编码来编码24位像素数据。图是视频头保护带
3.3.1数据岛的定义
在每一个像素的数据岛,在数据岛的每个像素中,包括警卫带,TMDS通道0的位0和1传输一种编码形式的HSYNC和VSYNC。
TMDS通道0的Bit2用于传输数据包报头。
所有四个TMDS通道1和0都用于转换参数的形式,是HSY还是VYS数据。
0通道的第2位用于转换成包头,通道1和通道2的一共四位数据用于包数据的形成。每一个包为32个像素长。使用BCHECC技术编码,用于校正和检测。
在数据岛期间,三个TMDS通道中的每一个都通过TMDS错误编码(TERC4)传输从4位输入字编码转换为一系列10位字符。terc4显著降低了链路上的错误率,只选择了10位具有高固有误差的代码。
在视频信号的水平和垂直的消隐时间和同步信号方面,需要源来确定数据岛的时间位置和持续时间。
在序言之后,会发送一个以头保护,然后发送第一个packet。两个字长的数据岛发送完成以后,会发送一个跟踪保护带。在发送玩跟踪保护带之后,会发送控制指令,然后再发送以开头保护带领头的数据或者数据岛。由一通道或者2通道的控制字所决定。
它应遵循下列规则行事。
所有的TMDS控制期至少应该是ts,min(12)字符(像素)长。
3.3.2岛的位置和持续时间
接收端需要使用视频的水平或者垂直空挡周期和同步信号去分别判定暂时的位移和数据岛的持续时间。
控制信号的周期至少为12个像素周期长度。
数据岛至少有一个packet,最小的长度为36个像素长度。32+2+2=36;
3.3.3数据岛包的构建
所有的数据到包含在32个像素的包当中,必须有至少18个包。
在传输视频时,至少有一个数据岛在每两个视频区域中传输。
在数据岛保护带中,通道0被编码为4个TERC4值之一。
这些TERC4值(D 3:0)是0xC、0xD、0xE和0xF,这取决于HSYNC和VSYNC的值。
数据岛内的所有数据都包含在32个像素的数据包中。
包的包头、包体(由四个子包组成)和相关的错误校正位。
每个子包包含56位数据,并由额外的8位BCH ECC奇偶校验位保护,一共64位数据。
3.4数据岛包的定义
包头只出现在数据岛的通道0的前两位数据当中,最少是32个像素时钟周期的长度。
3.4.1包头
由一个字节长的packet type 和两个字节长度的packet-specific data构成如图3.4.1.1所示。信息帧类型的信息帧包被标准EIA/CEA-861B所定义,如图3.4.1.2所示。 图3.4.1.1
3.4.2空包
3.5编码
串行化:高字节在后,低字节在前
3.5.1控制器的编码
所有三个通道的编码的格式为
3.5.2数据岛TERC4编码
3.5.3视频数据的编码
编码分为两个阶段;
第一个字节为转换最小阶段,被编码在10位数据中的第九位,第二个阶段产生第10位数据,这个位会保持直流的平衡。
第一个阶段:
输入和输出的最低有效位是相同的,而输出的其他7个位是通过XOR和XNOR来进行操作的,第九位表示使用的方式是XOR还是XNOR。
第二阶段:
对前八位数据进行选择性的方向,而第十位就说明是否进行了反向操作。反向操作取决于追踪到的0和1的非一致性以及当前字节的0和1的个数,如果输入的1比0多,那么就反相位,
HDMI的命令格式和通道分配情况在上面已经进行了详细的介绍,对视频的编码格式等等做出了详细的介绍,其他部分的资料请查看HDMI官方的标准。