HDMI中的视频时序分析

2023-11-19

一、前言:建立层次观念

  说到时序,我们首先想到的例子是IIC、SPI、串口等接口的例子,以我们之前的理解,时序就是传输线上电平随时间变化的顺序。但是但是但是!,在HDMI这里,我们应该建立一个新的观念:即时序不一定对应到物理层:即传输线上。这是怎么回事?且看:

  因为HDMI的协议中,对传输的信息进行了编码,即TMDS编码,目的是使传输线上电平的跳变更小,从而达到减少干扰、增强传输可靠性的目的。

  说到这我们有必要了解下HDMI的整体结构,帮助我们建立一个分层的概念。我且把他分为两个:物理层和信息层。物理层即为实体的电路连接和电平的跳动;信息层则是我们需要传输的数据,对应我们熟悉的二进制编码。HDMI的物理结构如下图

       HDMI的物理连接线我们重点关注TMDS相关的线,TMDS Channel0-2为三个数据传输通道,TMDS Clock为时钟通道,每个通道使用2根连接线进行信号传输(最小化传输差分信号,Transition Minimized Differential signal),缩写即TMDS。图中的HDMI Transmitter对视频、音频、控制信号进行编码,然后在放到传输线上进行传输。

        video和audio即是我所说的信息层,在此我们主要分析视频信号的时序,可先忽略TMDS编码的细节。TMDS编码有现成的IP可以使用,有兴趣可以之后再深入了解。

二、视频信号的时序

        首先了解到,视频是由一帧一帧的画面构成的,而每一帧画面又是由像素点构成,视频信号在输出的时候是按每个像素点进行扫面,从左上角开始,当每扫描完一行时输出一个行同步信号HSYNC(horizontal sync),然后再对下一行进行扫描,当扫描完整个画面,即完成一场时输出一个场同步信号VSYNC(vertical sync)。而每个像素由RGB三种颜色构成,每个颜色有8bit的深度,即3*8bit。

        再此或许会有一个疑问,这么多信号是怎么分配到4个TMDS通道中的?答案如下图:其中CTL0-3是控制信号

我们可以再次不用理会,只需知道我们需要发送给TMDS编码器的信号是:

1.像素信息[7:0]R、[7:0]G、[7:0]B

2.行同步信号HSYNC、场同步信号VSYNC

3.像素时钟Pixel Clock

 

视频信号的时序可以用下图表示

·横轴的行同步信号HSYNC随扫描x位置的变化而变化,当HSYNC由低变高时表示一行新行的开始(旧行的结束);

·纵轴的场同步信号VSYNC随扫描y位置变化而变化,当VSYNC由低变高时表示一场新画面的开始(旧场的结束);

·一场画面的传输中并不是所有的时间都在传输图像信号;

·图像信号的传输在Hor“Active”Video和Ver“Active”Video之间的时间进行;

·其余不传输图像的时间称为“消隐时间”,但消隐时间并不代表不传输其他信号,如控制信号、音频信号;

·行的消隐时间由Hor Sync Time + H Back Porch +H Front Porch组成,场消隐时间同理;

·说来懵逼,一般常见的分辨率下各项参数如Hor Sync Time、H Back Porch等是如何计算或规定本人并没有搞懂,在HDMI的标准手册中也没看到,不过可以通过一些资源来获得这些参数:http://tinyvga.com/vga-timing

下面是黑金的资料给出的常见视频规格对应的时序参数

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

HDMI中的视频时序分析 的相关文章

随机推荐

  • 【网络是怎样连接的】—— 向 DNS 服务器查询 IP 地址

    IP 1 基本知识 互联网和公司内部的局域网都是基于 TCP IP 的思路来设计的 由一些小的子网 通过路由器连接起来组成一个大的网络 这里的子网可以理解为用集线器连接起来的几台计算机 在网络中 所有的设备都会被分配一个地址 这个地址就相当
  • 设计模式学习笔记(一)之单例模式

    单例模式 作用 保证一个类只有一个实例 并且提供访问这个实例的全局访问点 应用场景有 数据库连接池 spring中 Bean默认是单例 Servlet中 每一个Servlet是单例 配置文件的类 一般是单例 优点 单例只生成一个实例 减少系
  • UVM实战——01基本概念_2 什么是UVM?

    什么是UVM 1 什么是UVM 2 UVM的特点 3 UVM提供的资源 3 1 编程指导 3 1 1 理念 3 1 2 功能 3 2 验证组件 3 3 验证激励 3 4 通信机制 3 5 宏 1 什么是UVM UVM Universal V
  • 在iOS9上调用支付宝不回调的问题解决,以及支付宝嵌入的流程梳理

    又有一段时间没有经营自己的博客了 这一段有点忙啊 在最近的一个项目中再一次用到了第三方支付 对 就是支付宝 之前的项目其实已经实现过相应的功能 那是还是在ios8的系统下 这不在iOS9下就遇到了一个问题 不回调啊 反正要梳理支付宝的嵌入
  • 搭建树莓派Pico交叉编译环境和工具链(arm-none-eabi-gcc)时可能会遇到的错误以及解决方案

    本文是一个类似手册的文章 用来记录可能遇到的错误 你可以通过侧栏选择遇到的错误来查看详细信息 No install step for ELF2UF2Build 遇到这种错误有两种原因 安装了版本不对或者不完整的arm none eabi g
  • 继电器、并联的二极管和驱动三极管选型实战演练

    继电器选型原则 继电器的选用原则参见下表 在表中 必须确定 栏中有 号的项目被确定之后 就可选定一款继电器 如果有进一步的要求 需要进一步考虑 参考 栏中有 号的相应项目 下面对表格中的所有参数进行详细说明 触点 1触点负载 确定继电器所能
  • 一篇文章了解爬虫技术现状

    本文全面的分析了爬虫的原理 技术现状 以及目前仍面临的问题 如果你没接触过爬虫 本文很适合你 如果你是一名资深的虫师 那么文末的彩蛋你可能感兴趣 需求 万维网上有着无数的网页 包含着海量的信息 无孔不入 森罗万象 但很多时候 无论出于数据分
  • list【2】模拟实现(含迭代器实现超详解哦)

    模拟实现list 引言 实现概述 list迭代器实现 默认成员函数 operator 与 operator gt operator 与 operator operator 与 operator 迭代器实现概览 list主要接口实现 默认成员
  • pnpm修改设置下载包的存储路径

    要修改 pnpm 存储依赖的路径 可以使用 pnpm 的 store 配置选项 通过更改 store 配置 可以指定 pnpm 存储依赖的目录位置 这在希望将依赖存储在不同磁盘分区 不同的硬盘驱动器或其他自定义位置时很有用 步骤 1 打开命
  • 9.2 流程分析

    介绍了系统文件加密和文件解密的流程 那么我们本例主要涉及两个核心函数个函数Encrypt File和Decrypt File 使用Encrypt File函数完成文件加密功能 Decrypt File函数完成文件解密功能 下面介绍这两个函数
  • 跟着官网编写一个LLVMPass

    官网地址 https llvm org docs WritingAnLLVMPass html introduction what is a pass 一 创建文件 1 项目结构为 llvm project lib Transforms H
  • TscanCode C/C++静态分析开源分析工具安装与使用

    TscanCode是腾讯静态分析团队开发的一款开源免费的C C 静态分析工具 由于其比较简单实用 准确率较高 并且扫描C C 代码不需要进行编译 所以个人觉得对C C 项目开发挺有帮助的 就简单介绍一下该工具的安装与使用 1 Tscanco
  • 文件包含漏洞-日志注入

    文件目录 一 文件包含漏洞 1 文件包含概述 2 文件包含类型 二 文件包含 日志注入 1 日志注入概述 2 环境准备 3 配置环境 4 模拟网站环境 三 日志注入流程 一 文件包含漏洞 1 文件包含概述 文件包含漏洞是 Web 应用程序中
  • springboot的优化

    在SpringBoot的Web项目中 默认采用的是内置Tomcat 当然也可以配置支持内置的jetty 内置有什么好处呢 在SpringBoot的Web项目中 默认采用的是内置Tomcat 当然也可以配置支持内置的jetty 内置有什么好处
  • 互联网JAVA面试常问问题(三)

    一 volatile原理和使用场景 volatile 原理 volatile变量进行写操作时 JVM会向处理器发送一条Lock前缀的指令 将这个变量所在缓存行的数据写会到系统内存 Lock前缀指令实际上相当于一个内存屏障 也成内存栅栏 它确
  • LED用DMX512协议整个系统怎么连接?

    提问1 EIA485规范只支持 雏菊链 或每段上最多以32个 单元负载 所构成的串行网络 DMX512不是可以支持512个通道吗 那是不是说 超过32个的情况下需要使用中继 提问2 控制器 接收端1 接收端2 接收端n 电阻 GND 这样的
  • BIO、NIO、AIO理解

    一 到底什么是BIO NIO AIO 这些可以理解为是Java语言对操作系统的各种IO模型的封装 程序员在使用这些API的时候 不需要关系操作系统层面的知识 也不需要根据不同操作系统编写不同的代码 只需要使用Java的API就可以了 二 B
  • Eclipse搭建stm32+jlink开发环境全攻略(进阶篇一)

    Eclipse搭建stm32 jlink开发环境全攻略 进阶篇 一 本篇开始讲解一些比较实用的东西 在前面的两章中 我们讲解了eclipse开发stm32的大部分问题 然而 在实际使用过程中 我们仍然会遇到一些不太理想的地方 比如 ecli
  • Leetcode力扣题解 - 30.串联所有单词的子串

    地址 30 串联所有单词的子串 力扣 LeetCode 一 思路 本题关键点是 1 所有关键词长度一致 2 匹配的是所有关键词连接起来的 大体思路 那么我们就可以从字符串头开始 每次只匹配关键词总长度个字符 如果匹配成功 在返回的数组中保存
  • HDMI中的视频时序分析

    一 前言 建立层次观念 说到时序 我们首先想到的例子是IIC SPI 串口等接口的例子 以我们之前的理解 时序就是传输线上电平随时间变化的顺序 但是但是但是 在HDMI这里 我们应该建立一个新的观念 即时序不一定对应到物理层 即传输线上 这