Hi,
We have been experiencing some artifacts when decoding NVENC-encoded H264 streams. We have reproduced the problem with multiple decoders and we have never experienced this problem before with other GPUs (G2.xlarge and G3s), so we think that this may be related to the new G4 GPU (an NVIDIA T4) or driver.
Those artifacts happen nondeterministically, maybe 10% of the time. Sometimes the artifacts are relatively small, but sometimes they cover most parts of the screen. When the artifacts appear they stick for a lot of frames, although we saw that a complete change of the input image tends to “clean” the artifacts. However, requesting IDR frames every time (for testing) didn’t solve this.
We are using NVENC with the VideoCodecSDK version 7.0.1 using the synchronous mode and the Directx11 integration as the input. I’ll provide a list of the parameters we use:
- NV_ENC_H264_PROFILE_HIGH_GUID
- NV_ENC_PRESET_LOW_LATENCY_HQ_GUID
- NV_ENC_BUFFER_FORMAT_NV12_PL
- width 1920
- height 1080
- averageBitRate : 8-12MBit/s (dynamically modified without IDR nor reset flags)
- enableAQ : true
- frameIntervalP: 1
- gopLength: NVENC_INFINITE_GOPLENGTH
- encodeCodecConfig.h264Config.enableIntraRefresh: 1
- encodeCodecConfig.h264Config.intraRefreshCnt: 20
- encodeCodecConfig.h264Config.intraRefreshPeriod: 40
- encodeCodecConfig.h264Config.idrPeriod: NVENC_INFINITE_GOPLENGTH
- encodeCodecConfig.h264Config.outputAUD: 0
- encodeCodecConfig.h264Config.enableVFR: 1
- encodeCodecConfig.h264Config.sliceMode: 1
- encodeCodecConfig.h264Config.sliceModeData: 1440
- rcParams.rateControlMode: NV_ENC_PARAMS_RC_CBR
The hardware specs are:
- AWS EC2 g4dn.xlarge
- AMI based on NVIDIA Gaming - Windows Server 2019
Do you know what could be triggering this? Could you point us to a possible workaround in case this is a bug outside our software?