Advertisement

HDMI手册部分翻译

阅读量:

HDMI

作为源与接收器的整合体系,HMDI系统架构被定义为一种能够实现多设备之间高效数据传输的技术方案. 每个设备可配置多样化的输入端口以及丰富多样的输出接口,这种设计不仅提升了系统的灵活性,也为复杂的多媒体流管理提供了可靠的基础保障. 在具体应用中,其所有连接到该设备的HDMI输入端口均需严格遵守相应的接口规范,而所有从该设备引出的HDMI输出端口也需满足相应的输出标准.

如图3-1所示,在HDMI电缆及其连接器中包含TMDS数据与时钟通道的四对差分信号。这些通道主要用于传输视频与音频信息以及辅助数据。此外,在HDMI总线中还支持VESA DDC(Display Depth Control)频道。该频道专门负责处理单个源与单个接收器之间的配置与状态更新操作。可选的CEC(Cross-Device Communication)协议则在用户环境中实现了跨设备的高级控制功能。

通过三个TMDS数据通道实现音频、视频及辅助信息的有效传递,在接收端的信号处理系统中,默认情况下以视频像素速率运行的TMDS时钟信号会通过其对应的TMDS时钟通道进行传输,并为三个TMDS数据通道的数据恢复提供频率基准。 在源端系统中,则采用了一种高效的编码策略:即对每个TMDS数据信道中的8位信息进行转换编码为10位直流平衡码元,并对转换后的序列进行优化处理后以10位/个时钟周期的速度进行串行传输

视频数据通常可选配置为24、30、36或48位像素尺寸。常规情况下,默认采用24位颜色深度的视频系统会配置TMDS时钟速率为像素时钟速率。通过提升相应的TMDS时钟速率可有效提升色深水平。对于需要较低TMDS传输速率的情况(如 NTSC 格式的 720p 视频),可以通过使用像素重复模式来实现低于 25 MHz 的 TMDS 传输速度(例如,在 NTSC 格式的 720p 视频中应用该模式)。图像中的每个像素通常采用 RGB、YC BCR 4:4:4 或 YCBCR 4:2:2 码流进行编码存储与传输

为了实现TMDS通道之间的音频与辅助数据传输,HDMI采用了基于数据包结构的技术。 为了增强传输过程中的可靠性并提高准确性,在必要时该系统会采用BCH纠错码对关键数据进行保护,并结合减少误差编码方法对其进行进一步加密处理以确保发送的数据完整性达到10位字的标准。 基本层面的音频支持由单一的IEC 60958 L-PCM格式构建,在不同采样率下能够适应典型的立体声音量需求(包括32kHz、44.1kHz及48kHz)。 此外,HDMI还具备高带宽扩展能力,能够支持高达192KHz的采样率以及最多8个独立的音频通道,其中还包括一种压缩形式DODC,其特征是利用E-EDID信息动态探测接收端的功能特性并提供相应的处理支持.

5 TMDS概述

5.1 信令和编码

5.1.1 链接架构

请参考图5-1,在该示意图中可以看到HDMI传输链路的具体组成架构

这里写图片描述

传输到源编码逻辑的输入流将接收被转换为图像像素、流量包及控制信息的数据。 分组信息由音频、辅助信息以及相关的纠错码构成。 这些信息通过多种方式进行处理,并被转换为不同形式的数据供TMDS编码器使用:包括2位的控制信息、4位的分组信息以及每个TMDS通道中的8位视频信息。 源编码系统会根据需求选择处理这些不同类型的原始信息,并在每个时钟周期内生成相应的保护校验字符。

5.1.2操作模式概览

通过三种不同的运行模式——视频信号模式、数据传输模式及控制模式——HDMI接口可实现灵活的数据传输。在 video 数据信号 mode 下运行时,在 HDMI 总线上发送具有活性的 pixel 数据。在 data packet mode 运行期间,则会通过一系列编码块接收 audio 信息以及可能附加的数据。当当前系统仅需完成必要的同步操作而不涉及 multimedia 信息传递时,则采用此 mode 运行。相邻两个非同步循环之间必须插入一个同步循环作为过渡层以确保系统的正常运转。下图显示了每个 period 的布局示例。

TMDS_periods

视频数据采用周期转换方法以优化压缩来实现对每个通道8位或每像素总共24位的信息进行编码过程

视频数据传输阶段中,HDMI数据线负责将视频像素信号传递给接收端。经过数字编码处理后,这些视频信号会被分割成三个独立的信息通道(即三个TMDS数据流通道),每个通道包含8位RGB色彩信息共计24位的数据流,并经由HDMI发射器接收并进行进一步处理。在TMDS传输通道中,每个通道内的8位原始信号会被编码转换为10位的数据宽度,在每一个10位像素时钟周期内发送一个最简化的信号序列以保证传输效率和稳定性;随后将这些经过编码处理后的TMDS数据信号按照规定的调制方式进行处理并发送到接收端进行解码与显示

在数据包传输时段,在TMDS信道上会发送音频信息以及辅助信息。这些信息按每4位一组进行编码,并按照预设格式组合成一个4位的数据单元。这个编码方案与视频信息采用相同的处理方式:即被调制为10位分组的形式发送出去。为了确保两种不同的信息流能够顺利衔接并正确切换,在视频信号开启之前以及相应的控制信号开启之前都会设置Guard Band保护频段。每个Guard Band由两个特定标识符组成,在明确限定控制信号开启之后即可实现相应的模式切换

在两个相邻的数据传输周期之间,在任意两个数据传输周期之间的间隙阶段中,在每个TMDS通道中携带两位控制信息;这六位分别对应HSYNC(行同步)、VSYNC(场同步),以及四个控制信号CTL0至CTL3。每位TMDS通道中的两位编码信息采用二进制扩展方式表示;在每个编码周期的最后一段时间内,在文件头中标识下一个传输阶段是视频流还是分段数据分组阶段。

下表显示了在每种操作模式下使用的编码类型和传输的数据。

Period Data Transmitted Encoding Type

| Video Data (1)| Pixel level | Data coding process
(8 bits converted to 10 bits)|
| Video Data (2)| Guard channel | Fixed 10-bit pattern string|

| DataIsland<1>|Packet Data AUDIO SAMPLES INFOFRAME|
TERC4Coder (four bits converted to ten bits) |
| DataIsland<2>|GuardBands Fixed 10 bit Pattern|

| 自定义控制 | 自定义控制
- Preamble
HyperSynchronous, VisualSynchronous | 定时编码控制
(2位数据转换为10位数据) |

5.2 操作模式

5.2.1 控制周期

控制周期也被用来传输前导码信息;同时在接收端也被用来进行字符同步操作;根据HDCP标准所规定的增强型加密状态信息编码方式(CTL0:3 =
1001),这种特定的ESC_E coding方式是不可以应用的;只有当处于HDCP所规定的特定机会窗口期间,并且正确地采用了该ESC_E编码时才允许使用。

5.2.1.1 前言

在每个视频数据周期或数据岛周期之前的是引导码(即控制周期)。这是一个包含八个一致的控制字符序列。这些序列指示即将到来的数据类型是视频数据类型还是岛类型。CTL字段0至3的值决定了以下各时间段的数据类型。HSYNC和VSYNC可能会在此序列期间发生变动。仅存在两种有效的引言标记:

CTL0 CTL1 CTL2 CTL3 Data Period Type
1 0 0 0 Video Data Period
1 0 1 0 Data Island Period

视频数据周期类型的定义表明所涉及的数据周期涵盖了视频数据,并自视频保护频带起始。
基于HDMI标准的Data Island类型表明所涉及的数据周期始于Data IslandGuardBand。
在前导码期间的数据岛前导码控制码(CTL0:3 = 1010)应避免发送,在规范操作时才允许发送。

5.2.1.2 字符同步

TMDS接收器需要识别串行数据流中字符边界的起始位置。一旦在各数据通道上实现了对字符边界的统一定位,则将接收端(即接收器端)设定为与该串行流保持同步状态,并且能够从各数据通道中恢复相应的TMDS编码信息以实现解码过程。TMDS的数据流则提供了用于实现解码器同步所需的规律性线索信息

在视频数据周期以及数据岛期间所使用的TMDS字符最多包含五个转换,在控制周期期间所使用的TMDS字符最少包含七个转换。 在控制周期期间发送的高转换内容为解码器提供字符边界同步的基础。 尽管这些字符在串行数据流中并非完全独特但它们足够相似以至于使得解码器能够在发送过程中唯一地检测到它们连续存在的同步间隔。 此检测的确切算法超出了本文档范围内的实现细节但定义了Sink同步所需的最小条件

在每个控制周期中, 要求Sink建立与数据流之间的同步关系, 其最小长度必须至少为tS, 最少12个字符。

根据表5-4,源也需要偶尔传输扩展控制周期。

参数 描述 单位
t(s)(min) 最短持续时间控制期 12 T(PIXEL)
t(EXTS)(max_delay) 延长的控制周期之间的最长时间 50 msec
t(EXTS)(min) 延长的控制周期最短持续时间 32 T(PIXEL)

5.2.2 视频数据周期

视频数据周期用于承载有效视频行的像素。

每个视频数据周期前面都有一个前导码,如上所述。

在序言后, 视频数据周期由两个字符构成的视频前导保护带构成. 视频数据周期没有尾部防护带.

在有效视频时间段内,在每个TMDS时钟周期中采用TMDS转换实现对24位像素数据的最小化编码过程

5.2.2.1 Video Guard Band
复制代码
    //视频数据前导保护带值
    case (TMDS Channel Number):
    0:  q_out[9:0] = 0b1011001100;
    1:  q_out[9:0] = 0b0100110011;
    2:  q_out[9:0] = 0b1011001100;
    endcase

5.2.3 数据岛周期

5.2.3.1 数据岛概述

Data Island负责存储音频采样信息以及辅助补充信息集合。该补充信息集合由InfoFrames构成,并包含活动音频流、视频流以及描述源的具体信息。

每个数据岛前面都有一个前导码,如上所述。

在前导码之后,在每个Data Island上均主要由一个保护频带构成。随后立即发送该Data Island的第一个数据包。

位于Data Island的每一个TMDS时钟周期(包含保护频带)内,在TMDS通道0的第0和第1位上发送HSYNC和VSYNC的特定编码模式。

TMDS通道0中的位2负责传输数据包头信息。 在TMDS通道1和2中设置了所有4位专门用于编码分组数据(如图5-3所示)。 每个长度为32像素的数据包被BCH ECC编码以实现纠错与检测功能。

当数据岛运行时,在其三个TMDS传输通道中每个传输线路都采用TMDS误差缩减编码方案(TERC4),将每个输入字转换为一个由十个字符组成的序列。 TERC4方案通过选择一组具有高度抗错能力的十个独特码字,在此过程中显著降低了通信线路上的错误发生率。

跟随最后一个数据包的,Data Island的最后两个字符是追踪保护带。

TMDS_P&E

在Data Island之后,所有三个通道恢复为发送控制字符。

5.2.3.2 数据岛位置和时间

应由源(发送端)根据下列规则需确定数据岛相对于视频信号的横向消除过程周期、纵向消除过程周期以及同步标志位的发生时间和持续时长。

  • 所有TMDS控制周期必须最少持续tS时间,并且其最小单元长度设定为12个像素(即每个单元由12个连续的字符构成)。
  • 数据岛必须包含至少一个数据包,并将其最小尺寸严格设定为36像素。
  • 数据岛必须包含整数数量的数据包。为了确保每个数据岛内部的数据可靠性和一致性,在同一时间段内它们的数量不应超过18个。
  • 在不同视频字段之间可能存在零至多个间歇性断开现象。
  • 在发送视频流时,在每两个连续的视频字段中必须传输至少一个完整的数据岛以保证传输过程的完整性与稳定性。
5.2.3.3 数据岛保护带

在数据岛内位于最前端位置的两个连续的数据字符共同构成前端保护带。
在数据岛内位于末端位置后的两个连续的数据字符共同构成后端保护带。
当处于数据岛保护带时,在通道0上编码采用四个TERC4值中的一个。
HSYNC和VSYNC参数决定了这些TERC4值(D [3:0])分别为0xC、0xD、0xE和0xF。
HSYNC和VSYNC参数决定了这些TERC4值(D [3:0])分别为0xC、

复制代码
    //数据岛前导和结尾保卫带值
    case (TMDS Channel Number):
    0:q_out[9:0] = n.a.;
    1:q_out[9:0] = 0b0100110011;
    2:q_out[9:0] = 0b0100110011;
    endcase
5.2.3.4 数据岛分组结构

Data Island中的全部数据将被组织为32个时钟数据包。这些数据包将分为三个部分:分组报头、四个子分组组成的主体以及相关的纠错位。每个子分组将携带56位核心信息,并借助BCH ECC奇偶校验码提供额外的保护。

通过加入奇偶校验位至分组0中形成BCH块0,并将其分配至通道1和2的第0位。采用这种方式后,在连续32个像素中传输了64位信息。同样地,在通道1及2中的第1位存储的是子分组1经奇偶校验后的结果。

在下表中,头字节表示为HB0,HB1和HB2,Subpacket字节表示为SB0〜SB6。

  • 组别A的第0至第6个字符块(SB₀-SB₆)也相应地被视为第₀至第₆个数据块(PB₀-PB₆)。
    • 组别A的第₀至第₆个字符块(SB₀-SB₆)也同样被视为数据块中的第7至第₁³个单元(PB₇-PB₁³)。
    • 组别A的前七字符块(SB₀-SB₆)也对应于数据块中的单元序列(PB₁⁴-PB₂⁰)。
    • 组别A的第一个七字符块(SB₀-SB₆)也等同于数据块中的单元序列(PB₂₁-P B₂₇)。
DIP&ECC
5.2.3.5 数据岛纠错

旨在提高数据可靠性并优化异常数据检测能力

ECC

5.3 数据岛分组定义

5.3.1 包头

分组报头由24个数据位构成,并附加8位BCH(32,24)ECC用于奇偶校验。

Table 5-7 Packet Header

Byte\Bit# [7 : 0]
HB0 Packet Type
HB1 packet-specific data
HB2 packet-specific data
PH

Table 5-8 shows the available packet types.

PT

5.3.2 空包

Source在任何时刻都可以采用Null数据包进行操作。 Null数据包的所有位元组皆无定义状态,在实际应用中仅能携带零位元值。 HDMI接收端不会接收相关字段中的HB1、HB2字段及整个Body部分的数据

NPH

5.3.3 音频时钟再生包

(由于暂时不涉及音频,这部分先省略)

5.3.4 音频采样包

5.3.5 InfoFrame数据包

CEA-861-D标准中所定义的所有InfoFrames均可通过HDMI InfoFrame数据包以跨越多个HDMI连接的方式实现使用。 CEA-861-D标准或本规范中未定义的InfoFrames均不得进行传输。 每个HDMI InfoFrame数据包都包含一个CEA InfoFrame,请参考以下部分详细说明。 请注意,HDMI针对CEA-861-D标准未涵盖的部分InfoFrames增加了额外的要求,具体细节及限制条件请参阅第8.2节相关内容

一般控制包

5.4 编码

5.4.1 序列化

由编码器产生的TMDS字符串经过串行化处理用于在TMDS数据信道上传输。 在本段讨论中,每个字符的最低有效位(q_out [0])是需要发送的第一个比特位而最高有效位(q_out [9])则是最后一个比特位。

5.4.2 控制周期编码

每个TMDS通道都配备有两个控制信号,在每个控制周期内都被编码为10位的二进制数值。对于所涉及的三个通道中的每一个而言,这些信号如表5-34所示。
Table 5-34 Control-signal Assignment

TMDS Channel D0 D1
0 HSYNC VSYNC
1 CTL0 CTL1
2 CTL2 CTL3

三个TMDS通道中的每一个的两个控制信号被编码如下:

复制代码
    case (D1,D0):
    0,0: q_out[9:0]=0b1101010100;
    0,1: q_out[9:0]=0b0010101011;
    1,0: q_out[9:0]=0b0101010100;
    1,1: q_out[9:0]=0b1010101011;
    endcase;

5.4.3 TERC4编码

在数据岛周期时段内采用TMDS差错缩减编码方案(TERC4),该方案能够将每个通道的四位编码转换为串行化的形式并发送至十个位数的位置。

复制代码
    case (D3, D2, D1, D0):
    0000: q_out[9:0] = 0b1010011100;
    0001: q_out[9:0] = 0b1001100011;
    0010: q_out[9:0] = 0b1011100100;
    0011: q_out[9:0] = 0b1011100010;
    0100: q_out[9:0] = 0b0101110001;
    0101: q_out[9:0] = 0b0100011110;
    0110: q_out[9:0] = 0b0110001110;
    0111: q_out[9:0] = 0b0100111100;
    1000: q_out[9:0] = 0b1011001100;
    1001: q_out[9:0] = 0b0100111001;
    1010: q_out[9:0] = 0b0110011100;
    1011: q_out[9:0] = 0b1011000110;
    1100: q_out[9:0] = 0b1010001110;
    1101: q_out[9:0] = 0b1001110001;
    1110: q_out[9:0] = 0b0101100011;
    1111: q_out[9:0] = 0b1011000011;
    endcase;

5.4.4 视频数据编解码

5.4.4.1 视频数据编码

在视频数据传输期间所采用的编码算法进行了详细说明,在此过程中对其进行了全面阐述。其他实现虽然也是可行的选择但必须满足特定条件即当输入相同的字符序列时则必须生成与前述编码器一致的结果(即10位长度)。

在每秒 thirty-two 千赫z 的视频流中,在每十个像素单位内(即八比特的空间中),每个码元都能够在保持接近于零的整体偏移量(DC offset)的同时实现对原始信号的有效重建,并且能够显著减少因采样而产生的图像质量下降现象的发生频率。整个有效数据周期内的编码操作可分为两个关键步骤:首先,在这一级编码过程中将输入的数据块映射为长度为 nine bits 的优化码字序列;然后,在下一阶段则生成一个十一位代码字,在此过程中完成了一个综合考虑了整体偏移量与传输效率的最佳TMDS控制符生成。

由编码器第一级产生的9位码是由输入8比特中发现并进行转化后得到的一组8比特数据再加上一位标志符来标识这两种情况中哪一种被用来描述过渡过程。
在这两种情形下,
输出端的有效最低有效二进制数与输入端的有效最低有效二进制数是相同的。
在初始化阶段,
输出码剩余后的7比特数据是从具有先前处理过的二进制位置上的每一位依次应用异或运算或者非异或运算得到的结果。
通过选择使用异或将非异或其他逻辑组合来决定如何生成这些剩余7比特数据,
从而使得整个编码值所包含的信息量达到最小化。
最后,
这9比特的数据仅仅是通过应用异或是非异或其他逻辑组合于相邻两位数据上得到的结果,
而其中最末尾的一比特则用来标识究竟采用的是哪种运算方式来生成最终的数据。

编码器采用选择性地反转的方式处理来自一级的第一级9位代码字中的8个数据位以实现接近直流平衡的功能这一过程十分高效

在输入视频数据周期时,编码器将数据流视差(cnt)视为零。

Table 5-35 Encoding Algorithm Definitions

标识 描述
D 编码器输入数据组。 D是8位像素数据
cnt 这是一个用于跟踪数据流差异的寄存器。 正值表示已发送的超过“1”的数字。 负值表示已发送的超出“0”的数字。 表达式cnt {t-1}表示前一组输入数据的差异的先前值。表达式cnt(t)表示当前输入数据组的新视差设置。
q_m 中间值
q_out 这10位是编码的输出值。
N1{x} 该运算符返回参数“x”中“1”的个数
N0{x} 该运算符返回参数“x”中“0”的个数
TMDS_VDEA
5.4.4.2 视频数据解码

TMDS 解码映射可参考图 5-8 展示。选择性实施方案可能是可行的,在面对相同的数据流量时,这些方案必须产生与该解码器算法一致的输出数据序列。

TMDS_VDA

6 视频

6.1 概览

全部评论 (0)

还没有任何评论哟~