rigaya / NVEnc

NVENCによる高速エンコードの性能実験
https://rigaya34589.blog.fc2.com/blog-category-17.html
Other
1.03k stars 108 forks source link

Questions regarding release 7.49 #576

Closed quamt closed 2 months ago

quamt commented 2 months ago

For the "--lookahead-level" option, is it correct to say that setting a higher lookahead level can improve the quality of HEVC encoded videos by allowing the encoder to analyze more frames in advance, but this might also reduce encoding performance due to higher computational requirements?

Regarding the "--tune" option, does selecting a specific tuning parameter like "hq" or "uhq" optimize the encoder specifically for higher quality outputs, while "lowlatency" and "ultralowlatency" are optimized for reducing encoding delay, and "lossless" ensures no quality loss from the input to the output?

Does the "-tf-level" setting enable temporal filtering in HEVC encoding, which can improve video quality by reducing noise across frames and requires that b-frames be set to at least 4 to be utilized?

Thank you.

rigaya commented 2 months ago

I'll pick up the statement from the SDK comments for details.

--lookahead-level Yes, I think your understanding is right as they are described in SDK as below.

< [in]: Specifies the lookahead level. Higher level may improve quality at the expense of performance.

--tune Yes, I think your understanding is right as they are described in SDK as below. I think you should stick to either hq or uhq for normal encoding.

_hq → NV_ENC_TUNING_INFO_HIGH_QUALITY      = 1,   /< Tune presets for latency tolerant encoding./
lowlatency → NV_ENC_TUNING_INFO_LOW_LATENCY       = 2,  /< Tune presets for low latency streaming./
ultralowlatency → NV_ENC_TUNING_INFO_ULTRA_LOW_LATENCY = 3, /< Tune presets for ultra low latency streaming./
lossless → NV_ENC_TUNING_INFO_LOSSLESS          = 4, /< Tune presets for lossless encoding./
uhq → NV_ENC_TUNING_INFO_ULTRA_HIGH_QUALITY = 5, /< Tune presets for latency tolerant encoding for higher quality. Only supported for HEVC on Turing+ architectures /_

---tf-level I'm not sure the details of temporal filtering. They are described in SDK as below.

/*< [in]: Specifies the strength of the temporal filtering. Temporal filter feature is supported only if frameIntervalP >= 5. Temporal filter feature is not supported with ZeroReorderDelay/enableStereoMVC/AlphaLayerEncoding. Temporal filter is recommended for natural contents. / Here, frameIntervalP >= 5 means bframes >= 4 in NVEncC.

quamt commented 2 months ago

Thank you for the detailed explanations.

Based on your clarification, the "--tune" option seems designed for HEVC encoding using Turing (RTX20xx) or newer GPU architectures. I want to confirm if the "--lookahead-level" and "--tf-level" settings also require the same type of GPU architecture to achieve their intended effects.

Thank you.

rigaya commented 2 months ago

I want to confirm if the "--lookahead-level" and "--tf-level" settings also require the same type of GPU architecture to achieve their intended effects.

I think options other than "--tune" option is not mentioned about GPU arch in the SDK.

quamt commented 2 months ago

Thank you for the information. I will close this as everything has been answered.