Filter for combined de-ringing and edge sharpening
AssigneeSharp Laboratories of America, Inc.
InventorSachin G. Deshpande
Life of this patent
Estimating the term…
Abstract
A filter for post-processing digital images and videos, having an edge mapper, a pixel sorter, and an adaptive filter that simultaneously performs de-ringing and edge sharpening. The combined filter is computationally simpler than known methods and can achieve removal of ringing artifacts and sharpening of true edges at the same time. The present invention also includes a preferred method of simultaneously de-ringing and edge sharpening digital images and videos.
Claims42
A filter system for post-processing a digital image, said digital image having a plurality of visual-edge pixels and a plurality of visual non-edge pixels, said filter system comprising:
- (a) an edge mapper for producing a binary map of said visual edge pixels and said visual non-edge pixels;
- (b) a pixel sorter comprising;
- (i) said pixel sorter for reading said binary map;
- and
- (ii) said pixel sorter for assigning to each pixel a type of filtration to be provided by said filter system, said type of filtration selected from the group consisting of:
- (A) de-ringing filtration;
- (B) edge sharpening filtration;
- and
- (C) no filtration;
- (c) an adaptive filter for receiving output from said pixel sorter;
- and
- (d) said adaptive filter comprising:
- (i) a de-ringing module for post-processing said visual non-edge pixels assigned a de-ringing filtration type of filtration;
- and
- (ii) an edge sharpener for post-processing said edge pixels assigned an edge sharpening filtration type of filtration.
A filter system for post-processing a digital image, said digital image having a plurality of visual-edge pixels and a plurality of visual non-edge pixels, said filter system comprising:
- (a) an edge mapper for producing a binary map of said visual edge pixels and said visual non-edge pixels, said edge mapper further comprising:
- (i) an edge detector comprising:
- (A) said edge detector for calculating intensity gradients for each pixel in said digital image;
- (B) said edge detector for assigning a first edge value to each edge pixel based on said intensity gradients;
- and
- (C) said edge detector for assigning a second edge value to each non-edge pixel based on said intensity gradients;
- and
- (ii) a memory storage array for storing said first edge value for each edge pixel and for storing said second edge value for each non-edge pixel;
- (b) a pixel sorter comprising;
- (i) said pixel sorter for reading said binary map;
- (ii) said pixel sorter for assigning to each pixel a type of filtration to be provided by said filter system;
- (iii) a first comparator for sorting said visual edge pixels from said visual non-edge pixels;
- (iv) a selector comprising:
- (A) said selector receiving output from said first comparator;
- and
- (B) said selector designating a kernel of pixels near each pixel being processed;
- and
- (v) a second comparator comprising:
- (A) said second comparator receiving output from said selector;
- (B) said second comparator assigning types of filtration to each pixel being processed based at least in part on a sum of first edge values and second edge values of said pixels in said kernel of pixels;
- and
- (C) said second comparator applying no de-ringing filter and no edge sharpener to said pixel being processed if said pixel being processed is a visual non-edge pixel based on said second edge value and said sum of first edge values and second edge values of said pixels in said kernel of pixels is not less than a predetermined threshold value defining a true visual edge;
- (c) an adaptive filter for receiving output from said pixel sorter;
- and
- (d) said adaptive filter comprising:
- (i) a de-ringing module for post-processing said visual non-edge pixels;
- and
- (ii) an edge sharpener for post-processing said edge pixels.
A filter system for post-processing a digital image, said digital image having a plurality of visual-edge pixels and a plurality of visual non-edge pixels, said filter system comprising:
- (a) an edge mapper for producing a binary map of said visual edge pixels and said visual non-edge pixels, said edge mapper further comprising:
- (i) an edge detector comprising:
- (A) said edge detector for calculating intensity gradients for each pixel in said digital image;
- (B) said edge detector for assigning a first edge value to each edge pixel based on said intensity gradients;
- and
- (C) said edge detector for assigning a second edge value to each non-edge pixel based on said intensity gradients;
- and
- (ii) a memory storage array for storing said first edge value for each edge pixel and for storing said second edge value for each non-edge pixel;
- (b) a pixel sorter comprising;
- (i) said pixel sorter for reading said binary map;
- (ii) said pixel sorter for assigning to each pixel a type of filtration to be provided by said filter system;
- and
- (iii) said pixel sorter further comprising:
- (A) a first comparator for sorting said visual edge pixels from said visual non-edge pixels;
- (B) a selector comprising:
- (1) said selector receiving output from said first comparator;
- and
- (2) said selector designating a kernel of pixels near each pixel being processed;
- and
- (C) a second comparator comprising:
- (1) said second comparator receiving output from said selector;
- and
- (2) said second comparator assigning types of filtration to each pixel being processed based at least in part on a sum of first edge values and second edge values of said pixels in said kernel of pixels;
- (c) an adaptive filter for receiving output from said pixel sorter, said adaptive filter for executing a grayscale subroutine for counting said number of visual edge pixels in said kernel of pixels, for summing grayscale values of all visual edge pixels in said kernel of pixels, and for summing grayscale values of all visual non-edge pixels in said kernel of pixels, said grayscale subroutine further comprising:
- i an i variable for storing a horizontal coordinate of each pixel in said digital image;
- ii a j variable for storing a vertical coordinate of each pixel in said digital image;
- iii an ix integer variable for counting a horizontal distance away from said i variable;
- iv an jy integer variable for counting a vertical distance away from said j variable;
- v an X integer variable for defining a length of a horizontal edge of said kernel of pixels;
- vi a Y integer variable for defining a length of a vertical edge of said kernel of pixels;
- vii a Kernel variable for storing a count of pixels in said kernel of pixels obtained by multiplying said X integer by said Y integer;
- viii a NonEdgeGrayscaleSum variable for storing said sum of grayscale values of all visual non-edge pixels in said kernel of pixels;
- ix an EdgeGrayscaleSum variable for storing said sum of grayscale values of all visual edge pixels in said kernel of pixels;
- x an EdgeValue(i, j) variable for storing said first edge value for each visual edge pixel and for storing said second edge value for each visual non-edge pixel;
- xi a Grayscale(i, j) variable for storing a grayscale value of each pixel located at coordinates i and j in said digital image;
- and
- xii a SumEdgePixels variable for counting a number of said visual edge pixels in said kernel of pixels;
- xiii wherein said grayscale subroutine is defined as:
- Kernel +32 +0 (2 * X +30 +0 1) * (2 * Y +30 +0 1);
- NonEdgeGrayscaleSum +32 +0 EdgeGrayscaleSum +32 +0 0;
- for(ix +32 +31 +0 X;
- ix +21 +32 +0 X;
- ix+30 +30 )
- for(jy +32 +31 +0 Y;
- jy +21 +32 +0 Y;
- jy+30 +30 )
- +55
- NonEdgeGrayscaleSum +30 +32 +0 (1 +31 +0 EdgeValue(i +30 +0 ix, j +30 +0 jy)) *
- GrayScale(i +30 +0 ix, j +30 +0 jy);
- EdgeGrayscaleSum +30 +32 +0 EdgeValue(i +30 +0 ix, j +30 +0 jy) * GrayScale(i +30
- ix, j +30 +0 jy);
- SumEdgePixels +30 +32 +0 EdgeValue(i +30 +0 ix, j +30 +0 jy);
- +56 .
- (d) said adaptive filter comprising:
- (i) a de-ringing module for post-processing said visual non-edge pixels;
- and
- (ii) an edge sharpener for post-processing said edge pixels.
A filter system for post-processing a digital image, said digital image haviiig a plurality of visual-edge pixels and a plurality of visual non-edge pixels, said filter system comprising:
- (a) an edge mapper for producing a binary map of said visual edge pixels and said visual non-edge pixels;
- (b) a pixel sorter comprising;
- (i) said pixel sorter for reading said binary map;
- and
- (ii) said pixel sorter for assigning to each pixel a type of filtration to be provided by said filter system;
- (c) an adaptive filter for receiving output from said pixel sorter;
- and
- (d) said adaptive filter comprising:
- (i) a de-ringing module for post-processing said visual non-edge pixels, said de-ringing module further comprising a weighting module, said weighting module altering a grayscale value of each visual non-edge pixel for final display in direct proportion to an average grayscale value of all visual non-edge pixels in a kernel of pixels, said average grayscale value further comprising:
- (A) a sum of grayscale values from said all visual non-edge pixels in said kernel of pixels;
- and
- (B) said sum divided by a number of said all visual non-edge pixels in a kernel of pixels;
- (C) said weighting module for executing a weighting subroutine for altering a grayscale value of each visual non-edge pixel for final display in proportion to an average grayscale value of all visual non-edge pixels in said kernel of pixels, said weighting subroutine further comprising:
- (1) a FinalGrayScale(i, j) variable;
- (2) said FinalGrayScale(i, j) variable storing a grayscale value for final display of each pixel being processed;
- (3) a Kernel variable for storing a count of pixels in said kernel of pixels;
- (4) a SumEdgePixels variable for counting a number of said visual edge pixels in said kernel of pixels;
- (5) a Non EdgeGrayscaleSum variable for storing said sum of grayscale values of all visual non-edge pixels in said kernel of pixels;
- and
- (6) wherein said weighting subroutine is defined as:
- FinalGrayScale(i, j)=(1/(Kernel−SumEdgePixels))*NonEdgeGrayscaleSum;
- and
- (ii) an edge sharpener for post-processing said edge pixels.
A filter system for post-processing a digital image, said digital image having a plurality of visual-edge pixels and a plurality of visual non-edge pixels, said filter system comprising:
- (a) an edge mapper for producing a binary map of said visual edge pixels and said visual non-edge pixels;
- (b) a pixel sorter comprising;
- (i) said pixel sorter for reading said binary map;
- and
- (ii) said pixel sorter for assigning to each pixel a type of filtration to be provided by said filter system;
- (c) an adaptive filter for receiving output from said pixel sorter;
- and
- (d) said adaptive filter comprising:
- (i) a de-ringing module for post-processing said visual non-edge pixels;
- and
- (ii) an edge sharpener for post-processing said edge pixels said edge sharpener further comprising an unsharp masking module, said unsharp masking module adding a high pass filtered image of said digital image to said digital image, said high pass filtered image being obtained by subtracting a low pass filtered image of said digital image from a scaled version of said digital image, said low pass filtered image for each pixel being processed further comprising:
- (A) an EdgeGrayscaleSum variable for storing a sum of grayscale values of all visual edge pixels in a kernel of pixels surrounding said pixel being processed;
- (B) a SumEdgePixels variable for counting a number of pixels representing a visual edge in said kernel of pixels surrounding said pixel being processed;
- and
- (C) said low pass filtered image for said pixel being processed being the ratio EdgeGrayscaleSum/Sum EdgePixels.
A filter system for post-processing a digital image, said digital image having a plurality of visual-edge pixels and a plurality of visual non-edge pixels, said filter system comprising:
- (a) an edge mapper for producing a binary map of said visual edge pixels and said visual non-edge pixels;
- (b) a pixel sorter comprising;
- (i) said pixel sorter for reading said binary map;
- and
- (ii) said pixel sorter for assigning to each pixel a type of filtration to be provided by said filter system;
- (c) an adaptive filter for receiving output from said pixel sorter;
- and
- (d) said adaptive filter comprising:
- (i) a de-ringing module for post-processing said visual non-edge pixels;
- and
- (ii) an edge sharpener for post-processing said edge pixels, said edge sharpener further comprising an unsharp masking module, said unsharp masking module adding a high pass filtered image of said digital image to said digital image, said unsharp masking module for executing a sharpening subroutine, said sharpening subroutine further comprising:
- (A) a FinalGrayScale(i, j) variable for storing a grayscale value for final display of each pixel being processed;
- (B) a Grayscale(i, j) variable for storing a grayscale value of an individual pixel at coordinates i and j in said digital image;
- (C) a SumEdgePixels variable for storing a count of visual edge pixels in said kernel of pixels;
- (D) an EdgeGrayscaleSum variable for storing a sum of grayscale values of all visual edge pixels in said kernel of pixels;
- and
- (E) a selectable λ variable for storing an edge sharpening factor;
- and
- (F) wherein said sharpening subroutine is defined as:
- FinalGrayScale(i, j)=(1+λ)*Grayscale(i, j)−(1/SumEdgePixels)*λ*EdgeGrayscaleSum.
A method of filtering signals of a digital image composed of a plurality of pixels, said method comprising the steps of:
- (a) mapping visual edges in said digital image to produce an edge map;
- (b) sorting pixels of said edge map into the following categories:
- (i) edge pixels representing visual edges;
- (ii) non-edge pixels representing visual non-edges substantially surrounded by visual non-edge pixels;
- and
- (iii) non-edge pixels representing visual non-edges substantially surrounded by visual edge pixels;
- (c) edge sharpening said edge pixels;
- (d) de-rining said non-edge pixels substantially surrounded by visual non-edge pixels;
- (e) performing neither edge sharpening nor de-ringing on said non-edge pixels substantially surrounded by visual edge pixels;
- and
- (f) displaying said edge pixels after edge sharpening and said non-edge pixels after de-ringing.
A method for post-processing a digital image having a plurality of pixels, said method comprising the steps of:
- (a) edge mapping edge pixels representing visual edges and non-edge pixels representing visual non-edges in said digital image to produce a binary map of edge mapped individual pixels;
- (b) sorting said edge mapped individual pixels for different types of filtration;
- (c) filtering sorted individual pixels adaptively, said step of filtering comprising the steps of:
- (i) edge sharpening said edge pixels;
- (ii) de-ringing said non-edge pixels substantially surrounded by visual non-ed gep pixels;
- and
- (iii) performing neither edge sharpening nor de-ringing on said non-edge pixels substantially surrounded by visual edge pixels;
- and
- (d) wherein said steps of edge sharpening and de-ringing may be performed substantially simultaneously.
A filter system for post-processing a digital image, said digital image having a plurality of visual-edge pixels and a plurality of visual non-edge pixels, said filter comprising:
- (a) edge mapping means for producing a binary map of said visual edge pixels and said visual non-edge pixels;
- (b) pixel sorting means for assigning visual non-edge pixels substantially surrounded by visual non-edge pixels to a de-ringing means, edge pixels to an edge sharpening means, and non-edge pixels substantially surrounded by visual edge pixels to neither said de-ringing means nor said edge sharpening means;
- (c) said de-ringing means for post-processing said visual non-edge pixels;
- and
- (d) said edge sharpening means for post-processing said edge pixels.
A filter system for post-processing a digital image, said digital image having a plurality of pixels, said filter system comprising:
- (a) an edge mapper for producing a binary map of said plurality of pixels;
- (b) a pixel sorter for sorting pixels of said digital image into categories for appropriate post-processing;
- (c) a first post-processing module for post-processing a first category of said plurality of pixels, said first post-processing module is a de-ringing module and said first category is non-edge pixels substantially surrounded by visual non-edge pixels;
- (d) a second post-processing module for post-processing a second category of said plurality of pixels, said second post-processing module is an edge sharpening module and said second category is edge pixels;
- and
- (e) a third category of said plurality of pixels being non-edge pixels substantially surrounded by visual edge pixels that receive no post-processing.
Dependencies are inferred from the claim text.