Image processing circuit and method for reducing a difference between pixel values across an image boundary
AssigneeEquator Technologies, Inc.
InventorQinggang Zhou
Life of this patent
Estimating the term…
Abstract
An image processing circuit includes a processor that receives at least a portion of an image including a boundary and first and second contiguous pixels disposed on opposite sides of the boundary, the first and second pixels having respective first and second pixel values. The processor generates a boundary value from the first and second pixel values, compares the boundary value to a comparison value, and reduces the difference between the first and second values if the boundary value has a specified relationship to the comparison value. For example, such a processing circuit can be used to reduce blockiness in an image that has undergone block-based digital compression.
Claims36
An image processing circuit, comprising:
- a processor operable to,
- receive at least a portion of an image, the portion including a boundary, first and second contiguous pixels disposed on opposite sides of the boundary, and a third pixel, the first, second, and third pixels having respective first, second, and third pixel values;
- generate a boundary value from the first, second, and third values;
- compare the boundary value to a comparison value;
- and
- reduce a difference between the first and second values if the boundary value has a specified relationship to the comparison value.
An image processing circuit, comprising:
- a storage circuit operable to store at least a portion of an image including a boundary, first and second contiguous pixels disposed on opposite sides of the boundary, third and fourth pixels disposed on the same side of the boundary as the first pixel, and fifth and sixth pixels disposed on the same side of the boundary as the second pixel, the first, second, third, fourth, fifth, and sixth pixels having respective first, second, third, fourth, fifth, and sixth pixel values;
- and
- a processor coupled to the storage circuit, the processor operable to generate a boundary value from the first and second values, to generate a comparison value as a function of the first, second, third, fourth, fifth, and sixth pixel values, to compare the boundary value to the comparison value, and to reduce a difference between the first and second pixels values if the boundary value is related to the comparison value in a specified manner.
An image processing circuit, comprising:
- a storage circuit operable to store at least a portion of an image, the portion including a boundary and first and second contiguous pixel blocks disposed on opposite sides of the boundary, each block including pixels arranged in alignments and orthogonal alignments and having respective values, each pixel in a first alignment of the first block being contiguous with a respective pixel in a first alignment of the second block, the first alignments of the first and second blocks each including at least two respective pixels;
- and
- a processor coupled to the storage circuit, the processor operable to generate a boundary value from the values of all of the pixels in the first alignments of the first and second blocks, to compare the boundary value to a comparison value, and to reduce a difference between the value of a first pixel in the first alignment of the first block and the value of a respective first pixel in the first alignment of the second block if the boundary value has a specified relationship to the comparison value.
A processing circuit, comprising:
- a storage circuit operable to store at least a portion of an image, the portion including a boundary and first and second contiguous pixel blocks located on opposite sides of the boundary, the first and second blocks each including respective first and second alignments of at least two pixels having respective values, each pixel in the first alignment of the first block being contiguous with a respective pixel in the first alignment of the second block;
- and
- a processor coupled to the storage circuit, the processor operable to generate a boundary value from the values of the pixels in the first alignments of the first and second blocks, to generate a comparison value as a function of the values of all the pixels in the first and second alignments of the first block and in the first and second alignments of the second block, to compare the boundary value to the comparison value, and to reduce a difference between the value of a first pixel in the first alignment of the first block and the value of a respective first pixel in the first alignment of the second block if the boundary value has a specified relationship to the comparison value.
A method, comprising:
- calculating a boundary value from a first value of a first pixel, a second value of a second pixel, and a third value of a third pixel, the first and second pixels being contiguous with one another and located on opposite sides of a boundary;
- comparing the boundary value to a comparison value;
- and
- reducing a difference between the first and second values if the boundary value is related to the comparison value in a specified manner.
A method, comprising:
- calculating a boundary value from the values of all the pixels in first and second alignments of an image, the first and second alignments located on opposite sides of a boundary and each including at least two respective pixels, each pixel in the first alignment being contiguous with a respective pixel in the second alignment;
- comparing the boundary value to a comparison value;
- and
- reducing a difference between the value of a first pixel in the first alignment and the value of a respective second pixel in the second alignment if the boundary value has a specified relationship to the comparison value.
An image processing circuit, comprising:
- a processor operable to,
- receive at least a portion of an image, the portion including a predetermined boundary and first and second contiguous pixels disposed on opposite sides of the boundary and third and fourth contiguous pixels disposed on opposite sides of the boundary, the first, second, third, and fourth pixels having respective first, second, third, and fourth pixel values;
- determine whether the boundary is blocky as a function of the first, second, third, and fourth pixel values;
- and
- reduce a difference between the first and second pixel values and a difference between the third and fourth pixel values if and only if the boundary is blocky.
A method, comprising:
- determining whether a predetermined boundary between first and second contiguous pixels and between third and fourth contiguous pixels is blocky using the values of the first, second, third, and fourth pixels;
- and
- reducing a difference between the first and second values and reducing a difference between the third and fourth values if and only if the boundary is blocky.
An image processing circuit, comprising:
- a processor operable to,
- receive at least a portion of a decoded image, the portion including a boundary between first and second contiguous pixels;
- and
- calculate a roughness of the boundary as a function of quantization during encoding of an image, the encoding producing an encoded image that is later decoded into the decoded image.
A method, comprising:
- identifying a boundary between contiguous pixels of a decoded image;
- and
- calculating a roughness of the boundary as a function of quantization that is performed during encoding of an image, the encoding producing an encoded image that is later decoded into the decoded image.
An image processing circuit, comprising:
- a processor operable to,
- receive at least a portion of an image that has been decoded using a block-based decoding algorithm, the portion including a boundary and first and second contiguous decoded pixel blocks disposed on opposite sides of the boundary, the first pixel block having a first alignment of pixels and the second pixel block having a second alignment of pixels that is contiguous with the first alignment, the pixels within the first and second alignments having respective pixel values;
- determine whether the boundary is blocky as a function of an average difference between the value of each pixel in the first alignment and the value of a respective contiguous pixel in the second alignment;
- and
- reduce a difference between the first and second pixel values if and only if the boundary is blocky.
A method, comprising:
- for a boundary between first and second contiguous pixel blocks that have been decoded according to a block-based decompression standard, the first pixel block having a first alignment of pixels and the second pixel block having a second alignment of pixels that is contiguous with the first alignment, the pixels within the first and second alignments having respective pixel values, determining whether the boundary is blocky as a function of an average difference between the value of each pixel in the first alignment and the value of a respective contiguous pixel in the second alignment;
- and
- reducing a difference between the first and second values if and only if the boundary is blocky.
A method, comprising:
- determining whether a boundary between contiguous first and second pixel blocks is blocky, the pixel blocks having been decoded according to a block-based decompression standard, the first pixel block having a first pixel and the second pixel block having a second pixel that is contiguous with the first pixel, the first and second pixels having respective first and second values;
- reducing a difference between the first and second values if and only if the boundary is blocky;
- wherein the first pixel block includes a first orthogonal alignment of pixels that includes the first pixel;
- wherein the second pixel block includes a second orthogonal alignment of pixels that includes the second pixel and that is contiguous with the first orthogonal alignment;
- and
- wherein the processor is operable to determine whether the boundary is blocky by,
- calculating a boundary roughness equal to the average difference between the values of contiguous pairs of pixels in the first and second alignments,
- calculating a first-block average pixel difference equal to the sum of the differences from the first block divided by the number of differences from the first block,
- calculating a second-block average pixel difference equal to the sum of the differences from the second block divided by the number of differences from the second block,
- calculating a first-block average pixel value equal to the sum of the values of the pixels in the first block divided by the number of pixels in the first block,
- calculating a second-block average pixel value equal to the sum of the values of the pixels in the second block divided by the number of pixels in the second block,
- calculating a comparison value equal to the sum of the product of a first factor and the sum of the first- and second-block average pixel differences and the product of a second factor and the sum of the first- and second-block average pixel values, and
- determining that the boundary is blocky if the boundary roughness has a predetermined relationship to the comparison value.
A method, comprising:
- determining whether a boundary between contiguous first and second pixel blocks is blocky, the pixel blocks having been decoded according to a block-based decompression standard, the first pixel block having a first pixel and the second pixel block having a second pixel that is contiguous with the first pixel, the first and second pixels having respective first and second values;
- reducing a difference between the first and second values if and only if the boundary is blocky;
- wherein the first pixel block includes a first orthogonal alignment of pixels that includes the first pixel and a second orthogonal alignment of pixels that is contiguous with the first alignment;
- wherein the second pixel block includes a third orthogonal alignment of pixels that includes the second pixel and that is contiguous with the first orthogonal alignment, and a fourth orthogonal alignment of pixels that is contiguous with the third alignment;
- and
- wherein the processor is operable to determine whether the boundary is blocky by,
- calculating a boundary roughness equal to the minimum of a first predetermined value and the average difference between the values of contiguous pairs of pixels in the first and third alignments,
- calculating a first-block average pixel difference equal to the sum of the differences between the values of the corresponding pixels in the first and second alignments divided by the number of differences from the first and second alignments,
- calculating a second-block average pixel difference equal to the sum of the differences between the values of the corresponding pixels in the third and fourth alignments divided by the number of differences from the third and fourth alignments,
- calculating a comparison value equal to the sum of a second predetermined value and the product of a first factor and the maximum of the first-block pixel average and the second-block pixel average, and
- determining that the boundary is blocky if the boundary roughness has a predetermined relationship to the comparison value.
Dependencies are inferred from the claim text.