Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® Integrated Performance Primitives
- Multi-frame image processing

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted
##

I'm trying to average large numbers of frames on a pixel basis. I.e., I want to calculate a frame, with each pixel value being the average of the previous n frames. It seems to me that IPP image functions are largely concerned with a single frame or at most two frames of video. Has anyone tried to solve this type of problem using IPP? I realize that this problem is often solved in HW by the camera, but I don't have that option. It is a data reduction issue: I'm not trying to do this at the framerate. While I realize that I can solve the problem by doing algebra on two frames at a time, I am curious if there are any optimized functions for this type of video processing problem. Perhaps it's more accurately viewed as a vector or math kernel implementation.

Thanks.

Bob_Hayes

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-26-2009
02:46 PM

11 Views

Multi-frame image processing

Thanks.

1 Reply

Highlighted
##

*I'm trying to average large numbers of frames on a pixel basis. I.e., I want to calculate a frame, with each pixel value being the average of the previous n frames. It seems to me that IPP image functions are largely concerned with a single frame or at most two frames of video. Has anyone tried to solve this type of problem using IPP? I realize that this problem is often solved in HW by the camera, but I don't have that option. It is a data reduction issue: I'm not trying to do this at the framerate. While I realize that I can solve the problem by doing algebra on two frames at a time, I am curious if there are any optimized functions for this type of video processing problem. Perhaps it's more accurately viewed as a vector or math kernel implementation.*

Thanks.
Hi Bob,

You could use the incremental mean calculation ( M(N) = (N-1)*M(N-1)/N + X(N)/N, where M(N) is the mean at frame N and X(N) is the pixel value at frame(N)) . But that means that your mean is the mean of all preceding frames. You can also use a running average approach: M(N) = lr*M(N-1) + (1-lr)*X(N)., where lr is a number between 0 and 1. That way the 'influence' of a frame will decay in time. Both versions are easily implemented in IPP.

Hope this helps and with regards,

Rob

Rob_Ottenhoff

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-27-2009
06:08 AM

11 Views

Quoting - Bob Hayes

Thanks.

You could use the incremental mean calculation ( M(N) = (N-1)*M(N-1)/N + X(N)/N, where M(N) is the mean at frame N and X(N) is the pixel value at frame(N)) . But that means that your mean is the mean of all preceding frames. You can also use a running average approach: M(N) = lr*M(N-1) + (1-lr)*X(N)., where lr is a number between 0 and 1. That way the 'influence' of a frame will decay in time. Both versions are easily implemented in IPP.

Hope this helps and with regards,

Rob

For more complete information about compiler optimizations, see our Optimization Notice.