解码表面和输出表面是什么意思?它们如何影响解码性能?

时间:2016-06-12 06:26:28

标签: performance output decode nvidia surface

我正在研究NVIDIA解码样本。我注意到有2个名为ulNumDecodeSurfacesulNumOutputSurfaces的参数。 ulNumDecodeSurfaces的最大值为20,ulNumOutputSurfaces的最大值为8.

有谁知道这两个参数是什么意思?它们会影响解码性能吗?它们如何影响解码性能?

1 个答案:

答案 0 :(得分:2)

它们与cuviddec.h中的评论一起被发现(可在https://www.ffmpeg.org/doxygen/3.2/cuviddec_8h_source.html在线获得)。

ulNumOutputSurfaces是解码器可以将每个图像写入的最大输出表面数。

ulNumDecodeSurfaces有评论:“内部解码表面的最大数量”,这有点模棱两可。这个库的源代码在nVidia之外是不可用的,所以我们必须依赖来自nVidia的人回答权威的答案。但是,查看示例代码中设置的值使得它看起来像是内部解码管道中的帧数。据推测,使这个更大可以增加GPU内存使用,但提供额外的缓冲,以便管道不太可能阻塞,因为应用程序没有足够快地从解码器中拉出帧。其他地方有一条注释表明解码队列中应始终至少有2帧,以保持所有解码引擎的忙碌。