Patent Document ID: 9691139
Application ID: 15025270
Patent Status: 1

Claim One:
1. A method of producing an output image with enhanced contrast, the method comprising: a) dividing a digital input image comprised of input image luma pixels into a plurality of blocks; b) for each of the blocks, computing a histogram of values of luma pixels, the values of luma pixels subdivided into a plurality of histogram bins; c) for each of the blocks, applying a predetermined threshold value to the histogram bins of the histogram, wherein for any histogram bin containing a quantity of luma pixels that exceeds the threshold value, the number of luma pixels in excess of the threshold value are distributed evenly among histogram bins that do not contain a quantity of luma pixels that exceeds the threshold value, thereby computing a revised histogram of values of luma pixels in the histogram bins; d) for each of the blocks, repeatedly determining if the revised histogram contains a quantity of luma pixels that exceeds the threshold value, and applying the predetermined threshold value to the histogram bins of the revised histogram, distributing luma pixels in excess of the threshold value evenly among histogram bins that do not contain a quantity of luma pixels that exceeds the threshold value, and computing a new histogram of values of luma pixels in the histogram bins until the new histogram of values of luma pixels does not contain a quantity of luma pixels that exceeds the threshold value; e) for each of the blocks, computing a cumulative histogram; f) for each of the blocks, scaling the cumulative histogram to compute an input-output curve; g) for each of the blocks, applying the input-output curve to the input pixel intensities to determine initial output pixel intensities; h) for each of the blocks, defining boundary portions that are contiguous with neighboring blocks; i) for each of the blocks, averaging the output pixel intensities of each of its boundary portions with the output pixel intensities of the respective contiguous neighboring blocks to define averaged output pixel intensities of each of the boundary portions of each of the blocks; and j) compiling the blocks comprised of pixels with averaged output pixel intensities to produce output image pixel data; and k) communicating the output image pixel data to an image data receiver.