HDMI协议分析(协议版本:HDMI-1.4b)

1.模块

HDMI主要包含四个模块,实际上linux HDMI驱动就是由这4个子驱动构成:

TMDS(差分):传输视频帧,数据帧,控制帧,AVI frame

DDC实际上是一个IIC总线,用于收发双方交流功能和特性

CECCEC通道可选择用于高级用户功能,例如自动设置任务或通常与红外遥控器使用相关的任务;例如:当有很多HDMI设备通过HDMI线,切换器或者分配器连在一起的时候,如果所有的HDMI产品都支持CEC功能,那么可以利用其中一台的遥控器可以去控制其他的设备;LINUX中的CEC驱动通常是单独的

HEC高速双向数据信道?

2.硬件接

音视频传输主要靠TMDS差分传输,包含三个数据通道并行传输,一个时钟通道;

3.信号:

音视频传输主要靠TMDS差分传输

4.编码:

这里描述差分编码;发送端编码,接收端解码,编码规范如下:

5. 协议:

1.HDMI协议状态机

我理解,HDMI协议可以分成三个传输部分,他们是相对独立的,主要关心第一个部分

(1)TMDS+DDC

正向音频和视频数据

(2)CEC

遥控器等

(3)HEC

反向音频数据

2.支持的分辨率和帧率:

但是HDMI也可以支持非标准格式,但是要进行左右像素填充,也就是补充成接近的标准格式,填充信息包含在AVI的相关字段中描述;

3.像素重复:

如果传输的图像低于25 Mpixels/sec,就需要像素重复,在AVI frame中的PR0:PR3字段中描述,AVI frame由发送端发送,告诉接收端重复信息,至少每两帧发送一个AVI;

4.支持的图像格式:

支持RGB444,YUV422,YUV444三种格式;每种格式的传输方式如下:

5.数据传输:

首先HDMI是面向stream的传输,不是面向packet的传输

(1)差分信道TMDS

TMDS实际上只传输音频,视频;每个时钟循环,每个TMDS发送10bit数据(10bit是编码后的结果,编码前是8bit,4bit或2bit),每个TMDS可发送video pixel(8bit), packet(4bit) and control data(2bit)三种数据,同一时刻只能发送一种

a. vedio pixel 是图中的Pixel component,是视频数据,共24bit:

RGB格式:

YUV422格式:

YUV444格式:

b. control data是图中的CTL*,是控制数据,共4bit

控制帧把packet data和vedio pixel 分开;也就是每个packet data或vedio pixel后都要跟一个控制帧,用于告诉接收端将要发送的帧类型,类型信息有控制帧中的CTL0, CTL1, CTL2, and CTL3字段描述:

packet data和vedio pixel只包含两个部分,保护带加数据段,其中保护带用于从控制周期到数据周期的过渡,数据段仅仅包含有效数据,没有协议相关成分;也就是说,由控制帧单独描述协议控制逻辑,这种帧设计和MIPI类似。

c. packet data 是图中的Auxiliary Data,是Packet Header或音频数据,共12bit

d. H,VSYNC

VSYNC:是场同步信号。以高电平有效为例,VSYNC置高直到被拉低,这个区段所输出的所有影像数据组成一个frame。

HSYNC:是行同步信号。就是在告诉接收端:“HSYNC”有效时段内接收端接收到的所有的信号输出属同一行
这种机制和MIPI也是类似的

(2)DCC

DCC实际上是IIC总线,用于传输EDID(Extended Display Identification Data,扩展显示标识数据);EDID是接收端发给发送端的一个数据包,通过DDC传输;包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等,发送端需要先拿到这个数据包,才能确定合适的输出

(3)CEC

CEC是一个“单独的协议”?

实际上LINUX中的CEC驱动通常是单独的;CEC通道可选择用于高级用户功能,例如自动设置任务或通常与红外遥控器使用相关的任务;

(4)HECHEAC

HEC是100M以太网,用于接收端返回音频数据

6.关于分辨率,帧率和带宽计算:

具体的分辨率,帧率和带宽与物理HDMI控制器设计以及驱动设计有关,协议仅供参考;

7.关于HDMI分辨率,屏幕分辨率,framebuf,和HDMI线缆:

HDMI可以传输自定义非标准分辨率,前提是比HDMI适配器的最大分辨率要小,采用像素填充机制进行传输;屏幕通常可以支持自定义非标准分辨率(是通过图像缩放实现的吗?具体机制是什么?),前提是比屏幕最大分辨率要小;而framebuf只是存放图像的buffer(这个大小限制是什么?);另外,分辨率等还和HDMI线缆有关,详情见HDMI协议手册

 

 

 

 

  • 4
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值