Skip to content

[MME & VDMS-data-prep] Performance Optimizations#1786

Open
sun1lach wants to merge 12 commits intoopen-edge-platform:mainfrom
sun1lach:mme_optimizations
Open

[MME & VDMS-data-prep] Performance Optimizations#1786
sun1lach wants to merge 12 commits intoopen-edge-platform:mainfrom
sun1lach:mme_optimizations

Conversation

@sun1lach
Copy link
Copy Markdown

@sun1lach sun1lach commented Feb 16, 2026

Description

Refactored Pre-Processing & Inference

  • Added AsyncInferQueue based OV inference.
  • Static shape model compilation for iGPU
  • ThreadPool for open_clip image parallel pre-processing.
  • Batching and padding of input tensors to allow optimal path through OV inference.

Video Decode

  • PyAV based video decode and video_decoder abstraction for usage from MME wrapper.
  • Support for Keyframes and Uniform sampled frames extraction.
  • Batching of decoded frames for parallel pipelined pre-processing and inference.
  • producer-consumer pattern for parallel decode and frame translation to PIL.
  • Support RTSP Stream and Bytes input PyAV video decoder.
  • Multiple/Parallel decoder (producers) instance (file/rtsp/bytes).
  • Integrated PyAV decoder with VDMS data-prep.

TODO

  • Functional for CLIP model, extend the optimization for other model handlers.
  • Remove unnecessary imports, add type hints, formatting etc.
  • README update for iGPU drivers, pre-requisites and usage.
  • Unit Tests

Partially backward compatible. Revert this patch to check/validate existing functionality.

Any Newly Introduced Dependencies

PyAV==16.1.0 (https://github.com/PyAV-Org/PyAV)

How Has This Been Tested?

ARL - Ultra 7 255H + iGPU (Development)

Checklist:

  • I agree to use the APACHE-2.0 license for my code changes.
  • I have not introduced any 3rd party components incompatible with APACHE-2.0.
  • I have not included any company confidential information, trade secret, password or security token.
  • I have performed a self-review of my code.

 Pre-Processing & Inference:
 - Added `AsyncInferQueue` based OV inference.
 - Static shape model compilation for iGPU
 - ThreadPool for open_clip image parallel pre-processing
 Video Decode:
 - PyAV based video decode.
 - Support for Keyframes and Uniform sampled frames extraction.
@sun1lach sun1lach force-pushed the mme_optimizations branch 4 times, most recently from 93900e0 to 33818fd Compare February 25, 2026 04:42
 - Support PyAV RTSP Stream and Bytes input.
 - Multiple/Parallel decoder instance (file/rtsp/bytes).
 - Integrated PyAV decoder with VDMS-data-prep + OD optimizations.
 - Refactored pipeline &  metadata logic
 - Shared Memory based streaming frames metadata.
 - Rigourous optimizations: 8-10x memory reduction, complete pipeline execution ~10GB
@sun1lach sun1lach force-pushed the mme_optimizations branch from 33818fd to 22572ac Compare March 1, 2026 14:45
@sun1lach sun1lach changed the title [MME] MME Performance Optimizations [MME & VDMS-data-prep] Performance Optimizations Mar 2, 2026
@sun1lach sun1lach marked this pull request as ready for review March 2, 2026 02:49
 - Enabled decoder logging
 - RTSP stream bugfix.
 - Modified config for streaming.
@sun1lach sun1lach force-pushed the mme_optimizations branch from d23f110 to 4bf7620 Compare March 3, 2026 08:45
@sun1lach sun1lach force-pushed the mme_optimizations branch 4 times, most recently from 2a057e4 to 7c51737 Compare March 25, 2026 09:44
 - Added ulimits to compose.yaml
 - fixed telemetry video_duration_seconds
 - Added debug logging
 - Address partial frame decode early termination bug.
@sun1lach sun1lach force-pushed the mme_optimizations branch from 7c51737 to 8b5e6ad Compare March 31, 2026 12:59
@sun1lach sun1lach force-pushed the mme_optimizations branch from 123357f to dbe1f26 Compare March 31, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants