Indeed GPU is not involved here. The mpeg2 decoding is CPU only, and H264 encoding is done with dedicated HW encoder referred as NVENC in tegrastats.
I’m a bit surprised by your numbers. On my XavierNX with L4T R32.4.4, I get these:
# Boost your NX
sudo nvpmodel -m2
sudo jetson_clocks
gst-launch-1.0 -ev filesrc location=test_mpeg2_422.ts ! tsdemux ! mpegvideoparse ! avdec_mpeg2video ! video/x-raw, format=Y42B ! videoconvert ! video/x-raw, format=I420 ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12' ! nvv4l2h264enc ! h264parse ! fpsdisplaysink video-sink=fakesink text-overlay=0 sync=false
...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 37, dropped: 0, current: 73,98, average: 73,98
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 78, dropped: 0, current: 81,25, average: 77,63
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 118, dropped: 0, current: 78,71, average: 77,99
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 156, dropped: 0, current: 74,56, average: 77,13
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 196, dropped: 0, current: 79,66, average: 77,63
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 237, dropped: 0, current: 81,22, average: 78,23
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 277, dropped: 0, current: 78,06, average: 78,21
gst-launch-1.0 -ev filesrc location=test_mpeg2_422.ts ! tsdemux ! mpegvideoparse ! avdec_mpeg2video ! video/x-raw, format=Y42B ! videoconvert ! video/x-raw, format=I420 ! omxh264enc ! h264parse ! fpsdisplaysink video-sink=fakesink text-overlay=0 sync=false
...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 41, dropped: 0, current: 81,18, average: 81,18
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 85, dropped: 0, current: 87,69, average: 84,43
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 131, dropped: 0, current: 86,78, average: 85,24
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 175, dropped: 0, current: 86,84, average: 85,63
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 219, dropped: 0, current: 86,80, average: 85,86
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 264, dropped: 0, current: 87,35, average: 86,12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 308, dropped: 0, current: 87,07, average: 86,25
Note I am running Linux on a NVME SSD (Samsung 970 EVO Plus).