HDMI协议介绍(三)--InfoFrame
目录
Auxiliary Video information (AVI) InfoFrame
AVI InfoFrame包结构
Header
Body
举个例子
附录
Audio InfoFrame
Audio InfoFrame包结构
Header
Body
Vendor Specific InfoFrame
Vendor Specific InfoFrame包结构
Header
Body
AVI/AUDIO/VSI Infoframe都是HDMI的辅助数据类别,HDMI遵循CEA-861规范,CEA 第八章--CONTROL AND CONFIGURATION 8.2定义了三种InfoFrame。
一个InfoFrame packet载送一个InfoFrame,根据HDMI协议规范,其大小为30字节+一个CheckSum。
Auxiliary Video information (AVI) InfoFrame
AVI InfoFrame 是HDMI Source向Sink传递当前视频流特性的一种InfoFrame。要求是至少每两帧图像就要传输一次AVI InfoFrame。Source端没有明确要求传输AVI InfoFrame,HDMI协议的建议是传输。
AVI InfoFrame是为了实现显示自动化的一种机制或方法
AVI InfoFrame包结构
Header
以下参考HDMI1.4协议
HB0=0x82
HB1=0x02
HB2=0x0D
Body
CEA-861-D中AVI InfoFrame定义:
PB1[6:4]
Y1 | Y0 | RGB or YUV |
0 | 0 | RGB(default) |
0 | 1 | YUV422 |
1 | 0 | YUV444 |
1 | 1 | RSV |
CEA-861-F中AVI InfoFrame定义:
PB1[7:4]
Y2 | Y1 | Y0 | RGB or YUV |
0 | 0 | 0 | RGB(default) |
0 | 0 | 1 | YUV422 |
0 | 1 | 0 | YUV444 |
0 | 1 | 1 | YUV420 |
1 | 0 | 0 | RSV |
1 | 0 | 1 | RSV |
1 | 1 | 0 | RSV |
1 | 1 | 1 | IDO-Defined |
举个例子
HDMI QPTX的寄存器PKT_AVI_CONTENTS1 =0x9824102a
PB0=0x2a(CheckSum)
PB1=0x10
PB2=0x24
PB3=0x98
各bit位参考CEA、HDMI协议进行解析:
Y1Y0=00(RGB格式)、A0=1(Active Format Information Present R0~R3)、B1B0=00(Bar Data not valid)、S1S0=00(Scan no data)
C1C0=00(Colorimetry no data)、M1M0=10(Picture Aspect Ratio 16:9)、R3R2R1R0=1000(Same As Picture Aspect Ratio )
ITC=1(IT content)、EC2CE1EC0=000(xvYcc601)、Q1Q0=10(Full Range)、SC1SC0=00(未统一缩放)
附录
CEA-861-D中第8章AVI InfoFrame相关定义
Audio InfoFrame
Audio InfoFrame 是HDMI Source向Sink传递当前音频流特性的一种InfoFrame。要求是至少每两帧图像就要传输一次Audio InfoFrame。Audio InfoFrame的传输可以是Data Island周期的任何时刻。
HDMI在音频的传输上,packet包的标准是按照IEC60958或者IEC61938来的。
Audio InfoFrame是为了实现音频自动化的一种机制或方法--by 鲁迅
Audio InfoFrame包结构
Header
HB0 = 0x84
HB1 = 0x01
HB2 = 0x0A
Body
PB0 : CheckSum
PB1:定义了Audio的编码类型和通道数量
PB2:定义了Audio的采样频率和深度
PB3:在CEA-861-D中是RSV,设置为0即可。
PB4、PB5:只有在多channel的时候使用。
PB4定义多通道情况下扬声器位置与声道关系。
PB5:Level Shift Value
Vendor Specific InfoFrame
Vendor Specific InfoFrame的传输是可选的,如果source要传输VSI,要求是至少每两帧图像就要传输一次VSI。
Vendor Specific InfoFrame包结构
Header
HB0 = 0x81
HB1 = 0x01
HB2 =length(占用5bits)
Body
PB0: CheckSum
PB1、PB2、PB3:0x000C03 HDMI Licensing,LCC
PB4:HDMI_Video_Format指示是否有扩展的分辨率格式
HDMI_Video_Format = 001 时再去解析PB5:
相关文章:
HDMI协议介绍(三)--InfoFrame
目录 Auxiliary Video information (AVI) InfoFrame AVI InfoFrame包结构 Header Body 举个例子 附录 Audio InfoFrame Audio InfoFrame包结构 Header Body Vendor Specific InfoFrame Vendor Specific InfoFrame包结构 Header Body AVI/AUDIO/VSI Infoframe都…...
【RocketMQ】源码详解:Broker端消息储存流程、消息格式
消息存储流程 入口: org.apache.rocketmq.remoting.netty.NettyRemotingAbstract#processRequestCommand org.apache.rocketmq.broker.processor.SendMessageProcessor#asyncProcessRequest 消息到达broker后会经过netty的解码、消息处理器等,最后根据…...
IoT项目系统架构案例2
项目背景 1.这个项目是对之前的案例的升级改造参考:IoT项目系统架构案例_iot案例_wxgnolux的博客-CSDN博客2.基于方案1的项目实施过程中碰到的问题,对硬件设备标准化的理念及新的功能需求(如根据天气预报温度调水温,APP界面可操作性优化等)•采用目前IoT主流厂商的架…...
Vue echarts封装
做大屏的时候经常会遇到 echarts 展示,下面展示在 Vue2.7 / Vue3 中对 echarts (^5.4.0) 的简单封装。 文章首发于https://blog.fxss.work/vue/echarts封装.html,样例查看 echarts 封装使用 props 说明 参数说明类型可选值默认…...
蓝桥杯入门即劝退(二十二)反转字符(不走寻常路)
欢迎关注点赞评论,共同学习,共同进步! ------持续更新蓝桥杯入门系列算法实例-------- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章…...
数据仓库Hive
HIve介绍 Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载,可以简称为ETL。 Hive 定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户直接查询Hadoop中的数据…...
嵌入式 STM32 步进电机驱动,干货满满,建议收藏
目录 步进电机 1、步进电机驱动原理 2、步进电机驱动 3、步进电机应用 1、第一步:初始化IO口 2、设置行进方式 四、源码 步进电机 步进电机被广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业…...
详讲函数.2.
目录 5. 函数的嵌套调用和链式访问 5.1 嵌套调用 5.2 链式访问 小结: 6. 函数的声明和定义 6.1 函数的声明: 6.2 函数的定义: 5. 函数的嵌套调用和链式访问 函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的…...
行测-判断推理-图形推理-位置规律-旋转、翻转
短指针每次逆时针旋转60(排除法选C走人)长指针每次顺时针旋转120选C左上菱形每次顺时针旋转90(排除C D)右上每次旋转180(选B走人)左下每次保持不变右下每次逆时针旋转90选B左上和右上为左右翻转,…...
linux shell 入门学习笔记15 shell 条件测试
概念 shell的条件测试目的是得出真和假。 shell 提供的条件测试语法 test 命令 [] 中括号命令 语法*: test条件测试 test命令用来评估一个表达式,他的结果是真,还是假,如果条件为真,那么命令执行状态结果就为0&…...
Apollo(阿波罗)分布式配置安装详解
Apollo(阿波罗) Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性&#…...
Vue3之组件
何为组件 组件化的概念已经提出了很多年了,但是何为组件呢?组件有啥优势?本文将会做出解答,首先我们需要弄清楚何为组件。在VUE的官网中的解释是: 组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对…...
【网络】套接字 -- UDP
🥁作者: 华丞臧. 📕专栏:【网络】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文章…...
Lambda原理及应用
Lambda原理及应用 Lambda介绍 Lambda 是 JDK8 以后版本推出的一个新特性,也是一个重要的版本更新,利用 Lambda 可以简化内部类,可以更方便的进行集合的运算,让你的代码看起来更加简洁,也能提升代码的运行效率。 Lambda语法 非…...
运动耳机推荐、最值得入手的运动耳机清单共享
现在市面上各式各样的运动蓝牙耳机着实让人挑花了眼,怎样才能从纷繁复杂的市场中挑选出专业性、安全性、舒适性等各个方面都做地可圈可点的运动蓝牙耳机可真不是一件易事啊,甚至连不少老朋友都会踩坑,为了能让大家挑到真正的运动蓝牙耳机,为此…...
c盘爆满--如何清理电脑C盘
问题 c盘饱满很多天了,今天终于忍无可忍,开始展开对c盘的处理 c盘的基本处理有两步, 第一步,电脑系统清理 1,c盘右键属性,有个磁盘清理,好像是系统更新的一些缓存资源,可以直接清理 当然这只…...
Nginx配置web服务器及部署反向代理
Nginx配置web服务器及部署反向代理配置web服务器location语法部署反向代理代理转发配置web服务器 项目部署到linux上的静态文件代理给Nginx处理。当访问服务器IP时,可以自动返回静态文件主页。 主配置文件中server块对应的次配置include /etc/nginx/conf.d/*.conf…...
mvvm和mvc
mvvm是model-view-viewmodel的缩写,前端开发的架构模式 m: model:模型,指的是数据和交互业务逻辑 v: view:视图,用户看到的ui界面 vm: viewmodel:视图模型࿰…...
JavaScript while 循环
JavaScript while 循环的目的是为了反复执行语句或代码块。只要指定条件为 true,循环就可以一直执行代码块。while 循环while 循环会在指定条件为真时循环执行代码块。语法while (条件){需要执行的代码 }实例本例中的循环将继续运行,只要变量 i 小于 5&a…...
CMU15-445 Project.0总结
在线测试 本地测试 Project #0 - C Primer 以下是Project #0的网址,2022FALL的Project #0本质上是实现一棵字典树,关于字典树的相关内容可以参考C实现字典树。 在本题中,为了存储对应着字符串的任意类型值,题目设计了一个Tri…...
计算机网络题库---错题本
(一)老生常谈 第一章: 1.什么是计算机网络?其主要功能是什么? 解答: 利用通信设备和线路,将分布在地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网…...
【react】react创建项目与引入AntD组件库:
文章目录一、初始化项目:【1】创建项目【2】暴露项目配置文件【3】安装依赖【4】配置less二、快捷键:【1】rcctab三、安装AntD组件库:【1】安装【2】index.js【3】问题:【4】效果:一、初始化项目: 【1】创…...
hook与mixin
看完vue3就开始看vue3的源码,表示很懵~ 刚把rollup打包搞完,这不响应式就接着来了!,还是写篇直接使用vue3的博客清清脑吧! 什么是hook、mixin? mixin: Vue2中多个组件内存在重复JS业务逻辑,使…...
【C语言】自定义类型
一、什么是自定义类型C语言提供了丰富的内置类型,常见的有int, char, float, double, 以及各种指针。除此之外,我们还能自己创建一些类型,这些类型称为自定义类型,如数组,结构体,枚举类型和联合体类型。二、…...
没有上司的舞会(C++,树形DP)
题目描述 某大学有 nnn 个职员,编号为 1…n1\ldots n1…n。 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。 现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 ri…...
【java基础】static和final关键字的作用及其用法详解
文章目录static关键字静态字段静态方法静态代码块静态内部类final关键字final字段final方法final类static关键字 这个关键字表示静态的,用于不同地方意思不一样 静态字段 如果我们将其作用到字段上,那么该字段为类所拥有,我们使用new关键字…...
#集成学习#:bagging、boosting、stacking和blending
集成学习是一种机器学习方法,旨在提高单个模型的性能和鲁棒性。它基于这样一个假设:通过结合多个模型的预测结果,可以获得更好的预测性能,因为每个模型都可能从数据中提取不同的信息,因此他们的错误也可能是不同的&…...
NCRE计算机等级考试Python真题(一)
第一套试题1、关于数据的存储结构,以下选项描述正确的是A.数据所占的存储空间量B.数据在计算机中的顺序存储方式C.数据的逻辑结构在计算机中的表示D.存储在外存中的数据正确答案: C2、关于线性链表的描述,以下选项中正确的是A.存储空间不一定…...
C#协变逆变
文章目录协变协变接口的实现逆变里氏替换原则协变 协变概念令人费解,多半是取名或者翻译的锅,其实是很容易理解的。 比如大街上有一只狗,我说大家快看,这有一只动物!这个非常自然,虽然动物并不严格等于狗…...
算法设计与分析期末考试复习(四)
贪心算法(Greedy Algorithm) 找零钱问题 假设有4种硬币,面值分别为:二角五分、一角、五分和一分,现在要找给顾客六角三分钱,如何找使得给出的硬币个数最少? 首先选出1个面值不超过六角三分的最…...
wordpress web user/海南seo
在Linux上设置IPv6非常简单,您可以遵循IPv4准则并为自己提供静态IPv6地址.在Solaris上,事情并不乐观,IPv6仅在运行in.ripng后才能运行.运行此命令后,您将在本地LAN网段上获得IPv6地址自动配置.因此,虽然我为一个静态IPv6地址配置了Solaris,但我最终得到了三个,链接本地范围,静态…...
庆阳市门户网/哈尔滨seo网站管理
使用ZFPlayer过程中遇到的一些问题及解决办法参考文章: (1)使用ZFPlayer过程中遇到的一些问题及解决办法 (2)https://www.cnblogs.com/sundaysgarden/articles/9080478.html 备忘一下。...
网站界面设计实验报告/百度百科词条创建入口
1. 什么是爬虫?首先应该弄明白一件事,就是什么是爬虫,为什么要爬虫,百度是这样解释的:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是…...
装修案例分享的文案/西安seo管理
协程的演变其实早在 Python3.4 的时候就有协程,当时的协程是通过 asyncio.coroutine 和 yeild from 实现的。在一些很老教程中你可能看到的是下面这种形式:import asyncioasyncio.coroutinedef print_hello():print("Hello world!")r yield from asyncio.sleep(1)pr…...
制作网站电话/长春seo
HDLBits——Basics Simple wire 要求: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xVLSIS1l-1637764502113)(https://hdlbits.01xz.net/mw/thumb.php?fWire.png&width800)] Solution: module top_module( input …...
企业建网站报价/百度推广关键词技巧定价
中关村在线消息:华为今日发布了2019年上半年业绩:上半年销售收入4013亿元,同比增长23.2%。其中消费者业务2208亿元,占比55%。华为今年上半年智能手机发货量(含荣耀)达到1.18亿台,同比增长24%。华为董事长梁华表示&…...