Skip to content
This repository has been archived by the owner on Mar 17, 2022. It is now read-only.
asquared edited this page Mar 13, 2011 · 6 revisions

HD Instant Replay Performance Benchmarking

Performance Testing

Andrew's Desktop

Experiment Setup

  • 2x Opteron 4180 2.6GHz
  • 16GB RAM (8GB per CPU).
  • Asus KCMA-D8 motherboard.
  • Testing with complete sports intro (1,978 frames) at 1920x1080.
  • Sending RGB data as YUV data (because FFmpeg is stupid). UYVY (4:2:2) -> YUV (4:4:4) conversion bypassed. Used libjpeg_turbo for testing.

Test Results

  • Single thread: avg 45.0 fps.
  • Two threads: (both CPU saturated) 47.0 fps, 45.0 fps
  • Eight threads: 38.9, 39.3, 39.3, 39.4, 39.4, 38.8, 39.7, 39.0

Conclusions

  • The processor is fast. My code is not optimized.
  • Average bitrate on a "random sample" of sports footage (i.e. the sports intro): 31,085 Kbps - at a rather low jpeg quality setting. Of course, M-JPEG is VBR...

Codec Notes

  • libjpeg wants planar image data. An SSE routine should be constructed to convert packed UYVY data to planar YUV 4:2:2 data. This should improve speed and also image quality. See the section in the manual on "raw (downsampled) data".
  • Some thought should be given to preview; a good way to do that remains unknown.
Clone this wiki locally