HDMI学习笔记

2023-11-04

一、HDMI 基本介绍

对于初学者先了解VGA,再来看HDMI会更容易理解,有关VGA原理在我的博客中有详细说明。FPGA-VGA显示
HDMI,高清晰度多媒体接口(High Definition Multimedia Interface)是标准的数字化视频/音频接口技术,可用于机顶盒、DVD播放机、个人电脑与电视机。HDMI可以同时传送音频和影音信号,能高品质地传输未经压缩的高清视频和多声道音频数据,最高数据传输速度为 50Gbps 左右。
  HDMI 向下兼容 DVI,但是 DVI(数字视频接口)只能用来传输视频,而不能同时传输音频,这是两者最主要的差别。此外,DVI 接口的尺寸明显大于 HDMI 接口,如下图所示
  在这里插入图片描述
在这里插入图片描述

VGA、DVI、HDMI相互转换的说明:

1、VGA和DVI互转:模拟信号和数字信号的转换,视频信号损失,造成失真。最好不要这样转换。

2、DVI和HDMI互转:都是数字信号,转换不会发生失真。可以转换。但是从HDMI转换成DVI时会自动舍去音频信号。

HDMI引脚:
HDMI有A,B,C,D,E五种引脚类型,目前市面中比较常见的就是Type A
在这里插入图片描述

  • 1-9 都是TMDS数据传输实际上用到的引脚,分为0,1,2三组
  • 10-12 为TMDS时钟信号,如当前Video Timing为480p@60Hz(Htotal:800,Vtotal:525),则TMDS clock = 800x525x60 = 25.2MHz。TMDS clock就像是对像素的打包,一个clock分别在三个Channel传输一个像素的R、G、B(8bit)信号。
  • 13 为CEC(consumer electronic control)类似一种扩展的HDMI功能,供厂家自己定制HDMI消息,(比如说你有一台sony的DVD与TV,两者用HDMI线接上,如果你用TV的遥控器可以控制DVD,另DVD执行某种功能,那么该功能的命令信号就是通过TV与DVD间的CEC引脚传输的)
  • 14 为保留引脚,未使用(或者也可以为CEC提供多一个引脚)
  • 15-16 为I2C引脚,用于DDC(Display Data Channel,主要用于EDID与HDCP的传输)传输。在HDMI的流程中,DDC通信几乎是最先做的(前有Hotplug),因为HDMI的主从两个设备需要通过DDC来获得他们对方设备的EDID,从而得到各种信息,并且通过比较timming以确定以后送出来的timming为最合适的
  • 17 为接地引脚
  • 18 为5v的AC引脚
  • 19 为Hotplug(热拔插)引脚(用于监测HDMI设备有没有存在,如果存在(Hotplug为high)那么可以通过DDC去读EDID),HDMI有规定在HDMI 5vAC断电时source device可以读reciever device的EDID,也就是需要Hotplug为High。其中有两种Hotplug相关的情况会导致HDMI被识别为DVI:
    1. Hotplug为High,不过EDID并没有准备好,那么信号源设备会由于无法读到EDID而认为接收设备为DVI,这样会导致HDMI有图像无声的问题。
    2. Hotplug为Low,也会导致信号源无法读到EDID而认为接收设备为DVI,从而导致HDMI有图无声
    3. 在TV这种有多个HDMI通道的情况下,有时会在多个HDMI通道进行切换,切换后HDMI通道应当先初始化,即先把Hotplug拉低,通知HDMI source device之前所用的EDID已经改变,需要重新读取,那么source device在Hotplug被拉高的时候会去读取新的EDID,但是拉低这个过程至少需要100ms,否则source device有可能不会去读取新的EDID,从而输出DVI信号

下图为 HDMI 链路的框架图:
在这里插入图片描述

二、TMDS基本介绍

过渡调制差分信号,也被称为最小化传输差分信号,是指通过异或及异或非等逻辑算法将原始信号数据转换成 10 位,前 8 位数据由原始信号经运算后获得,第9位指示运算的方式,第 10 位用来对应直流平衡(DC-balanced,就是指在编码过程中保证信道中直流偏移为零,电平转化实现不同逻辑接口间的匹配),转换后的数据以差分传动方式传送。

TMDS 的链路要有两部分:source 和 sink 端,source 端为传输数据的起始端,sink 端为传输数据的目的端。同时链路由四条通道组成,分别为蓝色通道、、绿色通道、红色通道和时钟通道。
在这里插入图片描述

蓝色通道

蓝色通道包含8位的蓝色数据通道,两位的行同步和场同步信号,以及四位的音频信号。

绿色通道

绿色通道包含8位的绿色数据通道,两位的控制信号,以及四位的音频信号。

红色通道

红色通道包含8位的红色数据通道,两位的控制信号,以及四位的音频信号。

时钟通道

为了使source端和sink端的数据保持在同一个pixel clock下,便于数据的稳定发送和接收。

在 source 端:每个通道的中还包含 Encoder 和 Serializer 模块,即编码模块和并转串模块,对应到 sink 端为解码模块和串转并模块。

在编码阶段:编码器将视频源中的像素数据、HDMI的音频/附件数据,以及行、场同步信号分别编码成10位的字符流。

在并串转换阶段将上述的10位字符流转换成串行数据流,并将其从三个差分输出通道发送出去。这个10:1的并转串过程所产生的串行速率是实际像素时钟速率的10倍。但是在并转串中采用的为DDR即双沿采样,因此时钟频率可以减小为原来的一半,也就是像素时钟的 5 倍。

三、传输流程

HDMI TMDS传输的数据类型有三种(加上Hsync与Vsync就算4种):

  • Preamble(控制信息),主要用于控制接下来传输的数据是Data Island或者Video Data
  • Data Island(数据包),各种类型的包信息,包括音频数据包,图像信息包等
  • Video Data (视频信息),视频像素数据,HDMI可以传输RGB与YUV两种格式的像素数据
  • Hsync与Vsync

如果是8bit的数据进入TMDS编码器,得到抗干扰性强的10bit TMDS信号,然后再进行串行化输出;在接收端收到串行的HDMI信号后,进行信号复原,得到10bit的TMDS信号,最后用TMDS解码器解码得到原来的8bit数据。

总体传输流程如下:
在这里插入图片描述

传输对象 bit 说明
Video Data 24bit Channel0[7:0]传输B,Channel1[7:0]传输G,Channel2[7:0]传输R
Data Island 10bit Channel0[3:2]用于传输Data Island Header(包头),Channel1[3:0]与Channel2[3:0]用于传输Data Island Content(包内数据)
Preamble 4bit Channel1[1:0]与Channel2[1:0]分别为CTL0,CTL1,CTL2,CTL3,用于判断接下来输入的是Video Data或者Data Island
Hsync与VSync 2bit Channel0[0]为Hsync,Channel0[1]为Vsync
CTL0 CTL1 CTL2 CTL3 Data Period Yype
1 0 0 0 Video Data Period
1 0 1 0 Data Island Period

四、传输周期

HDMI的TMDS数据传输可以分为三个传输周期:
在这里插入图片描述

  1. Control Period期间会传输Hsync,Vsync,并且在该时期的最后阶段会传输Preamble
  2. Data Island Period期间会传输Data Island(数据包),也会有Hsync与Vsync
  3. Video Data Period期间会传输Video Data(视频像素数据)

一帧总体周期:
在这里插入图片描述
三个传输周期的过渡如下:
在这里插入图片描述

左边 中间 右边
Control Period Data Island Period Data Island Period
传输有Hsync,Vsync与Preamble 传输有Hsync,Vsync,以及两个Packet Header与Packet(每32个clock 一个packet);另外Data Island的两端会用Guard Band保护并隔开Data Island的数据,因为这个阶段传输的数据大多是非常重要的,比如其中就有图像分辨率,决定后面的Video Data数据的显示方式 传输有Hsync,Vsync,以及两个Packet Header与Packet(每32个clock 一个packet);另外Data Island的两端会用Guard Band保护并隔开Data Island的数据,因为这个阶段传输的数据大多是非常重要的,比如其中就有图像分辨率,决定后面的Video Data数据的显示方式

五、Data Island Packet结构

在这里插入图片描述
所有Data Island Packet都以32个时钟脉冲为一个周期,也就是说每32 clk传输一个包。
说明:

bolck 传输通道 说明
包头(Packet Header BCH block 4 Channel0[2] 前三个byte为包头,最后一byte为校验码
包体(Packet Body BCH block 0,1,2,3 Channel1,Channel2 共8根线传输,共有28byte包体与4byte的校验码

Parity Bits校验码是用于检验HDMI Cable传输过程中是否发生了错误,如果该Packet在HDMI接收端校验错误,如果只有一个bit的错误,那么可以修正,超过1bit的错误会被判别为无效Packet(由于HDMI是一直在发送数据因此无法重发错误Packet)
所以在接收端,在解完包之后,需要取出各个BCH block的Parity bit,进行Calibration(校验)

六、Audio Clock

七、HotPlug

八、HDMI Sink

九、HDMI版权内容保护之HDCP

十、模块编码

每一个数据通道都通过编码算法,将 8 位的视、音频数据转换成最小化传输、直流平衡的 10 位数据。这使得数据的传输和恢复更加可靠。最小化传输差分信号是通过异或及异或非等逻辑算法将原始 8位信号数据转换成 10 位,前 8 为数据由原始信号经运算后获得,第 9 位指示运算的方式,第 10位用来对应直流平衡。这种算法可以减小传输信号过程的上冲和下冲,什么是上冲和下冲呢,顾名思义上冲就是由0转变为1,下冲就是由1转变为0,如果频繁的上下冲就会导致信号传输不稳定,而DC平衡使信号对传输线的电磁干扰减少,DC平衡指的是在码流中0和1的个数相当。总结来说,信号频繁的0、1变化和0和1数量不均衡都会影响信号的质量,编码的目的就在于此。

在这里插入图片描述
参考 HDMI介绍与流程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDMI学习笔记 的相关文章

  • 【计算机基础】面试常问之进程、线程和协程

    文章目录 背景 为什么会有进程 线程和协程 1 进程的出现 2 线程的出现 3 协程的出现 1 进程 Process 1 1 什么是进程 程序与进程的区别 特点 1 2 进程通信及使用场景 无名管道 pipe 命名管道 FIFO 消息队列
  • 什么是区块链?为什么需要区块链?

    从个故事开始吧 第一章 信任 账本时代的故事 小王问你借100W 答应一年后还你200W 你心动了 可是又怕他不还 于是乎你找到了你们村长做鉴证人 你打了一个借条 上面写着 2018年 月小王借小胡100W 答应2019年 月还小胡200W
  • 服务器系统初始化时间长,企业级-Shell案例1——服务器系统配置初始化

    bin bash 安装系统性能分析工具及其他 yum install gcc make autoconf vim sysstat net tools iostat iftop iotp wget lrzsz lsof unzip opens
  • BUUCTF【Web】LoveSQL

    进入靶场后感觉这个SQL很熟悉 跟之前的第一关easySQL相似 但是这关显然要更难一点 还是用之前的方法 用1 试试发现有回显 所以这一关还是单引号闭合 首先使用万能用户名 密码随便输入 1 or 1 1 得到提示 此时发现他的用户名是a

随机推荐

  • Jetpack学习之Lifecycle

    Jetpack是Google为了解决Android架构问题而引入的 Google官方说的说法 Jetpack是一套库 工具和指南 可以帮助开发者更轻松地编写应用程序 Jetpack中的组件可以帮助开发者遵循最佳做法 摆脱编写样板代码的工作并
  • DVWA不能修改等级问题解决

    在DVWA平台上进行测试时 会出现等级改了 但是有的模块是impossible的情况 我是这样解决的 1 先清空浏览器的缓存 这里可以清空最近的 就是打开DVWA之后的清空就可以了e g 最近一小时 2 退出DVWA 重新登录 3 换了浏览
  • CMakeList实战

    1 FIND PACKAGE FIND PACKAGE
  • PAJ7620U2手势识别——读取手势数据寄存器数据与LED指示(完)

    文章目录 前言 一 如何读取手势数据寄存器数据 二 配置步骤 1 模块状态转移图绘制 2 模块波形图绘制 3 上板验证 4 参考代码 i2c ctrl和paj7620 top 总结 前言 在前面的教程中呢 小编带领各位读者完成了对所有寄存器
  • 客户端与WebApp技术能力对比

    就桌面端应用而言 做客户端还是做纯Web App 哪个方案更好 其实是没有标准答案的 两个方案各有利弊 要求的开发技术和能够实现的产品能力也有差异 我刚刚整理了下面这张表 供大家参考 也欢迎大家批评指正 客户端 Electron Web A
  • Android平台如何高效率实现GB28181对接?

    技术背景 GB28181协议是一种用于设备状态信息报送的协议 可以在不同设备之间进行通信和数据传输 在安卓系统上实现GB T 28181非常必要 GB28181协议实现分两部分 一部分是信令 另外一部分就是媒体数据的编码 信令主要包括SIP
  • 人工智能基础数据服务,第一!

    近日 全球领先的专业咨询服务机构德勤发布 2022年人工智能基础数据服务白皮书 白皮书显示 百度智能云位居人工智能基础数据服务市场份额第一 市场占有率近18 有望持续提升 德勤预计 2027年人工智能基础数据服务市场规模有望达到130 16
  • input.GetAxis 用法

    参考 http blog sina com cn s blog bfa00a970102viu2 html https blog csdn net u013720726 article details 72909862 input GetA
  • json.dump(json_obj, f, ensure_ascii=False),为什么打开json写成了1行,如何格式化多行显示?

    Python 使用自带json库写入json文件时 为什么写入的json文件打开后只有1行 如何使得json文件以格式化方式多行显示 提高可阅读性 在写入JSON文件时 使用json dump序列化JSON对象到文件中 ensure asc
  • Static

    Static 回忆c语言中static的作用 修饰局部变量时延长了局部变量的生命周期 修饰全局变量时限制了全局变量的作用域 修饰函数时限制了函数的作用域 Static修饰成员变量 必须在类内声明在类外定义 原因 static修饰的变量在编译
  • Input.GetAxis();

    Input GetAxis 就是获取鼠标移动相对于上个位置的相对度量值 括号里面填的是相应坐标轴名称 例如 float x Input GetAxis Horizontal Time deltaTime speed float z Inpu
  • 天池大赛中药说明书实体识别挑战冠军方案开源(一)方案及模型原理说明

    目录 Introduction 导言 赛题背景 任务描述 数据探索分析 核心思路 数据预处理 Baseline BERT CRF 优化1 对抗训练 优化2 混合精度训练 FP16 优化3 多模型融合 优化4 半监督学习 其他无明显提升的尝试
  • c#图像常规处理

    using OpenCvSharp using System using System Collections Generic using System Drawing using System Linq using System Xml
  • vue动态渲染echarts,以及多次调用组件数据更新时组件无法同步刷新详解

    数据在vue中是被灵活操作的 当遇到如图这种echarts的数据需要通过接口获取 并且进行相应的删除和添加操作时 echarts的数量与数据要与数据同步刷新 想要独立的echarts动态渲染 我想到通过封装echarts组件通过props传
  • facebooksdk demo的使用

    更多消息查看 https developers facebook com docs android getting started 下载demo地址 https developers facebook com resources faceb
  • TCP头部详解

    1 TCP的定义 TCP提供一种面向连接的 可靠的字节流服务 面向连接 两个使用TCP的应用 通常是一个客户和一个服务 在彼此交换数据之前必须建立一个TCP连接 TCP提供可靠性的方式 1 应用数据被分割成TCP认为最适合发送的数据块 2
  • 关于图片操作记录

    1 在img标签的src属性中可以是图片路径 也可以是base64位编码的图片格式 base64图片格式 var images format jpg data data image jpeg base64 9j 4AAQSkZJRgABAQ
  • 【基于Android的ARM汇编语言系列】之二:C/C++程序生成ARM汇编程序的过程分析

    作者 郭嘉 邮箱 allenwells 163 com 博客 http blog csdn net allenwells github https github com AllenWell 基于Android的ARM汇编语言系列 章节列表
  • 解决kubernetes默认证书1年有效期问题

    https blog 51cto com 11889458 2323328
  • HDMI学习笔记

    文章目录 一 HDMI 基本介绍 二 TMDS基本介绍 三 传输流程 四 传输周期 五 Data Island Packet结构 六 Audio Clock 七 HotPlug 八 HDMI Sink 九 HDMI版权内容保护之HDCP 十