显卡最重要的两个功能:
渲染(render)
显示(display)
render部分又分为
2D
3D
Video
等graphics core
framebuffer 翻译过来叫'帧缓冲区',通俗点可以叫'显存'.
该buffer的每个存储单元存放的对象是'像素'.
图形处理芯片的另一个功能:渲染'render hardware',负责在'显存'中产生像素.
而display hardware则负责把framebuffer中的像素'发射'到crt,lcd等device上
framebuffer 的像素被CRT Controller,又叫crtc按照一定的时序一行一行地scan out.
crtc还可以控制需要scan的区域.framebuffer如果是一张纸,那么crtc可以起到viewport的功能,只裁剪出一个矩形区 域出来让你看.
除了scan out像素以外,crtc还负责输出一些monitor需要的时序同步信号,典型的如vsync和hsync,即场同步和行同步信号.
这两个基本的同步信 号用来通知显示设备什么时候一个新的扫描行开始了和一个新的图像帧开始了.对于一些设备如CRT来说,这就意味着要移动电子枪了
crtc读取framebuffer后输出的信号一般有像素数据值,同步信号hsync和vsync,以及pixel clock,这些信号一般 都是适合计算机处理的并行TTL数字信号.
比如真彩色的像素格式RGB888,每个color component都是8位,即需要8根数据线.这自然是不适合于在显示设备之间进行传输的.于是,crtc输出的信号需要编码到一种适合传输的信号流.
比如CRT,接口里传输颜色的只有R、G、B三根数据线,其上承载的信号电压值表达了要传输的symbol value.即,crtc输出的TTL数字信号被D/A Convertor编码成了模拟信号,如下图.这个D/A Convertor就是编码器.
又 如LCD(笔记本上的flat panel)的数字接口标准之一LVDS.虽然传输的不是模拟信号,但也是采用串行链路.所以就需要有一个编码器能对输入的并行的crtc比特流做串行化 操作,这一般简称SerDes.
从LVDS的WIKI可知,LVDS是物理层的标准,它并不对其应用强加bit encoding的模式,除了采用8 bit (像素格式为RGB888的一个color component就是8位) 的串行编码外,也可以采用8b/10b等encoding,这是一种将并行的8位数字信号变成串行的10位数字信号的编码方式,主要为了DC Banlance.