Why does the speed of decoding phase in nvDecInfer_detection is much slower than the speed of decPerf?

In the decPerf sample, I try to decode four 640x368 videos and the average fps is ~430

[DEBUG][02:05:08] =========== Video Parameters Begin =============
[DEBUG][02:05:08]       Video codec     : AVC/H.264
[DEBUG][02:05:08]       Frame rate      : 25/1 = 25 fps
[DEBUG][02:05:08]       Sequence format : Progressive
[DEBUG][02:05:08]       Coded frame size: [640, 368]
[DEBUG][02:05:08]       Display area    : [0, 0, 640, 360]
[DEBUG][02:05:08]       Chroma format   : YUV 420
[DEBUG][02:05:08] =========== Video Parameters End   =============
[DEBUG][02:05:09] Video [3]:  Decode Performance: 442.93 frames/second || Decoded Frames: 500
[DEBUG][02:05:09] Video [1]:  Decode Performance: 428.72 frames/second || Decoded Frames: 500
[DEBUG][02:05:09] Video [0]:  Decode Performance: 433.14 frames/second || Decoded Frames: 500
[DEBUG][02:05:09] Video [2]:  Decode Performance: 403.80 frames/second || Decoded Frames: 500
[DEBUG][02:05:10] Video [1]:  Decode Performance: 437.78 frames/second || Decoded Frames: 1000
[DEBUG][02:05:10] Video [3]:  Decode Performance: 426.09 frames/second || Decoded Frames: 1000
[DEBUG][02:05:10] Video [0]:  Decode Performance: 423.79 frames/second || Decoded Frames: 1000
[DEBUG][02:05:10] Video [2]:  Decode Performance: 429.30 frames/second || Decoded Frames: 1000
[DEBUG][02:05:11] User: Ending...
[DEBUG][02:05:11] User: Ending...
[DEBUG][02:05:11] Video [3]:  Decode Performance: 455.95 frames/second || Decoded Frames: 1500
[DEBUG][02:05:11] Video [1]:  Decode Performance: 455.02 frames/second || Decoded Frames: 1500
[DEBUG][02:05:11] User: Ending...
[DEBUG][02:05:11] Video [0]:  Decode Performance: 442.35 frames/second || Decoded Frames: 1500
[DEBUG][02:05:11] User: Ending...
[DEBUG][02:05:11] Video [2]:  Decode Performance: 441.90 frames/second || Decoded Frames: 1500
[DEBUG][02:05:12] Video [1]:  Decode Performance: 449.32 frames/second || Decoded Frames: 2000
[DEBUG][02:05:13] Video [3]:  Decode Performance: 431.91 frames/second || Decoded Frames: 2000
[DEBUG][02:05:13] Video [0]:  Decode Performance: 454.58 frames/second || Decoded Frames: 2000
[DEBUG][02:05:13] Video [2]:  Decode Performance: 470.74 frames/second || Decoded Frames: 2000

but when I run the nvDecInfer_detection sample with the same video and the same number of channels (4 channels), the decoding speed is poor, approximately equal the video’s fps:

[DEBUG][02:18:09] =========== Video Parameters Begin =============
[DEBUG][02:18:09]       Video codec     : AVC/H.264
[DEBUG][02:18:09]       Frame rate      : 25/1 = 25 fps
[DEBUG][02:18:09]       Sequence format : Progressive
[DEBUG][02:18:09]       Coded frame size: [640, 368]
[DEBUG][02:18:09]       Display area    : [0, 0, 640, 360]
[DEBUG][02:18:09]       Chroma format   : YUV 420
[DEBUG][02:18:09] =========== Video Parameters End   =============
[DEBUG][02:18:11] Analysis Pipeline Performance: 105.32 frames/second || Total Frames: 202|| Elapsed: 1918.03ms
[DEBUG][02:18:13] Video[1] Decoding Performance: 26.01 frames/second || Total Frames: 100|| Elapsed: 3845.40ms
[DEBUG][02:18:13] Video[0] Decoding Performance: 26.00 frames/second || Total Frames: 100|| Elapsed: 3846.07ms
[DEBUG][02:18:13] Video[2] Decoding Performance: 25.99 frames/second || Total Frames: 100|| Elapsed: 3847.08ms
[DEBUG][02:18:13] Video[3] Decoding Performance: 25.99 frames/second || Total Frames: 100|| Elapsed: 3846.99ms
[DEBUG][02:18:13] Analysis Pipeline Performance: 101.95 frames/second || Total Frames: 403|| Elapsed: 3889.66ms
[DEBUG][02:18:15] Analysis Pipeline Performance: 101.95 frames/second || Total Frames: 604|| Elapsed: 5861.14ms
[DEBUG][02:18:17] Video[1] Decoding Performance: 25.37 frames/second || Total Frames: 200|| Elapsed: 7787.83ms
[DEBUG][02:18:17] Video[3] Decoding Performance: 25.39 frames/second || Total Frames: 200|| Elapsed: 7784.99ms
[DEBUG][02:18:17] Video[0] Decoding Performance: 25.37 frames/second || Total Frames: 200|| Elapsed: 7787.38ms
[DEBUG][02:18:17] Video[2] Decoding Performance: 25.36 frames/second || Total Frames: 200|| Elapsed: 7789.55ms
[DEBUG][02:18:17] Analysis Pipeline Performance: 100.15 frames/second || Total Frames: 805|| Elapsed: 7868.09ms
[DEBUG][02:18:19] Analysis Pipeline Performance: 97.99 frames/second || Total Frames: 1006|| Elapsed: 9919.22ms
[DEBUG][02:18:21] Video[0] Decoding Performance: 24.87 frames/second || Total Frames: 300|| Elapsed: 11808.20ms
[DEBUG][02:18:21] Video[3] Decoding Performance: 24.85 frames/second || Total Frames: 300|| Elapsed: 11809.95ms
[DEBUG][02:18:21] Video[1] Decoding Performance: 24.84 frames/second || Total Frames: 300|| Elapsed: 11814.08ms

Can anyone explain me about this different?

Hi,

For nvDecInfer_detection sample, GPU is used for both video decoding and TensorRT inference.
The resource sharing causes the lower frame-rate.

Thanks.