如何调整Ubuntu系统的分辨率和屏幕刷新率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调整Ubuntu系统的分辨率和屏幕刷新率相关的知识,希望对你有一定的参考价值。

  1.命令行:cvt <你需要的分辨率空格><刷新率>
  如我想设置1280*1024,刷新75,于是输入 cvt 1280 1024 75 回车,得到的Modeline信息才是我们需要的,如:
  root@mypc:~# cvt 1280 1024 75
  # 1280x1024 74.90 Hz (CVT 1.31M4) hsync: 80.30 kHz; pclk: 138.75 MHz
  Modeline “1280x1024_75.00” 138.75 1280 1368 1504 1728 1024 1027 1034 1072 -hsync +vsync
  复制红色的一行。
  2.命令行:sudo gedit /etc/X11/xorg.conf 打开配置文件,没有此文件没关系,修改后保全就有了。
  在此文件加入如下内容:
  Section “Monitor”
  Identifier “Configured Monitor”
  Modeline “1280x1024_75.00” 138.75 1280 1368 1504 1728 1024 1027 1034 1072 -hsync +vsync
  Option “PreferredMode” “1280x1024_75.00 ”
  EndSection
  Section “Screen”
  Identifier “Default Screen”
  Monitor “Configured Monitor”
  Device “Configured Video Device”
  EndSection
  Section “Device”
  Identifier “Configured Video Device”
  EndSection
  上面红色的是根据不同配置要修改的地方,修改完毕保存重启即可。其实重要的是cvt 这个命令了。
参考技术A 你那什么显示器这么牛啊?!不过你要是进入系统后修改还是有办法的进入系统前好像没办法修改,找台分辨率低点的显示器接上改不就行了。因为你换了显示器后系统会自动调整分辨率的,如果是笔记本的话外接一台显示器

屏幕分辨率与FPS

屏幕分辨率

刷新率分为垂直刷新率和水平刷新率,一般提到的刷新率通常指垂直刷新率。

垂直刷新率表示屏幕的图象每秒钟重绘多少次,也就是每秒钟屏幕刷新的次数,以Hz(赫兹)为单位。

刷新率越高越好,图象就越稳定,图像显示就越自然清晰,对眼睛的影响也越小。刷新频率越低,图像闪烁和抖动的就越厉害,眼睛疲劳得就越快。

一般来说,如能达到80Hz以上的刷新频率就可完全消除图像闪烁和抖动感,眼睛也不会太容易疲劳。

显然刷新率越高越好,但是建议你不要让显示器一直以最高刷新率工作,那样会加速CRT显像管的老化,一般比最高刷新率低一到两档是比较合适的,建议85Hz。

而液晶显示器(LCD/LED)的发光原理与传统的CRT是不一样的,由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不象阴极射线管显示器(CRT)那样需要不断刷新亮点。

因此,液晶显示器画质高而且绝对不会闪烁,把眼睛疲劳降到了最低。

而刷新率对CRT的意义比较突出,有时,LCD/LED刷新高了,反而会影响其使用寿命般保持在60-75就可以了。

参考: http://ask.zol.com.cn/q/6612.html

 

 

以我的笔记本为例,用了2个显示器,如下图:

技术分享

 

Mac 下外接 Dell GL2250 显示器的刷新率:

技术分享

Mac 笔记本自身的显示器 刷新率是没法设置的。

技术分享

查看硬件详情可以看到:

 

技术分享

外接 Dell E2715H 的分辨率是 60Hz, 

查询硬件说明,跟显示器有关的如下:
https://support.apple.com/kb/SP649?locale=zh_CN&viewlocale=zh_CN 

  • 13.3 英寸 (对角线) LED 背光光面宽显示屏,支持数百万色彩。
  • 支持分辨率:16:10 宽高比可显示 1280 x 800 (初始)、1152 x 720、1024 x 640 和 800 x 500 像素;4:3 宽高比可显示 1024 x 768、800 x 600 和 640 x 480 像素;4:3 拉伸宽高比可显示 1024 x 768、800 x 600 和 640 x 480 像素;3:2 宽高比可显示 720 x 480 像素;3:2 拉伸宽高比可显示 720 x 480 像素

 

LCD的闪烁频率是不能调节的。

液晶显示器的刷新频率,就使用操作系统默认的60Hz,不要改(不管系统默认多少都不要改)。LCD不是CRT显示器,它的内部不是阴极射线管,不是靠电子枪去轰击显像管上的磷粉产生图像。

LCD显示器是靠后面的灯管照亮前面的液晶面板而被动发光,只有亮与不亮、明与暗的区别。所以,液晶显示器没有电子枪逐行及隔行扫描屏幕的原理(LCD显示器工作时,每个像素点自始至终都发光,不存在闪烁的现象),也就不存在刷新频率的概念,改不改都一个样,刷新频率对所有的LCD均不起作用。

 

FPS 相关信息

frames per second(FPS, 帧率),作为渲染效率的一种衡量,反映的是整个程序在当前的一个渲染状态下平均每秒所能容纳的“渲染循环”执行次数,也表征了平均每个“渲染循环”(帧)所用的时间。就表面来看,很多人觉得只要在一个每帧运行一次的函数内设置一个计数器,这样计算出一秒内的记数,便可作为该1s瞬间的FPS了;同样也很容易能求出平均FPS。

http://www.zwqxin.com/archives/opengl/swapbuffers-fps-vsync.html

为什么我的程序的FPS基本不会大于75呢?

恩,以前做的DEMO,如果是有计算FPS的,都是这样:场景复杂的时候它可以降低到1或者直接0掉,但是对于简单的场景它永远只有72左右的FPS;再简单,也是72左右;再再简单,还是72左右……可以说是“封顶”了。

于是我把整个渲染流程核查一次,先把消息处理和循环部分弄成一般WIN32的形式,貌似无关……然后又检查像素格式,直接把最佳像素格式设置为10,(某些程序DEMO中设计者会轮巡所有像素格式找出最佳匹配的,于是我也容易知道对我最“友好”的像素格式是10号……)貌似也没啥。另外,检查FPS计算的式子,没发现异常。我又把渲染函数RenderGLScene内的东西一个个注释……才发现,只有当我注释了SwapBuffers时,屏幕显示死掉了,但FPS上到了3000以上……对比72的FPS我还是比较相信这个——所以,是双缓冲的关系么。在像素设置中改像素描述器的PFD_DOUBLEBUFFER为PFD_SWAP_COPY、PFD_SWAP_EXCHANGE之类的,这下FPS也是很高,但是屏幕猛闪~ - - 。google吧,步小心发现了一个东西:vsync。

在学Irrlicht引擎的时候,建立DEVICE的时候有一个参数选项:vsync,vertical syncronisation,API解释得不清楚,就知道跟屏幕有关……屏幕?屏幕刷新率?我突然想起我做图像处理的WIN32程序时的一个窘况:release出来的程序在人家面前演示,发现图片/视频出不来,后来明白是屏幕刷新率的问题——屏幕刷新率太高会把WIN32循环对屏幕窗口所做的东西“消灭”掉。那么,这里呢?好,我去看文章了:vertical syncronisation

垂直同步。原来,程序每一帧的函数全部执行完之后,还要等屏幕刷新了才去执行下一帧啊!一查屏幕刷新率——难怪是72左右呀,正因为偶电脑上设置的屏幕刷新率是72!恩,这里头肯定有个像sleep那样有等待功能的函数做帮凶——噢,亲爱的SwapBuffers,是你呀~

曾经有人说SwapBuffers比glut库的glutSwapBuffers效率低不少(见这里),但这里不是这个问题。无论是SwapBuffers还是glutSwapBuffers还是wglSwapBuffers,它们位于渲染体的末端,都有这么个“功能”:当显卡的垂直同步功能vsyn被置为TRUE时,每一帧渲染完后来到SwapBuffers,都要悲情地等待下一次屏幕刷新的时刻到来,再交换前后缓冲并开始执行下一帧……上面那篇文章用到了WGL_EXT_swap_control扩展,利用wglSwapIntervalEXT来设置“等待的间隔”。间隔是指一个屏幕刷新的周期,譬如屏幕刷新率是72Hz,那么一个周期就是(1/72)s, wglSwapIntervalEXT(1)表明要让SwapBuffers类函数开始执行后要等到下一个屏幕刷新时才返回——然后继续下一帧的执行。wglSwapIntervalEXT(2)就是等下个再下个屏幕刷新了。这么说,wglSwapIntervalEXT(0),哈,就是不用等——关闭垂直同步Vsync。

曾经有人说SwapBuffers比glut库的glutSwapBuffers效率低不少(见这里),但这里不是这个问题。无论是SwapBuffers还是glutSwapBuffers还是wglSwapBuffers,它们位于渲染体的末端,都有这么个“功能”:当显卡的垂直同步功能vsyn被置为TRUE时,每一帧渲染完后来到SwapBuffers,都要悲情地等待下一次屏幕刷新的时刻到来,再交换前后缓冲并开始执行下一帧……上面那篇文章用到了WGL_EXT_swap_control扩展,利用wglSwapIntervalEXT来设置“等待的间隔”。间隔是指一个屏幕刷新的周期,譬如屏幕刷新率是72Hz,那么一个周期就是(1/72)s, wglSwapIntervalEXT(1)表明要让SwapBuffers类函数开始执行后要等到下一个屏幕刷新时才返回——然后继续下一帧的执行。wglSwapIntervalEXT(2)就是等下个再下个屏幕刷新了。这么说,wglSwapIntervalEXT(0),哈,就是不用等——关闭垂直同步Vsync。

来自:http://www.zwqxin.com/archives/opengl/swapbuffers-fps-vsync.html

技术分享

 

技术分享

以上是关于如何调整Ubuntu系统的分辨率和屏幕刷新率的主要内容,如果未能解决你的问题,请参考以下文章

安卓手机屏幕分辨率怎么调整?

ubuntu 20.4 只有分辨率很低600*480

ubuntu 8.04,怎么调分辨率

手机屏幕分辨率怎么调

ubuntu20.04LTS设置特殊分辨率或16:9宽高比

VM虚拟机里的Ubuntu系统怎么设置屏幕分辨率?