Commit Graph

7 Commits

Author SHA1 Message Date
Jonathan Thomas ab93363747 Improved performance on FrameScope class, basically doubling performance
- Inline fast-path bin indices for alpha=255 pixels: raw byte value == rounded bin, no float needed
- Replaced byte_bin() (std::round + clamp) with (int)(val * 255.0f + 0.5f)
- Pre-computed waveform_offset_map[] to eliminate a multiply per pixel in inner loop
- Pointer increment instead of row + x * 4 per pixel
- int64_t pixel_count instead of double pixel_total
- Result: 49 → 89 FPS (~1.8x), all unit tests pass
2026-05-02 14:43:51 -05:00
Jonathan Thomas 81aa6d97b0 Refactor of FrameScope and adding new vectorscope data, so we can easily render high performance vectorscope density planes. Updated unit tests, and did some light refactoring to ensure performance. 2026-04-23 21:57:15 -05:00
Jonathan Thomas 816cd3d9ef Some low hanging optimizations on Color Grade effect for faster processing of color grading in real-time. 2026-04-22 19:10:59 -05:00
Jonathan Thomas 0c1e0cd5ae Fixing byte order bug in FrameScope, so our analysis uses RGBA8888_Premultiplied format, and adding unit test to verify. 2026-04-22 12:46:35 -05:00
Jonathan Thomas b16bda0291 FrameScope no longer generates JSON during normal per-frame analysis. Json handling is now lazy, only when needed, and new swig getters and available for faster access to analysis data for image and audio data. 2026-04-19 16:05:25 -05:00
Jonathan Thomas 5910ab5f97 pdated FrameScope so the video scope payload now includes the full practical waveform dataset the UI needs:
- video.histogram.luma
  - video.histogram.red
  - video.histogram.green
  - video.histogram.blue
  - video.waveform.luma
  - video.waveform.red
  - video.waveform.green
  - video.waveform.blue
2026-04-19 15:38:10 -05:00
Jonathan Thomas 449a4f5e9f Add a new FrameScope class which analyzes color and audio data for a frame. 2026-04-19 15:11:54 -05:00