是否可以使用GLSL着色器实现视频编解码器?

时间:2015-07-04 01:59:55

标签: opengl video glsl h.264 codec

是否可以使用GLSL着色器实现视频编解码器,如果可行的话,它会比cpu编解码器更有效吗?

2 个答案:

答案 0 :(得分:3)

由于GPU是并行处理器,因此编解码器必须设计为利用管道。编解码器是编码器或解码器,着色器是顶点或片段。

管道架构(堆栈图)将是:

sort_values

设计应尽可能多地将工作推送到顶点着色器中,以实现高效的并行性。四叉树算法可能是隔离片段的好选择。

实现取决于GPU目标。 Khronos Vulkan芯片组(GL5 +)特别适合这个问题,允许使用多线程管道。

高端GPU编解码器实现可以轻松胜过某些硬件编解码器,并且肯定会打破任何类似的CPU编解码器(软件编解码器)。

专用硬件最终将获胜。任何好的GPU编解码器都可以作为更快的硬件编解码器的模型,就像一个好的软件编解码器可以成为更快的GPU编解码器一样。

GPU CODEC pipeline architecture

答案 1 :(得分:0)

嗯,所有巡演完整系统都能够完成同样的事情,唯一的区别是速度和效率。因此,如果您将此问题读作“GLSL着色器巡回演出完成了吗?”答案可以在这里找到:

Are GPU shaders Turing complete

TLDR; Shader model 3.0是的 其他人可能(但可能没有)

至于效率更高,可能不是。其他GPGPU / CUDA / SIMD很可能会更好。