我对cpu / gpu在处理后如何呈现视频数据(向其使用的任何设备)感兴趣。
有人告诉我视频是由CPU / GPU处理的,然后通过高速串行发送到集成电路,该串行将串行信号转换为适当的显示输出,但是我无法通过在线搜索来确认。
我对信令感兴趣,无法搜索协议/等,因为我不知道我在寻找什么。那么,CPU / GPU是直接与视频输出交互(我可以很容易找到这些协议)还是有一个“中间人”可以这么说,如果是的话,芯片/等的类型是什么?
我对cpu / gpu在处理后如何呈现视频数据(向其使用的任何设备)感兴趣。
有人告诉我视频是由CPU / GPU处理的,然后通过高速串行发送到集成电路,该串行将串行信号转换为适当的显示输出,但是我无法通过在线搜索来确认。
我对信令感兴趣,无法搜索协议/等,因为我不知道我在寻找什么。那么,CPU / GPU是直接与视频输出交互(我可以很容易找到这些协议)还是有一个“中间人”可以这么说,如果是的话,芯片/等的类型是什么?
Answers:
显示器上显示的图像以称为帧缓冲区的结构存储在图形卡上计算机的视频RAM中。帧缓冲区中的数据通常为24位RGB颜色,因此在显示器上的每个像素将有一个字节用于红色,一个绿色和一个蓝色,可能还有一些额外的填充字节。视频RAM中的数据可以由GPU或CPU生成。视频RAM由视频卡上的专用DMA组件连续读取并发送到监视器。输出到显示器的信号可以是模拟信号(VGA),其中颜色分量在离开卡之前通过数模转换器发送,对于DVI,HDMI或DisplayPort,则是数字信号。负责此操作的硬件也会生成水平和垂直同步信号以及所有适当的延迟,因此仅在准备好图像数据时才将图像数据发送到显示器。在DVI和HDMI中,像素颜色信息流经过编码和串行化,并通过TMDS(最小化转换差分信号)发送到显示器。DisplayPort使用8b / 10b编码。编码有多种用途。首先,TMDS使信号转换最小化以减少EMI辐射。其次,TMDS和8b / 10b均为直流平衡协议,因此可以使用隔直电容来消除接地环路问题。第三,由于DisplayPort不会分配单独的时钟,因此8b / 10b确保足够高的过渡密度以实现接收器处的时钟恢复。像素颜色信息流经过编码和序列化,并通过TMDS(最小化转换差分信号)发送到监视器。DisplayPort使用8b / 10b编码。编码有多种用途。首先,TMDS使信号转换最小化以减少EMI辐射。其次,TMDS和8b / 10b均为直流平衡协议,因此可以使用隔直电容来消除接地环路问题。第三,由于DisplayPort不会分配单独的时钟,因此8b / 10b确保足够高的过渡密度以实现接收器处的时钟恢复。像素颜色信息流经过编码和序列化,并通过TMDS(最小化转换差分信号)发送到监视器。DisplayPort使用8b / 10b编码。编码有多种用途。首先,TMDS使信号转换最小化以减少EMI辐射。其次,TMDS和8b / 10b均为直流平衡协议,因此可以使用隔直电容来消除接地环路问题。第三,由于DisplayPort不会分配单独的时钟,因此8b / 10b可确保足够高的过渡密度以实现接收器处的时钟恢复。
同样,对于HDMI和DisplayPort,音频数据也将发送到图形卡以传输到显示器。该数据被插入视频帧之间的数据流中的暂停中。在这种情况下,视频卡将自己作为音频接收器呈现给操作系统,并且音频数据将通过DMA传输到卡,以包含在视频数据中。
现在,您可能已经意识到,对于每像素4字节的1920x1080显示器,您仅需要大约8 MB的空间来存储图像,但是计算机中的视频RAM可能是该大小的许多倍。这是因为视频RAM不仅用于存储帧缓冲区。视频RAM直接连接到GPU,GPU是专用于高效3D渲染和视频解码的专用处理器。GPU使用对视频RAM的直接访问来加快渲染过程。实际上,将数据从主内存传输到视频内存是一个瓶颈,因为将视频卡连接到CPU和主内存的PCI总线的速度明显慢于GPU和视频RAM之间的连接。
各种现代显示输出本质上是串行比特流。对于处理器而言,比特率太高(或者,如果能够跟上它的步伐,它将占用太多的处理时间)。预留了一块内存来包含图像的位。专用硬件会读取内存内容并将其输出。这部分类似于DMA控制器,实际上非常简单。它只是现代GPU的一小部分,而现代GPU主要涉及通过高级GPU命令在内存中创建该图像。
包含视频图像的内存可以是主内存(廉价)的一部分,也可以是专用内存,可以由“ DMA”以及CPU和/或GPU同时访问。必须为“ DMA”配置各种参数,例如像素宽度和高度,颜色深度,内存中的起始位置等。
在现代计算机上,GPU是(非常专业的)处理器,可以与主CPU的速度相媲美(并在其自身的地盘上超过了它)。它的作用类似于从一堆具有纹理和光源的3D对象生成psuido-3D图像。这一切都可以通过GPU在视频内存中完成。CPU仅提供对象,纹理和光源。
从内存中读取视频数据并将其移出是一个相当简单的过程,但是它必须始终非常快速地完成。因此,此任务非常适合专用硬件,而不适用于CPU。在AFAIK上,最后有CPU参与生成视频信号的计算机是ZX80 / 81和Spectrum。在这些处理器上,CPU只能在(垂直?)回溯时间内进行自己的工作。