[FFmpeg-trac] #7797(undetermined:new): AVC->MPEG-2 transcoding with VA-API 2-3x slower than with QSV

FFmpeg trac at avcodec.org
Mon Nov 11 13:41:23 EET 2019

#7797: AVC->MPEG-2 transcoding with VA-API 2-3x slower than with QSV
             Reporter:  eero-t       |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  git-master   |               Resolution:
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |

Comment (by eero-t):

 Replying to [comment:2 eero-t]:
 > There's been a clear improvement to AVC -> MPEG2 performance this last
 week, between...
 > Especially in multi-process VA-API encoding, where it's now about same
 perf as MSDK and FFmpeg QSV.

 In multi-process case, VA-API is now slightly faster than QSV on SKL GT2 &
 KBL GT3e, on SKL GT4e, it's still slight slower.  I.e. that was 2x perf
 perf improvement to earlier.

 > (Single process encoding is still behind a bit, I guess that's mostly
 due threading differences between QSV & VA-API backends and resulting
 kernel power management handling.)

 Single process AVC->MPEG2 VA-API encode+downscale performance improved
 from <1/2 to 2/3 of the QSV perf.

 (Gap is now close to the gap with same conversion where output is AVC, VA-
 API perf there is 3/4 of QSV perf.)


 Replying to [comment:3 fulinjie]:
 > Would you please help to verify whether this issue is also benefited
 from the patch mentioned in #7706:
 > https://patchwork.ffmpeg.org/patch/16156/

 Your patch increased single process performance by 5-10%, from slightly
 over 2/3rd to almost 3/4th of the QSV perf.

 (For the same conversion with AVC output, your patch improvement is
 10-15%, from 3/4th to 7/8th of QSV performance.)


 In FullHD MPEG2 -> AVC bitrate conversion with VA-API:
 {{{ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128
 -hwaccel_output_format vaapi -i 1920x1080i_29.97_20mb_mpeg2_high.mpv -c:v
 h264_vaapi -b:v 6000K -compression_level 7  output.h264}}}

 vs. QSV:
 {{{ffmpeg -hwaccel qsv -qsv_device /dev/dri/renderD128 -c:v mpeg2_qsv -i
 1920x1080i_29.97_20mb_mpeg2_high.mpv -c:v h264_qsv -b:v 6000K
 -compression_level 7 output.h264}}}

 VA-API is also slower, 2/3rd of QSV performance in single process
 transcode.  Most of that gap is naturally due to #7706 regression, but it
 was (1/8th, 10-15%) slower than QSV also earlier. Your patch improves it
 to 3/4th of QSV performance.

 In my other test-cases, VA-API is close to QSV speed (or better).

Ticket URL: <https://trac.ffmpeg.org/ticket/7797#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list