热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

VGA原理详解

部分资料来源:https:www.cnblogs.comspartanarchive201108162140546.html最近要用ZYNQ开发版的HDMI做一些计

部分资料来源:https://www.cnblogs.com/spartan/archive/2011/08/16/2140546.html

最近要用ZYNQ开发版的HDMI做一些计算机视觉算法的显示功能,看着硬件管脚和例程只能发呆,于是决心去弄清楚HDMI的工作原理,查找了很多资料,都是碎片化的,不易懂。于是我加以整理,再以初学者(没有接触过任何视频传输接口)的角度在这篇博客里阐述。

       说起HDMI,就要先说起VGA了。为什么要先说VGA,因为VGA的原理容易理解。在理解VGA后,HDMI理解起来就也变得容易多了。HDMI原理会在我的下一篇博客详细介绍。VGA就是如今很多显示器上连接主机的信号传输接口。有三排15个引脚。如下图所示

 


标号

名称

描述

标号

名称

描述

1

RED

视频红色

分量

9

KEY

保留

2

GREEN

视频绿色

分量

10

SGND

同步信号地

3

BLUE

视频蓝色

分量

11

ID0

显示器ID

0

4

ID2

显示器ID

2

12

ID1

显示器ID

1

5

GND

13

HSYNC

行同步信号

6

RGND

红色地

14

VSYNC

场同步信号

7

GGND

绿色地

15

ID3

显示器ID

3

8

BGND

蓝色地

 

 

 

       VGA的显示效果取决于RGB三个分量的位数,最高24位(即RGB8位),16位,12位也都存在。

       那么我们传输显示数据是不是把每个像素点对应的三通道的数值传输到显示屏就行了?这是当然。那么对于分辨率800X600@60Hz,我们的传输的时钟频率是不是800*600*60=28.8MHz?答案是:否。为什么呢?我们先了解一下显示的原理。

      显示器的扫描方式:逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。

       从扫描方式中我们知道,行同步,场同步以及消隐区的概念。回到时钟上来。以行扫描为例子,在一行中由于需要行消隐,所以要求一定的时钟周期用于行消隐,当然也有行同步信号。那他们的时序是怎样的?

       上图中,要注意一点,就是a同步脉冲,b显示后沿,c显示时序段,d显示后沿。这四段组成了一个完整的时序。图中最后的同步脉冲a是下一个时序的。所以我们的消隐间隔就是上一个时序的显示前沿+本时序的同步脉冲+本时序的显示后沿。同步脉冲是包含在消音间隔中的。而显示时序段,就是我们上面提到的,用来传输像素点的时钟周期。

HSYNC                    行同步信号  VSYNC                      场同步信号

Hor Sync                行同步脉冲  Vcr Sync                    场同步脉冲

H Back Proch          行显示后沿  V Back Proch            场显示后沿

H Front Proch         行显示前沿  V Front Proch           场显示前沿

HorActiveVideo:行视频段      VerActiveVideo:场视频段

       上面参数与之前的行时序和场时序图中的a同步脉冲,b显示后沿,c显示时序段,d显示后沿,相对应。那么图中的三个矩形是什么呢?

       最大的矩形就是显示区加上消隐区(由每个行消隐段和每个场消隐段组成)。消隐段的组成在上面已经讲过。第二个矩形其实就是显示区。那么第3 个矩形中有4 个参数H Left BorderH Right BorderV Top Border V Bottom Border,在不同分辨率中这4 个参数不同,在800x600 及其以上的分辨率中这4 个参数为0。(第三个矩形的参数,老实说我在实际中,还没有遇到过,不知道具体作用)。

       VGA 的行时序是以像素为单位的,场时序是以行为单位的。VGA时序对同步时间、显示后沿时间、视频有效时间和显示前沿时间有特定要求,常用VGA 分辨率时序参数如下表所示。(a行同步脉冲,b行显示后沿,c行显示时序段,d行显示后沿,e行总时序,场时序类同)

       其中800x600以上分辨率的时钟频率 = 行总时序X场总时序X刷新频率,800x600640X480按照以上计算有偏差(可能这个偏差就是之前提到的第二个矩形的Border参数)。


推荐阅读
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文详细介绍了如何使用ActionScript 3.0 (AS3) 连接并操作MySQL数据库。通过具体的代码示例和步骤说明,帮助开发者理解并实现这一过程。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 在网页开发中,页面加载速度是一个关键的用户体验因素。为了提升加载效率,避免在PageLoad事件中进行大量数据绑定操作,可以采用异步加载和特定控件来优化页面加载过程。 ... [详细]
  • 本文介绍了一种根据用户选择动态切换屏幕界面的方法,通过定义不同的选择块(Selection Block),实现灵活的用户交互体验。 ... [详细]
author-avatar
pS看云梦山水Tn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有