为什么软件和硬件编码不叫 CPU 和 GPU 编码?

为什么软件和硬件编码不叫 CPU 和 GPU 编码?

软件编码使用 CPU,硬件编码使用 GPU,那么为什么不把它们称为 CPU 和 GPU 编码呢?软件编码听起来不准确,因为软件需要在某些硬件上运行。CPU 和 GPU 都只是硬件。

答案1

因为虽然 CPU 是一个硬件部件,但它所运行的功能却是软件。您给它加载来自硬盘和其他存储设备的代码。代码完全是易失性的,只需下载一些新软件即可随时更改。它不依赖于任何给定系统中的任何硬件,只是软件在 x86 兼容平台上运行。它甚至不依赖于 CPU,软件编码器可以利用 CPU 指令、GPU 着色器程序(而不是硬件编码器或解码器)或任何数量的其他软件能够在平台上运行。

如果您更换计算机平台,但保留相同的软件,那么您仍然应该获得基本相同的输出。软件的运行速度可能更快或更慢,但软件如何完成任务并不取决于 CPU,除非 CPU 执行软件提供的指令。

另一方面,GPU 上的硬件编码器是纯硬件模块. NVENC、QuickSync 和 AMD 等效产品硬件GPU 内置的块。很久以前,实际上有专门的 MPEG2 编码/解码器硬件卡可供购买。如果不更换硬件,就无法更改硬件。

如果您更换了硬件,那么您可能会更换或更改编码器的功能。硬件块将以完全相同的方式运行,但硬件块所具有的质量设置或开关除外。如果不丢弃硬件,您就无法更改这一点。

有一段时间,存在一种中间解决方案。当时有 CUDA 和类似的基于 GPGPU 的视频编码器和解码器,它们被现代 GPU 中的专用硬件模块所取代。这些本质上是“GPU 软件”解决方案。

称其为“GPU 编码器”并不能区分它是在 GPU 着色器中运行的程序(软件),还是使用 GPU 硬件编码器块。这不够精确。

相关内容