我正在研究NVIDIA解码样本。我注意到有2个名为ulNumDecodeSurfaces
和ulNumOutputSurfaces
的参数。 ulNumDecodeSurfaces
的最大值为20,ulNumOutputSurfaces
的最大值为8.
有谁知道这两个参数是什么意思?它们会影响解码性能吗?它们如何影响解码性能?
答案 0 :(得分:2)
它们与cuviddec.h中的评论一起被发现(可在https://www.ffmpeg.org/doxygen/3.2/cuviddec_8h_source.html在线获得)。
ulNumOutputSurfaces是解码器可以将每个图像写入的最大输出表面数。
ulNumDecodeSurfaces有评论:“内部解码表面的最大数量”,这有点模棱两可。这个库的源代码在nVidia之外是不可用的,所以我们必须依赖来自nVidia的人回答权威的答案。但是,查看示例代码中设置的值使得它看起来像是内部解码管道中的帧数。据推测,使这个更大可以增加GPU内存使用,但提供额外的缓冲,以便管道不太可能阻塞,因为应用程序没有足够快地从解码器中拉出帧。其他地方有一条注释表明解码队列中应始终至少有2帧,以保持所有解码引擎的忙碌。