登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

linux分辨率详解  

2010-10-21 10:49:59|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

linux分辨率详解

为了搞清楚linux下的分辨率,终于找了一篇比较好的文章.我接触Linux有一年多了.Linux给我以优雅体面的感觉,在Linux下面工作,心情都和在MS Windows下面不一样.但是X Window 的刷新率一直是我心中的痛.我不知道用xf86config设置了多少遍,xf86config的选择我背都背得下来,但是X Window还是有闪烁感.我想X的设置怎么这么保守.因此,我喜欢Linux的字符模式.上网只能在MS Windows下面了.前几天我痛下决心一定要把刷新率给搞定,开始看有关X的文档.原来我误会了,XF86的目标就是充分地利用硬件,哪是什么保守.是我自己不看文档.下面就是我认为最值得看的几篇文章:

/usr/X11R6/lib/X11/doc/README.Config

/usr/X11R6/lib/X11/doc/QuickStart.doc

/usr/X11R6/lib/X11/doc/VideoMode.doc

特别是最后那篇文章彻底解决了刷新率的问题.现在我就谈点体会.有什么不清楚的话,请看原文.先介绍一些术语:HSF:显示器的水平扫描频率,单位是kHzVSF:垂直刷新率,单位是Hz显卡的"dot-clock",正式名称是driving clock frequency(DCF),它表示每秒钟能向屏幕发出的象素数,单位是MHzRR:刷新率(refresh rate)HR:水平分辨率VR:垂直分辨率frame:帧,由于显示器的扫描枪扫描到屏幕边缘的时候不可能马上回来,会有一段调整的时间,这时候它仍在扫描,但对我们来说是不可见的.因此帧比HRxVR略大些.HFL:帧宽,比HR略大些,经验HFL = 1.25HRVFL:帧长,比VR略大些,经验VFL = 1.05VR下面就是很重要的公式:RR = DCF/(HFL*VFL)HFL = DCF/HSF或 HSF = DCF/HFL我们的问题就是:在给定分辨率和刷新率的条件下,显卡的DCF是多少?水平扫描频率(HSF)是多少,它是否超出了显示器所能允许的最大水平扫描频率?我们看到,在这里显卡的DCF不是问题,就是最一般的S3 Trio64V+的DCF也有135MHz,瓶颈是显示器所能允许的最大水平扫描频率.我们在启动X的时候会看到许多模式不能用,就是因为经过计算,水平扫描频率超出了显示器所能允许的最大水平扫描频率.事情还没有完:在XF86Config文件里,有许多这样的行:Mode "800x600" 55.2 800 832 1064 1096 600 602 610 630也许写成这样看得更清楚些:Mode "800x600" 55.2 800 832 1064 1096600 602 610 630Mode是关键词,引号中的800x600是名称,可以随便起. 55.2就是DCF,800和600当然就是分辨率了,1096和630是帧宽和帧长(HFL,VFL).中间两个数是什么意思呢?原来它们决定了同步脉冲的开始位置和结束位置.800 832 1064 1096 这组数可以这样理解:水平分辨率是800,扫描枪扫到第800个象素的时候还要继续往前扫,到第832个象素的时候,发出同步脉冲,该脉冲持续一段时间,到第1064个象素的时候结束.扫描枪扫继续往前扫,到达帧宽的时候返回到最左边,扫描下一条线.600 602 610 630是垂直方面的,也可以这样理解.这就是这组神密数字的含义.自己从头生成一组这样的数字是挺麻烦的,我的做法是修改当前使用的模式,比如我用的是xf86config自动生成的800x600模式,但刷新率偏低.我就找到XF86Config文件中对应的行,直接增大DCF的值,再计算一下:水平扫描频率HSF=DCF/HFL .只要水平扫描频率不超出显示器所能允许的最大水平扫描频率就行.再到X Window中用xvidtune微调一下.我的显示器规格如下:HP D8894A 15"水平扫描频率: 30-54 kHz垂直刷新率: 50-120 Hz显卡:MGA-G200DCF: 250 MHz我毫不费力地就调到600x480 @ 100Hz , 800x600 @ 85Hz, 由于水平扫描频率的限制,1024x768只能调到66Hz .于是我使用隔行扫描模式,可以轻松地调到1024x768 @ 100Hz, 当然实际上刷新率是50Hz,但是效果绝对比正常66Hz刷新率时好,几乎看不出闪烁.不过,水平线只有一个象素宽的时候能感觉到闪烁.

水平扫描频率: 30-70垂直刷新率: 50-110 Hz分辨率在800*600下没问题刷新率自动调节我的显示器是15"其实你大概是只知道调垂直刷新率咳水平扫描频率linux默认的太低,你只要加大水平扫描频率的值就可以了,但别超过显示器的实际值最好是加上限,不动下限HSF = DCF/HFL自己好好静下心来理解一下其实你自己要真的想明白了感觉真的很不错
欢迎新手,积极参与讨论权限和水平就上升了

如何提问才是好的;权限的问题如何理解和解决;遇到冷遇是怎么回事

查看

GMT+8, 2010-10-21 10:48, Processed in 0.056139 second(s), 5 queries, Gzip enabled.

Powered by Discuz! 7.2

? 2001-2009 Comsenz Inc.

引文来源  linux分辨率详解 - 其他UNIX & Linux - LoveUnix 最强AIX小机论坛,UNIX,Linux,存储,数据库,中间件,容灾 - Powered by Discuz!
  评论这张
 
阅读(1519)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018