1. VGA显示原理
VGA(Video Graphics Array)作为一种标准的显示接口得到了广泛的应用。VGA在任何时刻都必须工作在某一显示模式下,其显示模式分为字符显示模式和图形显示模式,而在应用中讨论的都是图形显示模式。
VGA的图形模式分为三类:CGA,EGA兼容的图形模式;标准VGA图形模式;VGA扩展图形模式,后两种图形模式统称为VGA图形模式。文中基于标准VGA模式来实现。工业标准的VGA显示模式为:640×480×16×60。
常见的彩色显示器一般由阴极射线管(CRT)构成,彩色由GRB(Green Red Blue)基色组成。显示采用逐行扫描的方式解决,阴极射线*发出电子束打在涂有荧光粉的荧光屏上,产生GRB基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT、对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。VGA显示控制器控制 CRT显示图象的过程如图1所示。
2. VGA信号时序
图2所示是计算机VGA(640×480,60 Hz)图像格式的信号时序图。图2中,V_sync为场同步信号,场周期TVSYNC=16.683 ms,每场有525行,其中480行为有效显示行,45行为场消隐期。场同步信号Vs中每场有1个脉冲,该脉冲的低电平宽度tWV=63μs(2行)。场消隐期包括场同步时间tWH、场消隐前肩tHV(13行)、场消隐后肩tVH(30行),共45行。行周期THSYNC=31.78μs,每显示行包括 800点。其中,640点为有效显示区,160点为行消隐期(非显示区)。行同步信号Hs中每行有一个脉冲,该脉冲的低电平宽度tWV=3.81 μs(即96个DCK);行消隐期包括行同步时间tWH,行消隐前肩tHC(19个DCLK)和行消隐后肩tCH(45个DCLK),共160个点时钟。复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域它是低电平。
图2:VGA时序
3. 实际使用
|
图3:VGA信号示意图
如上图,是我制作的实际的一帧VGA图像示意图,比上述信号时序图更加形象。
4.结合EDID进行实际说明
以下是从我本地Linux中获取到的EDID片断(位于/var/log/Xorg.*.log中):
(II) NVIDIA(0): Validating Mode "1024x768":
(II) NVIDIA(0): 1024 x 768 @ 75 Hz
(II) NVIDIA(0): Mode Source: X Server
(II) NVIDIA(0): Pixel Clock : 78.75 MHz
(II) NVIDIA(0): HRes, HSyncStart: 1024, 1040
(II) NVIDIA(0): HSyncEnd, HTotal : 1136, 1312
(II) NVIDIA(0): VRes, VSyncStart : 768, 769
(II) NVIDIA(0): VSyncEnd, VTotal : 772, 800
(II) NVIDIA(0): H/V Polarity : +/+
(II) NVIDIA(0): Mode is valid.
其中的参数说明如下:
Pixel Clock:一秒钟可产生多少个像素点;
HRes: 行分辨率,对应于图3中的“有效图像区域”的宽;
HSyncStart:行同步开始标记,对应于图3中的“行同步信号”的左侧,意思是从“有效图像区域”的左侧开始,数多少个像素开始同步;
HSynEnd:行同步结束标记,对应于图3中的“行同步信号”的右侧,意思是从“有效图像区域”的左侧开始,数多少个像素同步结束;
HTotal:一帧VGA画面一共宽多少个像素,其包含“行同步信号”的宽、“行消隐前肩”、“行消隐后肩”和“有效图像区域”的宽。
计算关系:
行消隐后肩宽 = HSyncStart – Hres;
行同步信号宽 = HSyncEnd – HsyncStart;
行消隐前肩宽 = HTotal–HSyncEnd;
类似于“行”的机制,“场”的参数说明如下:
VRes: 高分辨率,对应于图3中的“有效图像区域”的高;
VSyncStart:场同步开始标记,对应于图3中的“场同步信号”的上部,意思是从“有效图像区域”的顶部开始,数多少个像素开始同步;
VSynEnd:场同步结束标记,对应于图3中的“场同步信号”的底部,意思是从“有效图像区域”的底部开始,数多少个像素同步结束;
VTotal:一帧VGA画面一共高多少个像素,其包含“场同步信号”的宽、“场消隐前肩”、“场消隐后肩”和“有效图像区域”的高。
计算关系:
略。
刷新率的计算:
FrameRate = (int)( fPixelClock / (fHTotal * fVTotal) )
音视频VGA信号采集卡自动检测VGA分辨率,能够很好的适应常见的4:3屏或宽屏显示分辨率、刷新率,并能自动将画面调整到最清晰的程度,逐行采集1920 x 1440 x60HZ的VGA信号,采集VGA信号分辨率可达逐行高清效果(1920×1080P)。
文章评论(0条评论)
登录后参与讨论