HDMI协议介绍(二)--DataIsland Packets

前言

前文简单介绍了HDMI传输的三个周期:控制周期、DataIsland周期和Video周期。DataIsland传输音频和辅助数据,这些数据以Packet的形式传输。本文简单介绍DataIsland Packet。


目录

前言

 数据岛概述

 数据岛包的构造

Packet Header

Paket Body 

DataIsland Packets

空包(Null Packet)

Audio 时钟重生成包(ACR)

 Audio采样包(Audio Sample Packet)

帧信息InfoFrame

通用控制包


数据岛概述

数据岛用来携带音频和辅助数据的报文,辅助数据包括信息帧和描述活动视频或者音频流或者信源端的信息。

每个数据岛包括三个部分:前导保护段Leading GB、PacketHeader+PacketBody、末尾保护段Trailing GB。

其中PH和PB的发送:

  • TMDS 通道0的bit2发送数据包头(packet header)
  • TMDS通道1和2的4个bit发送数据包(packet body)

 

 数据岛包的构造

包括一个报文头报文体(包含 4个子包)和相关的差错纠正位

每个子包含有56bit的数据和8bit的ECC校验位组成。子包 0 加上它的奇偶校验位构成 BCH 块 0,这个块映射到通道 1 和通道 2 的bit0。

同样地,BCH 块 1(子包 1 加上它的奇偶校验位)映射到通道 1 和通道 2 的bit1上。

对于包头即BCH block4映射到通道0的bit2,包括3个byte共24bit,以及8bit ECC。

Packet Header

报文头包含 24 个数据位,附加 8 位 BCH(32,24) ECC 校验。

其中24bit的数据分为8bit的报文类型和16bit的报文,如下图。

报文类型表格如下:

举个栗子:

HB0=0x82、HB1=0x02、HB2=0x0D

Paket Body 

包体部分的具体组成分为四个子包,一共是28个PB0~PB27。

 还是举个例子:以下是AVI packet的包体,各个bit位代表不同含义,28个PB不一定都用的上,有的是预留以后扩展用的。其他的packet也类似,需要和pacet header的类型一起组合使用。

 HDMI中的pacet有很多,常用的或者说调试HDMI最基础的就几个pacets,有些高级特性在调试的前期不需要考虑。传输Video用到AVI Packet,传输Audio要用到Audio Packet和ACR。

 

DataIsland Packets

空包(Null Packet)

source端可以在任何时候使用空包。空包的字节是未定义的,其包内都是 0 值。HDMI sink端应该忽略空包的包头 HB1 和 HB2,以及空包体中的全部字节。

Audio 时钟重生成包(ACR)

包头中只有包类型,没有报文数据,Sink设备应该忽略HB1和HB2。

包体中包含N和CTS(cycle time stamp),在生成音频时钟的时候会用到这两个值。

 Audio采样包(Audio Sample Packet)

音频采样包携带 LPCM 和 IEC61937 压缩音频格式的数据。音频包包括 1 到 4 个音频采样。这些音频采样可能是不同的音频,也可能是同一音频的不同部分(比如 6 声道的 2 个声道数据)。

帧信息InfoFrame

CEA-861D 定义的所有的信息帧都可以在 HDMI 的信息帧中传输。

通用控制包

包头只有包的类型,没有报文数据,Sink端应该忽略HB1、HB2。

包体中包括AVMUTE、CD、PP等信息。

AVMUTE 被用以source端减少TMDS时钟变化或者中断带来的负面影响,比如pop音和噪音。

CD(color depth)用于指示色深:

如果sink端不支持Deep Color模式,CD域应该都设置为零。

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
巴斯勒SDK是一种用于音频和视频编解码的软件开发工具包(Software Development Kit)。它提供了一系列的API和库函数,使开发人员能够在自己的应用程序中实现音视频的录制、播放、转码和编辑等功能。 巴斯勒SDK支持多种音视频格式,其中包括了AVI格式。AVI(Audio Video Interleaved)是一种常用的音视频文件格式,在Windows系统中得到了广泛应用。通过巴斯勒SDK,开发人员可以方便地实现对AVI文件的读取和写入操作。 使用巴斯勒SDK进行AVI文件的处理非常简单。首先,开发人员需要通过SDK提供的函数打开AVI文件,并获取到文件中的音视频流。然后,可以通过SDK提供的函数进行音视频的解码和编码操作,或者进行音视频的剪辑和合并。最后,开发人员可以通过SDK提供的函数将处理后的音视频流写入到新的AVI文件中,从而完成对AVI文件的处理。 巴斯勒SDK除了支持AVI格式外,还支持其他常见的音视频格式,如MP4、MKV和FLV等。因此,开发人员可以根据自己的需求选择最适合的音视频格式,并利用巴斯勒SDK进行相应的开发。 总之,巴斯勒SDK是一款功能强大的软件开发工具包,它提供了便捷的API和库函数,帮助开发人员实现音视频编解码和处理的功能。通过巴斯勒SDK,开发人员可以轻松地对AVI格式的音视频进行处理,并实现各种应用程序中的音视频功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值