Digital Image Smoothing Using Bidirectional Exponential Moving Averages

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Image smoothing in frequency filtering is computationally intensive and challenging for real-time applications due to its dependence on kernel size and image resolution, particularly with existing methods like exponentially weighted moving average, which suffer from partial data transfer and asymmetrical blurring.

Innovation Solution

The method involves calculating each pixel value in a digital image using both exponentially weighted moving averages in ascending and descending orders, ensuring symmetry and computational efficiency similar to Gaussian blur, while addressing the drawbacks of conventional exponentially weighted moving averages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional exponentially weighted moving average is used for image smoothing, then computational efficiency is improved, but asymmetrical blurring and partial data transfer occur

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidsmoothing symmetry
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent applies asymmetry principle by using two exponentially weighted moving averages calculated in opposite directions (ascending and descending). Each directional pass has asymmetric characteristics, but their combination produces symmetric overall smoothing效果, resolving the asymmetrical blurring issue while maintaining computational efficiency

Inventive Principle:
Principle #4Asymmetry

Solution Approach 2:

The patent segments the smoothing operation into two separate directional passes (ascending and descending). Instead of using a single complex smoothing operation, it divides the task into two simpler passes that can be independently calculated and then combined, achieving both efficiency and symmetry

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If kernel size is increased for better smoothing, then smoothing quality is improved, but computational complexity increases

Engineering Contradiction:
Improvesmoothing qualityVSAvoidcomputational complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent segments a large kernel smoothing operation into multiple smaller sequential passes using exponentially weighted moving averages. Instead of processing all pixels in a large kernel simultaneously with O(R*R) complexity, it performs two sequential passes with O(2*R) complexity, achieving the same smoothing quality with reduced computational burden

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses dynamic programming approach where each pixel's smoothed value is calculated based on previously computed values in the sequence. This allows the smoothing operation to adapt to local image characteristics while maintaining O(R) computational complexity per pass, avoiding the need for complex large-kernel operations

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10909663B2Processing a digital image
Publication Date: 2021.02.02 KOZUB DANYLO
  • US10909663B2 patent drawing
  • US10909663B2 patent drawing
  • US10909663B2 patent drawing

AI summary

A method of processing a digital image, the method comprising receiving a digital image, modifying each row of pixel colour values and then each column of modified pixel colour values or vice versa, represented as an array X of pixel or modified pixel colour values x(i), by calculating each value y(i) of an array Y as a function at least of an exponentially weighted moving average a(i) of the array X, calculated in ascending order of the array X value indices, and an exponentially weighted moving average b(i) of the array X, calculated in descending order of the array X value indices, or an exponentially weighted moving average b′(j) of an array X′ containing the values of the array X in reverse order, calculated in ascending order of the array X′ value indices, where i, j are the array value indices, wherein 0≤i<N, j=N−1−i, N is the array size, with replacement of x(i) with y(i).