高清视频如何在现代硬件(OpenGL)上工作



在DOS时代,我们在计算机中显示图形的方式只是将每帧的原始图像数据复制到内存中。

由于CPU和GPU之间的带宽,这被证明是非常无效的。为了以现代分辨率将每一帧都发送到屏幕上,我们需要像这样的东西

1080*1200*4(彩色数据(*60(每秒帧数(=每秒311兆字节。

因此,我们将纹理和顶点预加载到GPU内存中,然后发送转换。

那么,高清视频播放是如何在现代硬件中解决的呢?有没有办法压缩发送到GPU的每一帧?或者我们只是像过去一样发送原始的311MB/s?

假设解压缩至少部分没有在GPU本身上完成,那么是的,您可以通过将每帧的图像上传到图形内存来发送视频。

不过你的数学不及格。1080p是1920x1080。1080p的30fps视频需要约238MB/秒。和这是完全可行的。即使是PCIe 1.0 x1也可以处理(尽管勉强(,GPU往往使用x16插槽,因此带宽增加了16倍。PCIe的版本是4.0(在大多数机器上(,所以现在速度要快得多。

最新更新