qsvh264enc: performance question

Robert Ayrapetyan robert.ayrapetyan at gmail.com
Thu Oct 26 01:36:39 UTC 2023


Hello! My system is running on the `11th Gen Intel(R) Core(TM)
i7-11700K @ 3.60GHz` CPU (equipped with Intel® UHD Graphics 750),
screen resolution is FullHD (1920x1080).

I'm using a following pipeline:
```
ximagesrc display-name=mydisplay show-pointer=true use-damage=false
remote=true blocksize=16384 enable-navigation-events=true \
            ! video/x-raw,framerate=60/1 \
            ! timeoverlay \
            ! videoconvert \
            ! qsvh264enc bitrate=10000 low-latency=true \
            ! video/x-h264,profile=baseline \
            ! queue
...
```
intel_gpu_top shows:
```
intel-gpu-top -  833/ 874 MHz;    0% RC6; ----- (null);      619 irqs/s

      IMC reads:   ------ (null)/s
     IMC writes:   ------ (null)/s

          ENGINE      BUSY                                      MI_SEMA MI_WAIT
     Render/3D/0   16.01% |█████▌                             |      0%      0%
       Blitter/0    0.00% |                                   |      0%      0%
         Video/0   19.76% |██████▉                            |     15%      0%
  VideoEnhance/0    0.00% |                                   |      0%      0%
```
So one encoding stream consumes ~20% of GPU.
When I run 6+ streams, FPS on the receiver side starts to drop from
60FPS to 50FPS and so on (approx 10FPS per stream drop). So my GPU is
able to encode only 6 streams in real-time at 60FPS.

Now when I read posts like "Wow! QuickSync on newer gen Intels are
transcode beasts!"
(https://www.reddit.com/r/PleX/comments/hrpuhf/wow_quicksync_on_newer_gen_intels_are_transcode/)
where people are getting "24 simultaneous 1080P to 720P transcodes" on
UHD630 I'm curious how is that possible.

1. UHD630 is worse than UHD750 by as much as 80% in some benchmarks (I
realize it might be unrelated to QuickSync logic but still...);
2. Transcoding is a more resource intensive operation than encoding
(as transcoding usually requires both encoding and decoding).

So what do I miss when interpreting these results? Thanks.


More information about the gstreamer-devel mailing list