转HDMI

HDMI协议解析

转载请标明出处floater的csdn blog,http://blog.csdn.net/flaoter

本文从软件工程师角度对HDMI spec进行解析,基于的spec版本为1.4,也是设备支持最多最成熟的版本,目前最新版本为2.0。

1 概述

HDMI(High-Definition Multiface Interface)是Hitachi, Panasonic, Philips, SiliconImage, Sony, Thomson, Toshiba几家公司共同发布的一款音视频传输协议,主要用于DVD, 机顶盒等音视频source到TV,显示器等sink设备的传输。传输基于的是TMDS(Transition Minimized Differential Signaling)协议。此外,使用TMDS也是DVI标准的主要特点 。

2 物理结构

hdmi_block 
上图是HDMI block结构图,可以看出HDMI用于audiovisual source和sink之间的连接,HDMI cable由3组差分信号传输TMDS数据,1组差分信号传输clock。此外,HDMI还有一个DDC的通道连接到sink的EDID。CEC和HEAC都是HDMI的可选协议。 
hdmi_pin 
HDMI定义了五种类型的connector,上图是最常见的type A。 
1-9是TMDS data传输用到的引脚,共有三组; 
10-12是TMDS clock传输用到的引脚,共有一组,TMDS clock就是pixel clock; 
13是CEC引脚,一种消费电子兼容的传输协议; 
14是保留引脚; 
15,16是DDC的引脚,DDC是基于I2C协议传输,故引脚为SCL和SDA; 
17是接地; 
18是+5V power; 
19是HPD引脚,用于建立连接。

3 传输

概述

HDMI传输由三组TMDS通道和一组TMDS clock通道组成,TMDS clock的运行频率是video信号的pixel频率,在每个cycle,每个TMDS data通道发送10bit数据。 
hdmi_transblock 
上图是HDMI传输的示意图,从图中可知,HDMI传输如下四种类型数据: 
(1)Preamble控制信息,图中的CTLx,可用来表示后面传输的是data island还是video data。通过channel1和2的D[1:0]传输,占用4bit。 
(2)Data Island,即数据包,如Audio数据包。通过3个channel的D[3:0]传输,占用12bit。 
(3)Video Data,视频数据。示意图中传输的是RGB格式图像,R,G,B分别通过channel2,1,0传输,每个颜色8bit,共24bit。 
(4)HSYNC, VSYNC。使用channel0的D[1:0]传输,占用2bit。 
8bit的数据在source经过TMDS encoder后得到10bit数据,经过serializer后串行输出;在sink端先进行复原成10bit的数据,再通过TMDS decoder得到8bit的源数据。 
此外,HDMI视频是stream式的传输,不涉及packet式的传输。

流式传输的两大主流种类及流式传输特点
2015年04月14日 17:29:02
阅读数:1870
转自:http://blog.csdn.net/hguisu/article/details/7418087


     流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming)。(百度百科)

    在网络上传输音/视频(英文缩写A/V)等多媒体信息目前主要有下载和流式传输两种方案。A/V文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机的连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十数秒的启动延时即可进行观看。当声音等时基媒体在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载才能观看的缺点。

  1.流式传输的种类

  网络传输音频、视频等多媒体信息有下载和流式传输两种方案,下载方案由于A/V文件较大,所需存储容量也较大,且网络带宽的限制导致下载费时久,且延迟亦较大;而流式传输方案则避免了用户需等待整个文件全部下载后才能播放的缺点。流式传输技术又分两种,一种是顺序流式传输,另一种是实时流式传输。

  ①顺序流式传输(Progressive Streaming)

  顺序流式传输是顺序下载,媒体在下载文件的同时,用户可以观看在线节目。在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分。顺序流式传输不像实时流式传输那样,可以在传输期间根据用户连接的速度进行调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,因而它经常被称作HTTP流式传输。由于该文件在播放前观看的部分是无损下载的,最终播放质量较好,因而特别适合质量较高、数据量较小、通过Modem发布的短片段,如片头、片尾、广告等。但用户在观看前必须经历数秒的延迟,传输速度较慢时尤为明显。对通过调制解调器发布的短片段,顺序流式传输显得很实用,它允许用比调制解调器更高的数据速率创建视频片段。尽管有延迟,毕竟可发布较高质量的视频片段。顺序流式文件是放在标准HTTP或FTP服务器上,因而易于管理,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频,如讲座、演说与演示,它也不支持现场广播。因此,严格地说来,它本质上是一种点播技术。

  ②实时流式传输(Realtime Streaming)

  实时流式传输可保证媒体信号带宽与网络连接匹配,可实时观看节目。实时流与HTTP流式传输不同,它需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,因而特别适合现场事件,且支持随机访问,用户可对观看内容进行快进或后退以观看前面或后面的内容。理论上,实时流一经播放就不可停止,但实际上,可能发生周期暂停。实时流式传输必须匹配连接带宽,这意味着在以调制解调器速度连接时图像质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量差,而没有顺序流式传输视频质量好。实时流式传输需要特定服务器,如QuickTime Streaming Server、RealServer与Windows Media Server。这些服务器允许你对媒体发送进行更多级别的控制,因而系统设置、管理比标准HTTP服务器更复杂。实时流式传输还需要特殊网络协议,如:RTSP(Realtime Streaming Protocol)或MMS(Microsoft Media Server)。这些协议在有防火墙时有时会出现问题,导致用户不能看到一些地点的实时内容。

  显然,在实际应用时,具体采用哪种传输方式可根据需要确定,且流式传输也支持在播放前完全下载到硬盘。一般情况下,流式传输模式会使用RTP/UDP、RTSP/TCP两种通信协议与A/V(Audio/Video)Server建立联系,将服务器的输出重定向到一个运行A/V Player程序所在客户机的目的地址。通常,流式传输系统一般都要配置一套专用的服务器和播放器。

  2.流式传输的特点

  与单纯的下载方式相比,这种对多媒体文件边下载边播放的流式传输方式具有以下的特点:

  ①大幅度地缩短启动延时

  流式传输大幅度地缩短启动延时,因为用户不用等待所有内容下载到硬盘上才开始浏览,无论是上班时间还是晚上,速度都相当快。一般来说,一个45分钟的影片片段,在一分钟以内就显示在客户端上,而且在播放过程中,一般都不会出现断续的情况。此外,全屏播放对播放速度几乎无影响,但快进、快倒时,需要时间等待。

  ②大大降低对系统缓存容量的需求

  由于Internet是以包传输为基础进行断续的异步传输,其数据被分解为许多包进行传输。动态变化的网络使各个包可能选择不同的路由,故到达用户计算机的时间延迟也就不同。因此,在客户端需要缓存系统来弥补延迟和抖动的影响和保证数据包传输顺序的正确,从而使媒体数据能连续输出,且不会因网络暂时拥堵而使播放出现停顿。虽然,流式传输仍需要缓存,但由于不需要把所有的动画、视音频内容都下载到缓存中,因而对缓存的要求大大降低。

  由于流媒体技术使用了数据缓冲技术,因而可保持流媒体的不间断,并保证文件传输的可靠性。

  ③有特定的实时传输协议实现流式传输

  由前面叙述所知,流媒体目前有三种主流格式,并需要相应的特定的实时传输协议。一般,采用RTSP等实时传输协议,更加适合动画、视音频在网上的流式实时传输。

  此外,采用流媒体技术不会占用本地的硬盘空间等。

hdmi_timing 
上图是传输720x480p video的hdmi timing图。 
在video data period,有效的video数据进行传输; 
在data island period,audio和auxiliary数据以包的形式进行传输; 
在control period,CTLx和HSYNC, SYNC进行传输。 
data island period和control period都是在消隐区进行。图中行消隐占用138像素,场消隐占45行。 
period_encode 
上图中是对时序图中描述的三种period分别传输的数据和编码类型进行说明。video数据从8bit/channel encode后变为10bit/channel, data island的packet数据从4bit/channel encode后为10bit/channel, control数据从2bit/channel encode为10bit/channel。

Control Period

hdmi_control_period 
只有两种类型的preamble信息组合,CTL0:3=1000代表接下来的是video data period,CTL0:3=1010代表接下来的是data island period。HSYNC, VSYNC此时也有可能发生变化。

Video Data Period

video data period以2个字符(pixel)长度的leading gurad band开始,guard band如下: 
ch0: q_out[9:0] = 0b1011001100 
ch1: q_out[9:0] = 0b0100110011 
ch2: q_out[9:0] = 0b1011001100

Data Island Period

data island period传输audio数据和辅助数据,辅助数据包括Infoframe和其他用于音视频信息描述的数据。data island period以2个字符长度的leading guard band开始,并以2个字符宽度的trailing guard band 结束。guard band如下: 
ch0: q_out[9:0] = n.a 
ch1: q_out[9:0] = 0b0100110011 
ch2: q_out[9:0] = 0b0100110011 
data island传输的packet类型和格式详见spec说明。 
三个传输阶段的过渡过程如下图所示: 
hdmi_tmds_period 
(1) 左一是control period, 分别占用三个channel的D[1:0],channel 0传输HSYNC, VSYNC, channel1,2 传输Preamble 
(2) 左二是data island period,分别占用了三个channel的D[3:0],channel 0的D[1:0]传输HSYNC, VSYNC, channel0的D[3:2]传输packet header, channel 1,2的D[3:0]传输packet。并且两端以guard band隔离 
(3)右二接下来又是control period 
(4)右一是 video data island, 占用了全部三个通道,并且开始以guard band 隔离

4 Video

支持三种pixel encoding:RGB4:4:4, YCbCr4:4:4, YCbCr4:2:2 
video format除了CEA-861-D中格式外,还会支持一些较特殊的格式 
color depth可支持一个像素24, 30, 36和48bits 
下面分别是24bit/pixel的RGB444, YCbCr422, YCbCr444的pixel encoding示意图。RGB444每个颜色占8bit, YCbCr422中Y占12bit,C占12bit,YCbCr444中Y,Cb,Cr都占用8bit。 
hdmi_rgb444 
hdmi_ycbcr422 
hdmi_ycbcr444

Deep Color模式 
Pixel Packing 
24 bit mode: 1 pixel/group, 1 fragment/group 
30 bit mode: 4 pixel/group, 5 fragment/group 
36 bit mode: 2 pixel/group, 3 fragment/group 
48 bit mode: 1 pixel/group, 2 fragment/group 
1fragment/TMDS clock, 如30bit下的4pixel,需要5次传输完成,每次1个fragment。 
hdmi_packing_30bit

5 Audio

Audio数据以Audio Sample Packet或High Bitrate Audio Stream Packet的形式传输,但是HDMI没有传输audio clock,因此sink设备需要进行audio clock regeneration。原理如下: 
hdmi_audio_clock 
128∗fs=N×fTMDS/CTS 
N和CTS会在Audio Clock Regeneration Packet中进行传输,TMDS clock可通过硬件获取,因此sink端可算出source传输的audio clock。

6 Control

InfoFrame

Infoframe以Infoframe packet的形式传输,它的大小不超过30字节加上一个checksum字节。具体infoframe的格式及内容需要查看spec。 
AVI(Auxiliary Video Information) Infoframe 
Audio Infoframe 
HDMI Vendor Specific Infoframe, 传输4kx2k或3D格式时需要发送此packet

EDID & DDC

sink设备在ROM中存放EDID信息,source在收到HPD后会通过DDC通道读取EDID得到显示设备的属性。EDID包含两部分,前128字节符合EDID1.3数据结构,128字节的扩展EDID,符合CEA extension verison3。CEA extension verison3如下图所示。 
hdmi_edid_extension 
HDMI VSDB 
HDMI sink设备在第一个扩展EDID中包含HDMI VSDB,source在读取EDID后会根据是否有此block来判断设备是HDMI还是DVI。

Hotplug

source会监测HPD pin的状态,当source和sink连接后,如果HPD为高电平,说明sink设备正常可以工作,source可通过DDC读取EDID,如果为低电平,说明sink已断开。 
sink可通过拉低HPD超过100ms来向source表明EDID发生了变化,此时source会重新读取EDID。

HDCP

涉及内容较多,会在单独章节中讲解。

原文地址:https://www.cnblogs.com/jlmgary/p/9429792.html