1 Introduction
HDMI全称是High Definition Multimedia Interface(高清晰度多媒体接口),是一种传输高清视频信号传输协议。在这个4k电视趋于普及的年代,HDMI的应用将会越来越广泛。现在的大多数显示器,投影仪,电视机等都带有HDMI接口。在HDMI之前,已经有VGA、DVI等接口标准。2002年4月,日立、松下、飞利浦、Silicon Image、索尼、汤姆逊、东芝这七家大佬觉得以往的协议已经适应不了高清视频信号的传输,而高清视频将会是一个未来视频的一个发展方向,于是就组建了HDMI接口组织,并在同年的12月9日发布了HDMI1.0版本。
图1 VGA接口
图2 DVI接口
图3 HDMI接口
2、Overview
图4 HDMI信号传输结构
HDMI采用TMDS(过渡调制差分信号也被称为最小化传输差分信号)的方式来传输各种信号的。HDMI线包括三对TMDS Data 通道,相应的有三条TMDS Data Shield线;一对TMDS Clock通道;两条作为DDC功能 (读取显示设备EDID)的通道:SCL,SDA,其实就是一个IIC通道;一条CEC(Consumer Electronics Control)功能通道,作为信号源对显示设备的控制信号传输通道;一条HPD(Hot Plug Detect)线;一条HEAC(HDMI Ethernet and Audio Return Channel)功能线。在实际用途中,HDMI接口有五种类型:
图5 HDMI type A&E 管脚
type A 总共有 19pin, 规格为4.45mm×13.9mm,为最常见的 HDMI 接头规格, 相对等于 DVISingle-Link 传输。 在HDMI1.2a之前, 最大能传输 165MHz 的TMDS
图6 HDMI type B管脚
总共有 29pin, 可传输HDMI A type 两倍的TMDS资料量, 相对
等于DVIDual-Link传输, 用于传输高分辨率(2560x1600以上)。
图7 HDMI type C管脚
总共有 19pin, 可以说是缩小版的 HDMI A type, 但脚位定义有所改变。 主要是用在便携式装置上, 例如DV、数码相机、便携
式多媒体播放机等。(又称 mini-HDMI, 但实际上 HDMI 官方并
没此名称。 )
图8 HDMI type D管脚
俗称 Micro HDMI 是定义为HDMI1.4版本的,保持HDMI标准的19pin .但是尺寸与微型USB的接口差不多,尺寸为 2.8 mm × 6.4mm,主要应用在一些小型的移动设备上,如手机, MP4等等。
3 Signaling And Encoding
3.1 Overview
图9 HDMI Encoder/Decoder Overview
如上图所示,一条HDMI链路包括三条TMDS Data 通道和一条TMDS Clock通道。每一个时钟周期,每条数据通道上都会传输10bit数据,这10bit的数据时采用不同的编码方式。在Input Stream中包括视频数据(video pixel),数据包(packet)和控制数据(control data)。在数据包中包括音频数据(audio)、辅助数据(auxiliary)和一些错误纠正码(error correction codes(ECC))。
3.2 Operating Modes Overview
图10 HDMI数据传输周期
图11 以720x480p为例子的TMDS 周期
HDMI链路会工作在三种周期:视频数据周期(Video Data Period)、数据岛周期(Data Island period)、控制周期(Control period)。视频数据周期中传输的是真正的视频数据,前面有一个Leading Guard Band;数据岛周期中,音频数据和辅助数据是通过一系列的包(packet)来传输的,在数据岛周期前面有一个Leading Guard Band,后面有一个Trailing Guard Band;控制周期处于前两个周期的前面,通过CTL[0:4]来控制此控制周期后面紧跟着是视频数据周期还是数据岛周期,除了控制信号外,控制周期中还包含有垂直同步信号(VSYNC)和水平同步信号(HSYNC)。
图12 HDMI各种周期数据内容
下面对每一个周期做详细说明
3.2.1 Control Period
3.2.1.1 Preamble
在HDMI协议中,Control period是作为island period 和 video data 的报文头(preamble),里面包含了控制数据(CTL[0:4])和水平垂直同步信号。控制数据表明了其后面紧跟着是视频数据周期还是数据岛周期,其定义如下表:
3.2.1.2 Character Synchronization
HSYNC:水平同步信号,它规定了一个串行数据中每条行扫描线的起止位置
VSYNC:垂直同步信号,也叫场同步信号,它规定了每一帧(对于逐行扫描每一场对应每一帧,而隔行扫描是两场对应一帧图像)图像什么时候开始显示。
3.2.2 Video Data Period
在每一个Video Data Period之前有一个Preamble(control period),在Preamble后面还有一个Video Leading Guard Band,不同于Data Island period,Video Data Period后面没有Trailing Guard Band。
其中的Video Leading Guard Band的值是固定的为:
case(Channel Number):
0: q_out[9:0] = 0b1011001100;
1: q_out[9:0] = 0b0100110011;
2: q_out[9:0] = 0b1011001100;
endcase
3.2.3 Data Island Period
Data Island Period中除了保护边带以外,就是一些Packet,其中Channel 0中的数据组成了Packet Header,Channel 1和Channel 2组成了Packet Body。
图13 Data Island Period 数据组成
每一个Packet持续32个时钟周期,其中Channel 0的D[0:1]为HSYNC和VSYNC信号,D2的32bit组成了Packet Header,共4个Byte,编号依次为HB0-HB2,第4个Byte为校验位;D3是未定义的;Channel 1和Channel 2的D[0:4]组成了Packet Body,Packet Body中共有4个Subpacket(Subpacket 0-3),每一个Subpacket有8Byte,编号为SB0-SB7,第8个Byte作为校验位。整个Packet Body每个Byte编号依次为PB0-PB27。
3.2.3.1 Packet Header
图14 Packet Header内容
HB0:表明了后面Packet Body的类型,说明书中有规定
HB1-HB2:Packet Body的一些数据说明,说明书中也有明确规定
下面的表中定义了Packet Type值,以及对应的Packet Type,第三列是说明书中对这个Type的详细介绍。
图14 Packet Type内容
下面讲一下几个与应用相关的Packet。
3.3 Data Island Packet Definitions
3.3.1 NULL Packet
顾名思义,这种Packet中的数据都是空的,未定义的,Packet Header和Packet Body的值都为0。
图15 NULL Packet
3.3.2 Audio Clock Regeneration Packet
这个Packet中包含有N和CTS两个参数的值,这两个是音频时钟重建的重要参数。Header和Body的内容如下面两个表所示(Body 中的4个Subpacket内容是一样的):
图16 Audio Clock Regeneration Packet Header
图16 Audio Clock Regeneration Packet Body
其中N.0-N.19,CTS.0-CTS.19组成了N和CTS的值
3.3.2.1 Audio Clock Regeneration
图17 HDMI中音频时钟重建示意图
HDMI连接上所传送的音频数据仅能依赖TMDS的时钟,换句话说,数据的传送并不会包含或保留原来音频的采样频率。因此,在接收端(Sink)的设备必须重建这个采样频率,这个动作就称为“Audio Clock Regeneration”。就现实环境来说,在多数场合下,视频源端(Source)装置的音频与视频数据的时钟其实是由一个共通的时钟来源所衍生出来的,称为“连贯时钟(Coherent Clocks)”。在这种情形下,他们之间存在着理性的数字关系,也就是说可以使用整数来整除的关系。在sink端可以通过这种数学关系,从TMDS Clock中重建音频采样频率。它们之间的数学关系为:
下面三个表分别为音频采样频率为32KHz、44.1KHz及其倍数、48KHz及其倍数建议的N和CTS值。
3.3.3 InfoFrame Packet
3.3.4 General Control Packect
4个subpacket的内容也是一样的
其中:AV Mute(Audio Video Mute), 声音图像消隐,就是黑屏加静音。为解决一些问题提出的方案。比如DVD在切换分辨率、Color Space、开关机等操作时,电视可能会看到一些过渡花屏的现象,所以,DVD在进行相应操作之前,发送给电视一个AVMute信号,让电视至于黑屏静音状态,等待DVD切换好后,再发送一个Clear AVMute信号,让电视再开机,这样,切换过程中的花屏现象就会被屏蔽掉。CD为Color Depth。
4 Encoding
4.1 Control Period Coding
控制信号通过三个通道中的D[0:2]来传输,其中Channel 0传输的是水平和垂直同步信号,Channel 1和Channel 2传输CTL[0:3]。其拓展成10bit的对应编码如上图所示。
4.2 Video Data Coding
HDMI视频信号编码算法如下图所示
视频信号解码算法
HDMI YUV像素编码格式:
4:4:4编码
4:2:2编码
对于4:2:2格式每个分量采用12bit编码,每一个像素点数据只包含YCb或者YCr,两个相邻的像素共用Cb、Cr。