2016-06-12 9 views
1

Я изучаю образцы декодирования NVIDIA. Я заметил, что есть 2 параметра с именем ulNumDecodeSurfaces и ulNumOutputSurfaces. Максимальное значение ulNumDecodeSurfaces равно 20, максимальное значение ulNumOutputSurfaces равно 8.Что означает поверхность декодирования и поверхность вывода? Как они влияют на производительность декодирования?

Кто-нибудь знает, что означают эти 2 параметра? Будут ли они влиять на производительность декодирования? Как они влияют на производительность декодирования?

ответ

1

Они найдены вместе с комментариями в cuviddec.h (доступно в Интернете по адресу https://www.ffmpeg.org/doxygen/3.2/cuviddec_8h_source.html).

ulNumOutputSurfaces - максимальное количество выходных поверхностей, на которые декодер может записывать каждое изображение.

ulNumDecodeSurfaces имеет комментарий: «Максимальное количество внутренних поверхностей декодирования», что несколько более неоднозначно. Исходный код для этой библиотеки недоступен вне nVidia, поэтому нам придется полагаться на кого-то из nVidia, отвечающего на авторитетный ответ. Однако, глядя на значения, которые установлены в примере кода, он выглядит так: это количество кадров во внутреннем конвейере декодирования. Предположительно, это увеличивает использование памяти GPU, но обеспечивает дополнительную буферизацию, так что конвейер с меньшей вероятностью блокируется, потому что приложение не слишком быстро вытягивает кадры с декодера. В другом месте есть комментарий, который указывает, что в очереди декодирования всегда должно быть не менее 2 кадров, чтобы все работающие процессоры декодирования были заняты.