IP Library Granted Patent US 12682435
Granted Patent B2
US 12682435 · App. 18/373,814 · Granted Jul 14, 2026

Adaptive sharpening for blocks of pixels

Inventors: James Imber (Hertfordshire, GB); Joseph Heyward (Hertfordshire, GB); Kristof Beets (Hertfordshire, GB)
Assignee: Imagination Technologies Limited
G06T5/73G06T3/4053G06T5/94G06T2207/20021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12682435
App. No.
18/373,814
Granted
Jul 14, 2026
Kind
B2
Abstract

Methods and processing modules apply adaptive sharpening, for a block of input pixels for which processing is performed, to determine a block of output pixels. A block of non-sharp processed pixels is obtained based on the block of input pixels, the block of non-sharp processed pixels being for representing a non-sharp version of the block of output pixels. A block of sharp processed pixels is obtained based on the block of input pixels, the block of sharp processed pixels being for representing a sharp version of the block of output pixels. One or more indications of contrast for the block of input pixels is determined. Each of the output pixels of the block of output pixels is determined by performing a respective weighted sum of: (i) a corresponding non-sharp processed pixel in the block of non-sharp processed pixels and (ii) a corresponding sharp processed pixel in the block of sharp processed pixels. The weights of the weighted sums are based on the determined one or more indications of contrast for the block of input pixels.

Claims (57)

1 . A method of applying adaptive sharpening, for a block of input pixels for which upsampling is performed, to determine a block of output pixels, the method comprising:

obtaining a block of non-sharp upsampled pixels based on the block of input pixels, the block of non-sharp upsampled pixels being for representing a non-sharp version of the block of output pixels;

obtaining a block of sharp upsampled pixels based on the block of input pixels, the block of sharp upsampled pixels being for representing a sharp version of the block of output pixels;

determining one or more indications of contrast for the block of input pixels; and

determining each of the output pixels of the block of output pixels by performing a respective weighted sum of: (i) a corresponding non-sharp upsampled pixel in the block of non-sharp upsampled pixels and (ii) a corresponding sharp upsampled pixel in the block of sharp upsampled pixels;

wherein the method further comprises determining weights of the weighted sums based on the determined one or more indications of contrast for the block of input pixels, wherein said determining weights comprises determining two weights: a first weight, w non-sharp , and a second weight, w sharp , and wherein the non-sharp upsampled pixels in the block of non-sharp unsampled pixels are multiplied by the first weight, w non-sharp , in the weighted sums and wherein the sharp upsampled pixels in the block of sharp upsampled pixels are multiplied by the second weight, w sharp , in the weighted sums; and

wherein for a majority of the range of possible indications of contrast: (i) the first weight, w non-sharp , is larger than the second weight, w sharp , when the indicated contrast is relatively high, and (ii) the first weight, w non-sharp , is smaller than the second weight, w sharp , when the indicated contrast is relatively low.

2 . The method of claim 1 , wherein either:

said one or more indications of contrast for the block of input pixels is a single indication of contrast for the block of input pixels, wherein the weights of the weighted sums for determining each output pixel of the block of output pixels are based on the single indication of contrast; or

said one or more indications of contrast for the block of input pixels comprises a plurality of indications of contrast for the block of input pixels, wherein for each of the output pixel of the block of output pixels, the weights of the weighted sum for determining that output pixel are based on a respective one of the plurality of indications of contrast.

3 . The method of claim 1 , wherein the one or more indications of contrast for the block of input pixels are determined using a window of input pixels, wherein the window of input pixels covers at least a region represented by the block of output pixels.

4 . The method of claim 1 , wherein said determining one or more indications of contrast for the block of input pixels comprises:

identifying a minimum pixel value and a maximum pixel value within a window of input pixels, wherein the window of input pixels covers at least a region represented by the block of output pixels; and

determining a difference between the identified minimum and maximum pixel values within the window of input pixels.

5 . The method of claim 1 , wherein said determining one or more indications of contrast for the block of input pixels comprises determining a standard deviation or a variance of input pixel values within a window of input pixels, wherein the window of input pixels covers at least a region represented by the block of output pixels.

6 . The method of claim 1 , wherein both w non-sharp and w sharp are in a range from 0 to 1, and wherein w non-sharp +w sharp =1.

7 . The method of claim 1 , wherein w non-sharp +w sharp =1, and wherein a sharpness boost is applied by setting w sharp to be greater than 1.

8 . The method of claim 1 , wherein if an indication of contrast is below a threshold indicating that the block of input pixels is substantially flat then the first weight, w non-sharp is determined to be greater than zero and the second weight, w sharp , is determined to be zero.

9 . The method of claim 1 , wherein said obtaining a block of sharp upsampled pixels comprises determining the block of sharp upsampled pixels by implementing a sharpening technique on the block of input pixels.

10 . The method of claim 1 , wherein said obtaining a block of non-sharp upsampled pixels comprises determining the block of non-sharp upsampled pixels by performing bilinear upsampling on the block of input pixels.

11 . The method of claim 1 , wherein said obtaining a block of non-sharp upsampled pixels comprises determining the block of non-sharp upsampled pixels, wherein at least one of the non-sharp upsampled pixels of the block of non-sharp upsampled pixels is a diagonal pixel, wherein a diagonal pixel is at a position that is not in any of the rows nor in any of the columns of input pixels in the block of input pixels, wherein said determining the block of non-sharp upsampled pixels comprises:

determining indications of image gradients for the block of input pixels;

using the determined indications of image gradients to determine one or more weighting parameters which are indicative of weights of a diagonal kernel; and

determining the non-sharp upsampled pixels of the block of non-sharp upsampled pixels by applying kernels to input pixels of the block of input pixels, wherein the diagonal pixel in the block of non-sharp upsampled pixels is determined by applying the diagonal kernel to input pixels of the block of input pixels in accordance with the determined one or more weighting parameters.

12 . The method of claim 11 , wherein said using the determined indications of image gradients to determine one or more weighting parameters which are indicative of weights of a diagonal kernel comprises:

determining a weighting parameter indicative of a relatively low weight of the diagonal kernel at a position corresponding to an input pixel on a first diagonal line passing in a first diagonal direction through the diagonal pixel position in response to the determined indications of image gradients indicating that there is a relatively high image gradient in the first diagonal direction; and

determining a weighting parameter indicative of a relatively high weight of the diagonal kernel at a position corresponding to an input pixel on a second diagonal line passing in a second diagonal direction through the diagonal pixel position in response to the determined indications of image gradients indicating that there is a relatively low image gradient in the second diagonal direction.

13 . The method of claim 11 , wherein said applying the diagonal kernel to input pixels of the block of input pixels comprises:

applying a first diagonal subkernel to input pixels of the block of input pixels and multiplying the result by a first of the weighting parameters, a, to determine a first diagonal component;

applying a second diagonal subkernel to input pixels of the block of input pixels and multiplying the result by a second of the weighting parameters, b, to determine a second diagonal component; and

summing the first and second diagonal components.

14 . The method of claim 11 , wherein the one or more indications of contrast for the block of input pixels are determined using the determined indications of image gradients for the block of input pixels.

15 . The method of claim 1 , wherein said obtaining a block of sharp upsampled pixels comprises determining the block of sharp upsampled pixels, wherein at least one of the sharp upsampled pixels in the block of sharp upsampled pixels is a diagonal pixel, wherein a diagonal pixel is at a position that is not in any of the rows nor in any of the columns of input pixels in the block of input pixels, wherein said determining the block of sharp upsampled pixels comprises:

determining indications of image gradients for the block of input pixels;

using the determined indications of image gradients to determine one or more weighting parameters which are indicative of weights of a diagonal kernel; and

determining the sharp upsampled pixels of the block of sharp upsampled pixels by applying kernels to input pixels of the block of input pixels, wherein the diagonal pixel in the block of sharp upsampled pixels is determined by applying the diagonal kernel to input pixels of the block of input pixels in accordance with the determined one or more weighting parameters.

16 . The method of claim 1 , wherein:

the block of input pixels is a 4×4 block of input pixels,

the block of output pixels is a 2×2 block of output pixels,

the block of non-sharp upsampled pixels is a 2×2 block of non-sharp upsampled pixels, and

the block of sharp upsampled pixels is a 2×2 block of sharp upsampled pixels.

17 . A processing module configured to apply adaptive sharpening, for a block of input pixels for which upsampling is performed, to determine a block of output pixels, the processing module comprising:

contrast determination logic configured to determine one or more indications of contrast for the block of input pixels;

output pixel determination logic configured to:

receive a block of non-sharp upsampled pixels based on the block of input pixels, the block of non-sharp upsampled pixels being for representing a non-sharp version of the block of output pixels;

receive a block of sharp upsampled pixels based on the block of input pixels, the block of sharp upsampled pixels being for representing a sharp version of the block of output pixels; and

determine each output pixel of the block of output pixels by performing a respective weighted sum of: (i) a corresponding non-sharp upsampled pixel in the block of non-sharp upsampled pixels and (ii) a corresponding sharp upsampled pixel in the block of sharp upsampled pixels; and

weight determination logic configured to determine weights of the weighted sums based on the determined one or more indications of contrast for the block of input pixels, wherein the weight determination logic is configured to determine two weights: a first weight, w non-sharp , and a second weight, w sharp , and wherein the non-sharp upsampled pixels in the block of non-sharp unsampled pixels are multiplied by the first weight, w non-sharp , in the weighted sums and wherein the sharp upsampled pixels in the block of sharp upsampled pixels are multiplied by the second weight, w sharp , in the weighted sums; and

wherein for a majority of the range of possible indications of contrast: (i) the first weight, w non-sharp , is larger than the second weight, w sharp , when the indicated contrast is relatively high, and (ii) the first weight, w non-sharp , is smaller than the second weight, w sharp , when the indicated contrast is relatively low.

18 . A non-transitory computer readable storage medium having stored thereon an integrated circuit definition dataset that, when processed in an integrated circuit manufacturing system, configures the integrated circuit manufacturing system to manufacture a processing module configured to apply adaptive sharpening, for a block of input pixels for which upsampling is performed, to determine a block of output pixels, the processing module comprising:

contrast determination logic configured to determine one or more indications of contrast for the block of input pixels;

output pixel determination logic configured to:

receive a block of non-sharp upsampled pixels based on the block of input pixels, the block of non-sharp upsampled pixels being for representing a non-sharp version of the block of output pixels;

receive a block of sharp upsampled pixels based on the block of input pixels, the block of sharp upsampled pixels being for representing a sharp version of the block of output pixels; and

determine each output pixel of the block of output pixels by performing a respective weighted sum of: (i) a corresponding non-sharp upsampled pixel in the block of non-sharp upsampled pixels and (ii) a corresponding sharp upsampled pixel in the block of sharp upsampled pixels; and

weight determination logic configured to determine weights of the weighted sums based on the determined one or more indications of contrast for the block of input pixels, wherein the weight determination logic is configured to determine two weights: a first weight, w non-sharp , and a second weight, w sharp , and wherein the non-sharp upsampled pixels in the block of non-sharp unsampled pixels are multiplied by the first weight, w non-sharp , in the weighted sums and wherein the sharp upsampled pixels in the block of sharp upsampled pixels are multiplied by the second weight, w sharp , in the weighted sums; and

wherein for a majority of the range of possible indications of contrast: (i) the first weight, w non-sharp , is larger than the second weight, w sharp , when the indicated contrast is relatively high, and (ii) the first weight, w non-sharp , is smaller than the second weight, w sharp , when the indicated contrast is relatively low.