学号:20021210601 姓名:韦苏恒
【嵌牛导读】讲解如何计算显示器的带宽。
【嵌牛鼻子】显示器带宽 CVT
【嵌牛正文】
哈喽,这是一块1080P 60Hz的屏幕,他的分辨率也就是像素点的数目为1920*1080,每秒刷新次60画面,每个像素点又由红绿蓝三个子像素构成,假设他是一块8bit的屏幕,那最后这个屏幕一秒钟传输的数据量就为1920*1080*60*8*3,最后大约等于2.986Gbit/s,整个互联网各种论坛上,关于显示器带宽的计算都是这么和你讲的。
但是实际上这么算是错误的,真正需要的带宽实际上大约为3.20Gbit/s。
今天就由我带各位小伙子详细了解下如何正确的计算显示器的带宽需求。
想要了解一个显示器在传输画面时所需的带宽,我们首先需要知道屏幕的基本工作原理和色深这两个概念,在之前的屏幕和显示器的色深这两篇随笔里,我就已经介绍过了,怕有人没有看过,我们这里再简单的重新回顾一下。
你在电脑(手机)屏幕这头看到的画面是一幅完整的图像,但是如果你把屏幕无限的放大,你会发现你看到的这幅画面,实际上是由无数的小点点拼凑出来的,这些小点点就是我们所说的像素点。每个像素点又由红绿蓝三个子像素构成,我们都知道红绿蓝是三基色,我们可以通过混合红绿蓝,这三种颜色的配比来得到一切你想要的颜色,这样每个像素点各司其职,显示自己的颜色最终拼凑出了你看到的完整的画面,红绿蓝三个子像素混合颜色配比的时候,是通过控制像素点的亮度来完成的,想要控制像素点的亮度话,我们就需要传输代表亮度的信号,假设我只有2的1次方个信号,也就是两种状态0和1,0代表全黑1代表全亮,那这个子像素就只有关闭和打开两种亮度,但是如果我有2的2次方个信号,也就是00、01、10、11这4种状态,那就有关闭低亮高亮全亮这四种状态了,那同理,如果有2的3次方个信号也就是8种状态,那它的亮度控制就能做到更细致,这里面,2的1次方2的2次方2的3次方,就是我们所说的屏幕色深,几次方就是几bit,比如说2的8次方那就是8bit。
屏幕的色深越高,像素点能调整的亮度等级也就越多,在呈现连续的色彩过渡的时候,就能过度的越平滑,色彩越不容易出现断层的现象,只不过色深仅仅只是衡量色彩过渡平滑度的一种参数,他对于显示器本身能展现的色域是没有任何影响的。不过随着色深的提高,你需要传输的数据也就变多了,比如说6bit的屏幕,每个子像素就有000000-111111,共64种亮度状态。
每个子像素需要改变亮度时就需要传输六个数字,也就是6bit的数据,那同理一块8bit的屏幕,每个子像素就有00000000-11111111,一共256种亮度状态,每个子像素需要变更亮度时就需要传输八个数字,也就是8bit的信息。
当你了解屏幕的工作原理和色深这两个参数以后,我们就可以简单的计算一下显示器的带宽了,以一个1080p 60Hz 8bit的屏幕举例,它的分辨率是1080p,那一共就有1920*1080个像素点,由于每个像素点又由红绿蓝三个子像素构成,每个子像素需要8bit的数据,红绿蓝三个子像素就需要3*8bit的数据,那如果我需要呈现一张静态的画面,就需要传输的数据1920*1080*8*3,而这块屏幕的刷新率是60Hz,那这就意味着一秒钟需要传输六十张画面的信息,那最终这个屏幕需要的带宽就是1920*1080*8*3*60,也就是大约2.986Gbit/s。
但是节目的开头我们说过这么计算是错误的,为什么是错误的呢?这里就需要讲到CVT-显示器协调视频时间了,在之前G-sync的文章里我们讲过了,目前的显示器在显示画面的时候并不是和播放PPT一样,一张一张闪过去的。现在的显示器在显示画面的时候,都是利用逐行扫描完成的,显示器会从屏幕的左上角开始,一行一行的绘制,一直绘制到屏幕的右下角,这一张完整的画面就算被显示了出来,但是这里面有一个关键的点,一行一行的扫描。大家都知道,我们所处的空间中处处都有各种各样的无线信号,WiFi、移动网络、无线电等等一堆电磁干扰,就包括电脑和显示器,内部的电路板也有各种各样的高频讯号导致的干扰,如果显示器每次逐行扫描,都是紧贴着屏幕的边缘去扫描,万一某些讯号因为干扰或者延迟导致错误的现象,那你最好扫描出来的画面就是错位和撕裂的了,就和下图里展示的这样。
除了需要保证扫描线的对齐,显示器还是要保证画面是在屏幕正中心的,不能偏左或者偏右,所以显示器在逐行扫描的时候,会在屏幕的外面预留出来,一些区域用于对齐和时钟同步,也就是说,虽然你看到的画面是1920*1080,但是实际上屏幕扫描的画面是要比这个区要大得多的,虽然额外多出来的这些像素点不参与你屏幕内容的显示,但是他还会占用掉你的传输带宽。
因此我们在计算显示器带宽需求的时候,需要把这一部分也考虑进去,而之前粗暴的用分辨率*位数*刷新率,计算出来的带宽,就是因为没有考虑到这些同步信号,所以才是错误的。
显示器实际扫描的画面大概可以分为三个部分,同步信号区sync、消隐区blank,消隐区又分为前消隐区front和后消隐区back,有效显示区域active,如果我们要计算这张画面的尺寸,那就是用宽乘以高就可以了,横向宽即为Htotal,他等于Hsync+Hfront+Hactive+Hback,纵向高即为Vtotal,他等于Vsync+Vfront+Vactive+Vback。如果我们用Htotal X Vtotal,就得到了一张画面会扫描的像素点总数量了,如果我们再考虑上刷新率,那最后得到的就是这个显示器,在一秒钟之内需要处理的像素颜总数量,这个显示器一秒钟之内需要处理的,像素点数目就是我们所说的pixel clock,显示器像素时钟。
那么问题来了,显示画面的分辨率我知道,但是我该如何知道,我的显示器sync和blank的数值呢?这个就需要看你显示器使用的计时标准了,不同的计时标准,屏幕外用于时钟同步和对齐的部分也是不同的,目前常见的标准是CVT/CVT-RB/CVT-R2,越新的标准越节约带宽,现在的DP接口都是采用最新的CVT-R2标准,在这个计时标准下,用于对齐的像素点数目的具体数值的计算公式,我们可以在VESA的官网查找到相关的文献和公式。
如果每个分辨率,都需要我们自己的去完整的走一遍公式是很麻烦的,所以为了方便大家操作,VESA还提供了一张表格。
我们只需要在这里输入横向显示画面的分辨率1920,还有纵向显示画面的分辨率1080,再输入刷新率60以后,表格会自动帮你计算出所有有关这个分辨率和刷新率,在CVT-R2计时标准下的所有有关数据。
当你给显示器超频的时候,你就可以参考一下这些数据,CVT的行业规范标准和这个用来计算带宽的表格,我都会上传网盘里,有需要的可以自行下载,在输入完数据以后,其中这里我们可以看见,Pixel Clock也就是像素时钟是133.187MHz,假设我们这是一块8bit的屏幕,那就用133.187*8*3最后就约等于3.196Gbit/s,这样计算出来的显示器带宽才是正确的。
为了方便大家参考,我这里以的屏幕为基准,帮大家把市面上常见的各种分辨率各种刷新率的组合,都计算出他们的带宽需求了,并且和各种显示器接口的相容性,我都做出了判断,列出了一张表格,这张表格有部分数据是参考维基百科的,大家有需要的可以保存一手,留下点赞,我也会把这个表格上传到网盘里,有需要的自行下载就可以,这里面大家需要注意一个点,DP接口为了保证数据传输的正确和稳定,他采用的是8b:10b的编码方式,意思就是编码里有20%的数据是用于校验的,并不能作为实际的带宽去使用,所以DP接口的实际带宽,都要用理论最高带宽乘以80%,因此DP1.1的实际带宽是8.64Gbit/s而不是10.8Gbit/s,DP1.2的实际带宽是17.28Gbit/s而不是21.6Gbit/s,DP1.3和DP1.4的实际带宽是25.92Gbit/s而不是32.4Gbit/s。大家可能也会注意到表格里除了yes和no之外,还有4:2:2和4:2:0以及DSC这些奇怪的东西,这个就是显示器的色度抽样和显示流压缩技术,碍于篇幅限制,具体的工作原理和实现的效果,放到之后再去讲,关于显示器的带宽计算和接口,相容性我们就介绍的差不多了,see u~~我们下一篇再见~