Patentable/Patents/US-9613405
US-9613405

Scalable massive parallelization of overlapping patch aggregation

PublishedApril 4, 2017
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Techniques for enhancing an image using pixel-specific processing are disclosed. An image can be enhanced by updating certain pixels through patch aggregation. Neighboring pixels of a selected pixel are identified. Respective patch values for patches containing the selected pixel are determined. Patch values provide update information for updating the respective pixels in the patch. Relevant patch values for the selected pixel are identified by identifying associated patches of the pixel. Information from the relevant patch values of the selected pixel may be obtained. Using this information, pixel-specific processing may be performed to determine an updated pixel value for the selected pixel or for neighboring pixels of the selected pixel. Pixel-specific processes may be executed for each of the selected or neighboring pixels. These pixel-specific processes can be executed in parallel. Therefore, through the execution of pixel-specific processes, which may be performed concurrently, an enhanced image may be determined.

Patent Claims
20 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method comprising: receiving an image comprising pixels located in the image, each pixel having a pixel value indicative of how the pixel is displayed in the image; determining a first subset of the pixels located in the image; determining a second subset of pixels located in the image, wherein at least one pixel in the first subset neighbors at least one pixel in the second subset; and for each pixel in the first subset: determining multiple overlapping patches within the image, the multiple patches containing the pixel, using an image enhancement algorithm to determine a respective patch value for each patch of the multiple overlapping patches, each patch value providing update information for updating the respective patch containing the pixel, identifying relevant patch values of the overlapping patches that provide information for updating the respective patch containing the pixel, and performing a first pixel-specific thread process by a processor to determine an aggregate patch value based on the relevant patch values; and performing a second pixel-specific thread process by the processor to update, based on the aggregate patch value for at least one pixel from the first subset, the pixel value for a neighboring pixel in the second subset.

Plain English Translation

An image enhancement method involves processing pixels to improve image quality. First, it receives an image composed of pixels, each having a pixel value. Then, it defines two subsets of pixels: a first subset and a second subset of neighboring pixels. For each pixel in the first subset, it identifies multiple overlapping patches containing that pixel. An image enhancement algorithm calculates a "patch value" for each patch, representing suggested changes for the patch's pixels. The method then identifies relevant patch values to update the patch. Next, a processor runs a pixel-specific thread to combine the relevant patch values into a single "aggregate patch value". Finally, a second pixel-specific thread updates the pixel value of a neighboring pixel in the second subset based on the aggregate patch value calculated for a pixel in the first subset.

Claim 2

Original Legal Text

2. The method of claim 1 further comprising performing a first plurality of pixel-specific thread processes executed in parallel to determine aggregate patch values based on respective patch values relevant to each respective pixel in the first subset.

Plain English Translation

The image enhancement method from the previous description also involves performing multiple pixel-specific threads in parallel. These threads calculate aggregate patch values based on patch values related to individual pixels in the first subset of pixels. This parallel processing accelerates the calculation of aggregate patch values for multiple pixels simultaneously.

Claim 3

Original Legal Text

3. The method of claim 1 further comprising performing a second plurality of pixel-specific thread processes executed in parallel to update, based on the respective aggregate patch values for the at least one pixel in the first subset, the respective pixel values for the respective neighboring pixels in the second subset.

Plain English Translation

The image enhancement method described earlier further comprises performing a second plurality of pixel-specific threads executed in parallel. These parallel threads update pixel values of neighboring pixels (in the second subset) based on the respective aggregate patch values computed for pixels in the first subset. This enables simultaneous updating of multiple neighboring pixels, improving processing speed.

Claim 4

Original Legal Text

4. The method of claim 1 , wherein the aggregate patch value is determined based on averaging the relevant patch values.

Plain English Translation

In the image enhancement method described earlier, determining the aggregate patch value involves averaging the relevant patch values. So, instead of picking a single patch value, it combines multiple values to produce a blended update value.

Claim 5

Original Legal Text

5. The method of claim 1 , wherein the aggregate patch value is determined based on a maximum relevant patch value or a minimum relevant patch value.

Plain English Translation

In the image enhancement method, calculating the aggregate patch value is performed by selecting either the maximum or the minimum relevant patch value, providing alternative ways to combine patch information beyond simple averaging.

Claim 6

Original Legal Text

6. The method of claim 1 , further comprising determining a weight for each relevant patch value based on the pixel in the first subset being located within a respective patch for the relevant patch value; and wherein updating the pixel value of the neighboring pixel in the second subset is further based on the respective weight of each relevant patch value.

Plain English Translation

The image enhancement method described earlier also determines a weight for each relevant patch value. This weight is based on the location of the pixel in the first subset within a specific patch. When updating a neighboring pixel's value (in the second subset), the weight of each relevant patch value is considered. This weighting allows some patches to have more influence than others in the pixel update.

Claim 7

Original Legal Text

7. The method of claim 1 further comprising performing additional iterations of updating the pixel value for the neighboring pixel in the second subset, wherein, in each of the additional iterations, a previous image from the prior iteration is used as the input image.

Plain English Translation

The image enhancement method described earlier can be applied iteratively. After the initial pixel value update for neighboring pixels (in the second subset), the process repeats using the modified image as the new input image. This allows for multiple rounds of refinement.

Claim 8

Original Legal Text

8. The method of claim 1 , wherein patch values are stored in a look-up table.

Plain English Translation

In the image enhancement method, patch values are stored in a look-up table. This allows for fast retrieval of patch values, which are precomputed or commonly used, increasing overall processing efficiency.

Claim 9

Original Legal Text

9. The method of claim 1 , wherein information of patches corresponding to the relevant patch values for each respective pixel in the first subset is kept in a look-up table.

Plain English Translation

In the image enhancement method, information about the patches corresponding to the relevant patch values for each pixel in the first subset is stored in a lookup table, improving the speed of identifying relevant patches during processing.

Claim 10

Original Legal Text

10. The method of claim 1 , wherein relevant patch values are identified from respective patches that contain each respective pixel in the first subset.

Plain English Translation

In the image enhancement method, relevant patch values are determined from patches that contain each specific pixel in the first subset. This ensures that only patches directly related to a pixel are used for updating its neighbors.

Claim 11

Original Legal Text

11. A system comprising: one or more processor for executing an image editing module comprising computer-readable instructions, which, when executed, cause the one or more processor to perform operations comprising: receiving an image comprising pixels located in the image, each pixel having a pixel value indicative of how the pixel is displayed in the image; determining a first subset of the pixels located in the image; determining a second subset of pixels located in the image, wherein at least one pixel in the first subset neighbors at least one pixel in the second subset; and for each pixel in the first subset: determining multiple overlapping patches within the image, the multiple overlapping patches containing the pixel, using an image enhancement algorithm to determine a respective patch value for each patch of the multiple overlapping patches, each patch value providing update information for updating the respective patch containing the pixel, identifying relevant patch values of the overlapping patches that provide information for updating the respective patch containing the pixel, and performing a first pixel-specific thread process to determine an aggregate patch value for the pixel, based on the relevant patch values; and performing a second pixel-specific thread process by the processor to update, based on the aggregate patch value for at least one pixel from the first subset, the pixel value for a neighboring pixel in the second subset.

Plain English Translation

An image editing system uses one or more processors to execute an image editing module. The module first receives an image composed of pixels, each having a pixel value. Then, it defines two subsets of pixels: a first subset and a second subset of neighboring pixels. For each pixel in the first subset, it identifies multiple overlapping patches containing that pixel. An image enhancement algorithm calculates a "patch value" for each patch, representing suggested changes for the patch's pixels. The module identifies relevant patch values. Next, a processor runs a pixel-specific thread to combine the relevant patch values into a single "aggregate patch value". Finally, a second pixel-specific thread updates the pixel value of a neighboring pixel in the second subset based on the aggregate patch value calculated for a pixel in the first subset.

Claim 12

Original Legal Text

12. The system of claim 11 , wherein the image editing module comprises further instructions for: performing a first plurality of pixel-specific thread processes executed in parallel to determine aggregate patch values for multiple pixels based on respective patch values relevant to each respective pixel in the first subset.

Plain English Translation

The image editing system from the previous description enhances images, and the image editing module also performs multiple pixel-specific threads in parallel to calculate aggregate patch values. These threads use patch values related to individual pixels in the first subset of pixels, enabling faster aggregate value processing.

Claim 13

Original Legal Text

13. The system of claim 11 , wherein the image editing module comprises further instructions for: performing a second plurality of pixel-specific thread processes executed in parallel to update, based on the respective aggregate patch values for the at least one pixel in the first subset, the respective pixel values for the respective neighboring pixels in the second subset.

Plain English Translation

The image editing system, as described earlier, further enhances images using an image editing module, performing a second plurality of pixel-specific threads executed in parallel. These parallel threads update pixel values of neighboring pixels (in the second subset) based on the respective aggregate patch values computed for pixels in the first subset, enabling simultaneous updates.

Claim 14

Original Legal Text

14. The system of claim 11 , wherein the image editing module comprises further instructions for: determining a weight for each relevant patch value based on the pixel in the first subset being located within a respective patch for the relevant patch value; and wherein updating the pixel value of the neighboring pixel in the second subset is further based on the respective weight of each relevant patch value.

Plain English Translation

In the image editing system described earlier, the image editing module also determines a weight for each relevant patch value based on the location of the pixel in the first subset within a specific patch. When updating a neighboring pixel's value (in the second subset), the weight of each relevant patch value is considered, allowing some patches to have more influence than others.

Claim 15

Original Legal Text

15. A non-transitory computer-readable medium tangibly embodying program code executable by at least one processor for providing an image editing application, the program code comprising: program code for receiving an image comprising pixels located in the image, each pixel having a pixel value indicative of how the pixel is displayed in the image; program code for determining a first subset of the pixels located in the image; program code for determining a second subset of pixels located in the image, wherein at least one pixel in the first subset neighbors at least one pixel in the second subset; and for each pixel in the first subset: program code for determining multiple overlapping patches within the image, the multiple overlapping patches containing the pixel, program code for using an image enhancement algorithm to determine a respective patch value for each patch of the multiple overlapping patches, each patch value providing update information for updating the respective patch containing the pixel, program code for identifying relevant patch values of the overlapping patches that provide information for updating the respective patch containing the pixel, and program code for performing a first pixel-specific thread process to determine an aggregate patch value for the pixel, based on the relevant patch; and performing a second pixel-specific thread process by the processor to update, based on the aggregate patch value for at least one pixel from the first subset, the pixel value for a neighboring pixel in the second subset.

Plain English Translation

A non-transitory computer-readable medium stores program code for an image editing application. The application receives an image composed of pixels, each having a pixel value. It defines two subsets of pixels: a first and a second subset of neighboring pixels. For each pixel in the first subset, it identifies overlapping patches containing that pixel. An image enhancement algorithm calculates a patch value for each patch. The application identifies relevant patch values and runs a pixel-specific thread to combine the values into an aggregate patch value. Finally, a second pixel-specific thread updates the pixel value of a neighboring pixel in the second subset based on the aggregate patch value calculated for a pixel in the first subset.

Claim 16

Original Legal Text

16. The non-transitory computer-readable medium of claim 15 , further comprising: program code for performing a first plurality of pixel-specific thread processes executed in parallel to determine aggregate patch values based on respective patch values relevant to each respective pixel in the first subset.

Plain English Translation

The non-transitory computer-readable medium described earlier, stores program code that performs multiple pixel-specific threads in parallel. These threads calculate aggregate patch values based on patch values related to individual pixels in the first subset of pixels, to speed up processing.

Claim 17

Original Legal Text

17. The non-transitory computer-readable medium of claim 15 , further comprising: program code for performing a second plurality of pixel-specific thread processes executed in parallel to update, based on the respective aggregate patch values for the at least one pixel in the first subset, the respective pixel values for the respective neighboring pixels in the second subset.

Plain English Translation

The non-transitory computer-readable medium, as described earlier, includes program code that performs a second plurality of pixel-specific threads executed in parallel to update pixel values of neighboring pixels (in the second subset). This code updates values based on the aggregate patch values calculated for pixels in the first subset.

Claim 18

Original Legal Text

18. The non-transitory computer-readable medium of claim 15 , further comprising: program code for determining a weight for each relevant patch value based on the pixel in the first subset being located within a respective patch for the relevant patch value; and wherein updating the pixel value of the neighboring pixel is further based on the respective weight of each relevant patch value.

Plain English Translation

The non-transitory computer-readable medium described earlier, contains program code that determines a weight for each relevant patch value based on the location of the pixel in the first subset within the patch. This code considers the weight of each value when updating a neighboring pixel's value, allowing patches to have more influence than others.

Claim 19

Original Legal Text

19. The non-transitory computer-readable medium of claim 15 , wherein the aggregate patch value is determined based on averaging the relevant patch values.

Plain English Translation

In the non-transitory computer-readable medium, storing code as previously described, the aggregate patch value is determined by averaging the relevant patch values, combining multiple values to produce a blended update.

Claim 20

Original Legal Text

20. The non-transitory computer-readable medium of claim 15 , wherein the aggregate patch value is determined based on a maximum relevant patch value or a minimum relevant patch value.

Plain English Translation

In the non-transitory computer-readable medium storing code as previously described, the aggregate patch value can be determined by either the maximum or minimum relevant patch value, providing alternatives beyond averaging.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

June 21, 2016

Publication Date

April 4, 2017

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Scalable massive parallelization of overlapping patch aggregation” (US-9613405). https://patentable.app/patents/US-9613405

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-9613405. See llms.txt for full attribution policy.