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

news2024/9/24 21:23:26

前言

前文简单介绍了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域应该都设置为零。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从0开始学python -40

Python3 面向对象-3 类属性与方法 类的私有属性 __private_attrs :两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs 。 类的方法 在类的内部,使用 def 关键字…

Linux驱动——设备模型

目录 一、起源 二、新方案 2.1 sysfs: 2.2 uevent 三、代码中自动mknod 四、实例 一、起源 仅devfs,导致开发不方便以及一些功能难以支持:(硬编) 1. 热插拔(插上usb设备就立马能安装驱动) 2. 不支持…

蓝桥杯2015年第六届真题-奇怪的数列C++

题目:从X星截获一份电码,是一些数字,如下:13111331131321131113122113....YY博士经彻夜研究,发现了规律:第一行的数字随便是什么,以后每一行都是对上一行“读出来”比如第2行,是对第…

hadoop网站流量日志数据统计

系统背景介绍 数据提供企业决策能力 网站日志的数据分析------》受欢迎程度如何评价你这个网站的受欢迎程度 用数据 下载的人多了 观看的人多了 通过Hadoop 对某个网站产生的日志数据流量进行统计分析 得出该网站的访问流量 继而做出决策我们可以采用flume收集nginx的success文…

AcWing算法提高课-2.1.1池塘计数

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 农夫约翰有一片 N∗M 的矩形土地。 最近&#xff0c;由于降雨的原因&#xff0c;部分土地被水淹没了。 现在用一个字符矩阵来表示他的土地。 每个单元格内&…

EasyRecovery16最新免费版电脑数据恢复软件功能介绍

EasyRecovery是一款支持Windows/Mac平台进行恢复图片的专业工具&#xff0c;尤其是各种流行单反相机RAW格式文件&#xff0c;以及超大型视频文件等&#xff0c;推荐摄影爱好者使用。适用于主流相机、无人机、PC、存储卡、USB 闪存驱动器等&#xff0c;由于删除、损坏或意外格式…

【项目精选】医院管理住院系统的研究与实现(源码+论文+视频)

点击下载源码 本系统主要分为六大模块&#xff0c;分别是医生管理模块、病人管理模块、病床管理模块、收费管理模块、统计分析模块和系统功能模块 &#xff0c;医生、病人和医院的管理人员都可以通过此系统寻找出自己所需要的信息。 1.1 背景 医院管理住院系统是当今大部分现代…

Nginx安装及介绍

前言&#xff1a;传统结构上(如下图所示)我们只会部署一台服务器用来跑服务&#xff0c;在并发量小&#xff0c;用户访问少的情况下基本够用但随着用户访问的越来越多&#xff0c;并发量慢慢增多了&#xff0c;这时候一台服务器已经不能满足我们了&#xff0c;需要我们增加服务…

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲天然蓄水库 or 天然蓄水池题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明示例三输入输出说明Python 代码实现算法思路华为OD机试300题大纲 参加华为

Android 分区和内存监控

Andorid之所以是分区&#xff0c;是因为各自有对应的功能和用途的考量&#xff0c;可以进行单独读写和格式化。Android 设备包含两类分区&#xff1a;一类是启动分区&#xff0c;对启动过程至关重要。一类是用户分区&#xff0c;用于存储与启动无关的信息。启动分区boot 分区一…

HTML综合案例练习

一、展示简历内容 可以首先看一下我们的效果&#xff0c;之后再思考怎么实现 总的来说&#xff0c;这个练习不算难。 这里关于这个简历的代码编写我们不说太多&#xff0c;只注意以下几个内容即可&#xff1a; 注意及时查看我们的代码是否符合预期&#xff0c;即一段一段测 …

@ModelAttribute注释,接收用户不能做出修改的值,定义好值不变化

举例&#xff1a;有时候我们做修改的时候&#xff0c;比如用户的生日&#xff0c;和姓名用身份证验证之后就默认了你的资料&#xff0c;后期在修改个人资料的时候是不允许修改的&#xff0c;只能修改兴趣等等......1.设置实体类User&#xff0c;定义好属性&#xff0c;以及get,…

进程优先级(Linux)

目录 优先级VS权限 基本概念 查看系统进程 几个重要信息 PRI and NI PRI vs NI top命令 上限&#xff1a; 详细步骤 下限&#xff1a; 其他概念 优先级VS权限 权限&#xff1a;能or不能 优先级&#xff1a;已经能&#xff0c;但是谁先谁后的问题&#xff08;CPU资源有…

(十七)操作系统-进程同步、互斥

文章目录一、知识总览二、进程同步三、进程互斥1. 临界资源2. 互斥3. 对临界资源的互斥访问&#xff0c;在逻辑上分为四个部分4. 为了实现对临界资源的互斥访问&#xff0c;同时保证系统整体性能&#xff0c;需要遵循的原则五、总结一、知识总览 二、进程同步 同步亦称直接制约…

Kubernetes学习笔记-pod与集群节点的自动伸缩20230225

前言pod手动横向扩展&#xff1a;通过ReplicationController、ReplicaSet、Deployment等可伸缩资源的replicas字段&#xff0c;来手动实现pod中应用的横向扩展。pod纵向扩展&#xff1a;通过增加pod容器的资源请求和限制&#xff08;pod创建时&#xff09;pod自动横向扩展&…

Allegro如何快速把视图居中显示操作指导

Allegro如何快速把视图居中显示操作指导 用Allegro进行PCB设计的时候,为了方便检查和设计,时常需要将视图居中显示。一般地,会使用鼠标的中键进行放大和缩小,或者使用Zoom in和Zoom out来调整视图 Allegro还支持快速将视图居中 具体操作如下 点击View

Flume三种组件的选择对比

文章目录1.source2.channel3.sink1.source Source: 数据源:通过source组件可以指定让Flume读取哪里的数据&#xff0c;然后将数据传递给后面的 channel Flume内置支持读取很多种数据源&#xff0c;基于文件、基于目录、基于TCP\UDP端口、基于HTTP、Kafka的 等等、当然了&#x…

基于Windows下离线安装当前最新Arduino ESP32 SDK(2.0.7)固件开发包

基于Windows下离线安装当前最新Arduino ESP32 SDK&#xff08;2.0.7&#xff09;固件开发包✨写这篇的文章的初衷&#xff0c;是由于在前几天想通过离线一键安装包方式实现升级安装&#xff0c;结果发现解压后&#xff0c;可以找到开发板&#xff0c;但是无法上传代码&#xff…

JavaSe第3次笔记

1.String str "hello";字符串类型。 2.两个字符串类型相加意思是拼接&#xff0c;类似于c语言里面的strcat函数。 3.整型变成字符串类型: int a 10; String str String. valueOf(a); 4.当字符串和其他类型进行相加的时候&#xff0c;结果就是字符串。(不完全…

imporve-3

JSX语法糖本质 JSX是语法糖&#xff0c;通过babel转成React.createElement函数&#xff0c;在babel官网上可以在线把JSX转成React的JS语法 首先解析出来的话&#xff0c;就是一个createElement函数然后这个函数执行完后&#xff0c;会返回一个vnode通过vdom的patch或者是其他的…