Hi all,

I'd love to understand better some of the performance differences I'm seeing in 
various situations (and hopefully use that contribute some patches upstream!). 
My use case I'm exploring is using ffmpeg to decode video to pass to another 
process. I see dramatically different performance in a few situations that I'd 
like to better understand.

My test setup is on a 5950x CPU (Windows), with hardware offload off just to 
keep things simple. I'm decoding a 4k video stream (h264 (Main), 
yuv420p(progressive), 3848x2168, 30 fps, 30 tbr, 1200k tbn),

Here are some quick benchmarks:
Null renderer ("-f null -") - 643 fps
Yuv420p rawvideo ("-pix_fmt yuv420p -f rawvideo - > nul") - 290 fps
Rgb8 rawvideo ("-pix_fmt rgb8 -f rawvideo - > nul") - 276 fps
Yuyv422 rawvideo ("-pix_fmt yuyv422 -f rawvideo - > nul) - 173 fps
Rgb24 rawvideo ("-pix_fmt rgb24 -f rawvideo - > nul") - 128 fps
Rgba rawvideo ("-pix_fmt rgba -f rawvideo - > nul") - 102 fps

This brought up some a few questions:
- What does the null renderer skip that costs so much once we want to get video 
out? What is the native format out of x264?
- For the RGB formats, it almost seems proportional to the output data size. 
I'd imagine the main calculation to generate RGB from YUV is similar, and just 
the layout/bits are different. But RGB8 is 2.5x faster than RGBA, even though 
one would think the extra bit shifting might add some overhead.
- RGB formats seem more expensive than YUV formats, but more than I'd expect. 
Does ffmpeg use any vectorized implementations to convert between the two?

I also noticed some other things like ffmpeg being very sensitive to the 
latency of the thing on the other end of the pipe. Is it possible to increase 
the buffering that ffmpeg does on the output side?

Let me know if I can provide any more information. At some point I'll get out 
the profiler myself, but hoped to see if I could get some insight into anything 
obvious first.

Thanks!
Eric Gross

INTERNAL - NI CONFIDENTIAL
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to