是否可以使用 GLSL 着色器实现视频编解码器?
Is it possible to implement a video codec using GLSL shaders?
是否可以使用 GLSL 着色器实现视频编解码器,如果可行,它会比 cpu 编解码器更有效吗?
好吧,所有的图灵完备系统都能够完成相同的事情,唯一的区别是速度和效率。因此,如果您将此问题解读为“GLSL 着色器图灵完整吗?”答案可以在这里找到:
Are GPU shaders Turing complete
TLDR;
着色器模型 3.0 是
其他可能(但可能不会)
至于效率高不高,大概不会吧。其他 GPGPU/CUDA/SIMD 很可能会更好。
由于 GPU 是并行处理器,因此必须设计编解码器以利用管道。编解码器是编码器或解码器,着色器是顶点或片段。
管道架构(堆栈图)为:
设计应将尽可能多的工作推入顶点着色器以实现高效并行。四叉树算法可能是隔离碎片的不错选择。
实施将取决于 GPU 目标。 Khronos Vulkan 芯片组 (GL5+) 特别适合这个问题,允许多线程管道。
高端 GPU 编解码器实现可以轻松胜过某些硬件编解码器,并且肯定会击败任何类似的 CPU 编解码器(软件编解码器)。
专用硬件终将获胜。任何好的 GPU 编解码器都可以作为更快的硬件编解码器的模型,就像好的软件编解码器可以成为更快的 GPU 编解码器一样。
是否可以使用 GLSL 着色器实现视频编解码器,如果可行,它会比 cpu 编解码器更有效吗?
好吧,所有的图灵完备系统都能够完成相同的事情,唯一的区别是速度和效率。因此,如果您将此问题解读为“GLSL 着色器图灵完整吗?”答案可以在这里找到:
Are GPU shaders Turing complete
TLDR; 着色器模型 3.0 是 其他可能(但可能不会)
至于效率高不高,大概不会吧。其他 GPGPU/CUDA/SIMD 很可能会更好。
由于 GPU 是并行处理器,因此必须设计编解码器以利用管道。编解码器是编码器或解码器,着色器是顶点或片段。
管道架构(堆栈图)为:
设计应将尽可能多的工作推入顶点着色器以实现高效并行。四叉树算法可能是隔离碎片的不错选择。
实施将取决于 GPU 目标。 Khronos Vulkan 芯片组 (GL5+) 特别适合这个问题,允许多线程管道。
高端 GPU 编解码器实现可以轻松胜过某些硬件编解码器,并且肯定会击败任何类似的 CPU 编解码器(软件编解码器)。
专用硬件终将获胜。任何好的 GPU 编解码器都可以作为更快的硬件编解码器的模型,就像好的软件编解码器可以成为更快的 GPU 编解码器一样。