Patent Publication Number: US-9842410-B2

Title: Image compression and decompression with noise separation

Description:
TECHNICAL FIELD 
     This disclosure relates to image processing and, more particularly, to image compression and decompression. 
     BACKGROUND 
     Image compression seeks to reduce the size of image data for more efficient transfer and/or storage of the image. The size of image data may be reduced, for example, by attempting to reduce irrelevant and/or redundant portions of the image data. Conventional image compression techniques provide acceptable levels of compression for a variety of different image types. In some cases, however, conventional image compression techniques perform in a sub-optimal manner. 
     For example, conventional image compression techniques tend to perform poorly on images that include a textured area. Examples of textured areas may include, but are not limited to, mottled carpet, grass, stone, building facades, paved surfaces, and the like. In some cases, when compressing an image with a textured area, conventional image compression techniques may degrade or eliminate the texturing of the area. In other cases, to avoid degradation of the textured area, conventional image compression techniques encode the image at a higher bit rate resulting in a lesser amount of compression and larger file size than may be desired. 
     SUMMARY 
     A method may include separating a noise component from an original image resulting in a de-noised image, determining a noise parameterization for the noise component, and compressing the de-noised image and the noise parameterization. 
     A system may include a noise processing circuit configured to separate a noise component from an original image resulting in a de-noised image, a noise parameterization circuit configured to determine a noise parameterization for the noise component, and a compression circuit configured to compress the de-noised image and the noise parameterization. 
     A system may include a decompressor configured to decompress a compressed de-noised image and a compressed noise parameterization for the de-noised image, a noise generator configured to generate noise according to the noise parameterization, and a combine circuit configured to combine the noise generated by the noise generator and at least a portion of the de-noised image. 
     This Summary section is provided merely to introduce certain concepts and not to identify any key or essential features of the claimed subject matter. Many other features and embodiments of the invention will be apparent from the accompanying drawings and from the following detailed description. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings show one or more embodiments; however, the accompanying drawings should not be taken to limit the invention to only the embodiments shown. Various aspects and advantages will become apparent upon review of the following detailed description with reference to the drawings. 
         FIG. 1  is a block diagram illustrating an exemplary architecture for a data processing system. 
         FIG. 2  is a block diagram illustrating an exemplary image compression system. 
         FIG. 3  is a block diagram illustrating an exemplary image decompression system. 
         FIG. 4  is a block diagram illustrating another exemplary image compression system. 
         FIG. 5  is a block diagram illustrating another exemplary image decompression system. 
         FIG. 6  is a flow chart illustrating an exemplary method of operation for an image processing system. 
         FIG. 7  is a flow chart illustrating another exemplary method of operation for an image processing system. 
     
    
    
     DETAILED DESCRIPTION 
     While the disclosure concludes with claims defining novel features, it is believed that the various features described herein will be better understood from a consideration of the description in conjunction with the drawings. The process(es), machine(s), manufacture(s) and any variations thereof described within this disclosure are provided for purposes of illustration. Any specific structural and functional details described are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the features described in virtually any appropriately detailed structure. Further, the terms and phrases used within this disclosure are not intended to be limiting, but rather to provide an understandable description of the features described. 
     This disclosure relates to image processing and, more particularly, to image compression and decompression. In accordance with the inventive arrangements disclosed herein, images that have textured regions may be processed by considering the texturing independently, or separately, from the image. The texture within an original image may be described by a noise function and one or more parameters for the noise function, collectively referred to as a “noise parameterization.” Characteristics of the texture, e.g., noise, described by the noise parameterization may be removed from the original image resulting in a de-noised version of the original image called the de-noised image. The noise parameterization is compact in size for purposes of storage. The de-noised image and the noise parameterization may be compressed and stored in memory for subsequent use. 
     The stored de-noised image may be retrieved from memory and decompressed. The noise parameterization for the de-noised image may also be retrieved from memory and decompressed. The noise parameterization may be used to generate noise that, when combined to the de-noised image, generates a texture that approximates the look of the original texture removed from the original image. While described with reference to the de-noised image as a whole, the processes described herein may be applied to one or more specific regions of the de-noised image if desired. 
     The resulting combination of the de-noised image and generated noise produce a high quality texture for the image. The texture has characteristics that are the same as, or similar to, those initially determined from the original image. While the texture is of high quality, the texture within the constructed version of the original image is different from the texture within the original image. The generated texture and the original texture differ in ways that are unimportant to a user. 
     As an example, consider an original image that includes a region with grass. The texture of the grassy region may be accurately described by a particular noise function and parameters. The de-noised image and the noise parameterization generated from the original image may be stored in memory in compressed form. When retrieved from memory, the noise parameterization may be used to generate the texture of the grassy region, which may be combined with the de-noised image. The resulting constructed version of the original image, referred to as the constructed image, has a texture in the grassy region that looks like, e.g., approximates, the texture of the grassy region in the original image. The texture in the constructed image, however, may differ from the texture in the original image when compared on a pixel by pixel basis. For example, a comparison of the original image and the constructed image may reveal that individual blades of grass in the texture region of the constructed image may differ from individual blades of grass in the original image. To a user viewing the constructed image, the texture of the grassy region in the constructed image looks like the grassy region in the original image. 
     The techniques described within this disclosure may also be used to create images, e.g., computer-generated images, and apply textures to the images. For example, a graphic artist may create an image and select or create a noise function to be applied to one or more regions of the image. The noise function, in combination with parameters for the noise function, may be used to generate a texture that may be applied to the image. The resulting image, also referred to herein as a constructed image, may be compressed efficiently since the texture may be efficiently separated from the image and stored compactly in the form of a noise parameterization. It should be appreciated that a user may also edit an existing, e.g., non-computer-generated, image through application of texture as described herein. 
     The inventive arrangements described herein may be implemented as a method or process performed by a data processing system and/or an electronic circuit such as an integrated circuit (IC) within a data processing system. The IC, for example, may be a processor. In another aspect, the inventive arrangements may be implemented as a system, e.g., an apparatus, such as an electronic circuit. The electronic circuit may be implemented as an IC that may be implemented as, or include, a processor. Examples of processors may include, but are not limited to, central processing units (CPUs), graphics processing units (GPUs), controllers, digital signal processors (DSPs), or the like. Further, the processor may be part of a larger system such as a programmable IC, a data processing system or other computing and/or communication device, an entertainment and/or gaming system or console, an automobile, etc. 
     For purposes of simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numbers are repeated among the figures to indicate corresponding, analogous, or like features. 
       FIG. 1  is a block diagram illustrating an exemplary architecture  100  for a data processing system. Architecture  100  may be used to implement any of a variety of different systems and/or devices that include a processor and memory capable of performing the operations described within this disclosure. In some cases, the particular system and/or device implemented using architecture  100  may include fewer components or more components than shown. Further, the particular operating system and/or application(s) included may vary. Exemplary systems that may use architecture  100  may include, but are not limited to, embedded systems, mobile phones, personal computing devices such as desktop, laptop, and/or tablet computing devices, servers, gaming consoles, entertainment systems, display devices, and the like. 
     As pictured, architecture  100  includes at least one processor  102 . Examples of processor  102  may include, but are not limited to, a CPU, a DSP, a GPU, a controller, a field programmable gate array or other programmable IC, or the like. Processor  102  includes an image processing system  105  implemented as circuitry and configured to perform image processing. In one aspect, image processing system  105  may be configured to extract a noise component from an image, generate a de-noised image, perform compression on the various components generated from the image, and store the compressed components in a memory. Image processing system  105  may also retrieve the compressed components from the memory, decompress the compressed components, generate noise approximating a texture, and combine the texture to the de-noised image. 
     Processor  102  and/or image processing system  105  may be coupled to memory elements  110  through a system bus  115  or other suitable circuitry. Architecture  100  may store program code within memory elements  110 . Processor  102  executes the program code accessed from memory elements  110  via system bus  115 . Memory elements  110  include one or more physical memory devices such as, for example, a local memory  120  and one or more bulk storage devices  125 . Local memory  120  refers to random access memory (RAM) or other non-persistent memory device(s) generally used during actual execution of the program code. Bulk storage device  125  may be implemented as a hard disk drive (HDD), a solid state drive (SSD), or another persistent data storage device. Architecture  100  may also include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from bulk storage device  125  during execution. 
     Input/output (I/O) devices such as a keyboard  130 , a display device  135 , and a pointing device  140  may optionally be coupled to architecture  100 . In some cases, one or more of the I/O devices may be combined as in the case where a touchscreen is used as display device  135 . In that case, display device  135  may also implement keyboard  130  and pointing device  140 . 
     The I/O devices may be coupled to architecture  100  either directly or through intervening I/O controllers. One or more network adapters  145  may also be coupled to architecture  100  to enable architecture  100  to become coupled to other systems, computer systems, remote printers, and/or remote storage devices through intervening private or public networks. Modems, cable modems, Ethernet cards, wireless transceivers, and/or wireless radios are examples of different types of network adapter  145  that may be used with architecture  100 . Depending upon the particular device implemented using architecture  100 , the specific type of network adapter  145 , or network adapters as the case may be, will vary. 
     As pictured in  FIG. 1 , memory elements  110  may store an operating system  150  and optionally one or more applications  155 . In one aspect, operating system  150  and application(s)  155 , being implemented in the form of executable program code, are executed by architecture  100 . As such, operating system  150  and application(s)  155  may be considered an integrated part of architecture  100 . Operating system  150 , application(s)  155 , and any data items used, generated, and/or operated upon by architecture  100  are functional data structures that impart functionality when employed as part of a system implemented using architecture  100 . 
     In some cases, architecture  100  may include operational software where operating system  150  and applications  155  are implemented as a single, larger program. For example, in the case where architecture  100  is used to implement an embedded system, the functions performed by operating system  150  and application(s)  155  may be combined and implemented as an integrated program. 
     Architecture  100  is presented for purposes of illustration only. In other examples, architecture  100  may include a processor  102  such as a CPU and a separate GPU. In general, a GPU is optimized for manipulating computer graphics, performing image processing, and the like. In some cases, the processor, e.g., the CPU, may offload particular tasks ordinarily performed by the CPU to the GPU for processing. In still other examples, the GPU may be implemented on a separate circuit board than processor  102 . Further, the GPU may have separate memory elements, e.g., separate local memory, than processor  102 . The GPU may include image processing system  105  instead of processor  102 . In another example, both processor  102  and the GPU may include image processing system  105 . 
       FIG. 2  is a block diagram illustrating an exemplary image compression system  200 . In one aspect, image compression system  200  may be an exemplary implementation of image processing system  105  of  FIG. 1 . In another aspect, image processing system  105  may include image compression system  200  as one system, while also including one or more other systems. 
     Image compression system  200  may include a noise processing circuit  215 , a noise parameterization circuit  225 , and a compression circuit  220 . Noise processing circuit  215  may receive an original image  250 . Noise processing circuit  215  may be configured to separate a noise component  255  from original image  250  resulting in a de-noised image  260 . Noise processing circuit  215  may provide noise component  255  to noise parameterization circuit  225  and provide de-noised image  260  to compression circuit  220 . 
     Noise parameterization circuit  225  may be configured to determine a noise parameterization  265  for noise component  255 . In one aspect, noise parameterization circuit  225  may use a “noise by example” processing technique. One example of a “noise by example” processing technique that may be used to determine the noise function and parameters for the noise function is described within Galerne, et al., “Gabor Noise by Example,” ACM Transactions on Graphics (TOG)—Proceedings of ACM SIGGRAPH 2012, vol. 31, issue 4, (July 2012). In another aspect, while “Gabor Noise by Example” discloses the use of Gabor noise function, an Anistropic noise function may also be used. 
     Noise parameterization circuit  225  may provide noise parameterization  265  to compression circuit  220 . Compression circuit  220  may be configured to compress de-noised image  260  and noise parameterization  265  thereby generating compressed de-noised image  270  and compressed noise parameterization  275 . Compressed de-noised image  270  and compressed noise parameterization  275  may be stored in a memory. 
     In one aspect, de-noised image  260 , which lacks high frequency noise, or texture, may be compressed to a greater degree than original image  250 . Noise parameterization  265  is already in a compact form and may be compressed further. Image compression system  200  may achieve greater compression than other conventional image compression techniques. Still, when the compressed data is read from memory and rendered, the character of the texture is maintained. 
       FIG. 3  is a block diagram illustrating an exemplary image decompression system  300 . In one aspect, image decompression system  300  may be an exemplary implementation of image processing system  105  of  FIG. 1 . In another aspect, image processing system  105  may include image decompression system  300  as one system, while also including one or more other systems. For example, image processing system  105  may include both image compression system  200  and image decompression system  300 . 
     Image decompression system  300  may include a decompression circuit  315 , a noise generator  320 , and a combine circuit  325 . Compressed de-noised image  270  and compressed noise parameterization  275  may be retrieved from a memory and received by decompression circuit  315 . Decompression circuit  315  decompresses compressed de-noised image  270  and compressed noise parameterization  275  to generate, or recover, noise parameterization  265  and de-noised image  260 . Noise parameterization  265  is provided to noise generator  320 . Noise generator  320  generates noise  330  using noise parameterization  265 . 
     Combine circuit  325  receives noise  330  and de-noised image  260 . Combine circuit  325  combines noise  330  with de-noised image  260  to generate a constructed image  350 . As one example, combine circuit  325  may add noise  330  with de-noised image  260 . As discussed, the texture within constructed image  350  appears similar to the texture in original image  250 , but is not identical. 
       FIG. 4  is a block diagram illustrating another exemplary image compression system  400 . In one aspect, image compression system  400  may be an exemplary implementation of image processing system  105  of  FIG. 1 . In another aspect, image processing system  105  may include image compression system  400  as one system, while also including one or more other systems. As pictured, image compression system  400  may include a noise processing circuit  402 , a segmentation circuit  415 , a noise parameterization circuit  420 , and a compression circuit  425 . 
     An original image  450  is provided to noise processing circuitry  402 . In one embodiment, noise processing circuitry  402  may include a filter circuit  405  and a subtraction circuit  410 . Original image  450  may include one or more regions that include texture. For example, original image  450  may include a grassy region, a roadway or sidewalk, etc. Each of the exemplary regions may be considered a different type of texture. Each texture may be considered a different type of noise that may be separated and/or removed from original image  450 . 
     Referring to  FIG. 4 , original image  450  is provided as an input to filter circuit  405  and to subtraction circuit  410 . Filter circuit  405  may filter the original image resulting in a de-noised image  455 . For example, filter circuit  405  may perform a de-noise operation on original image  450  and generate de-noised image  455 . De-noised image  455  is a version of original image  450  with noise, detectable by filter circuit  405 , removed. In one embodiment, filter circuit  405  may be implemented as a bilateral filter. In another embodiment, filter circuit  405  may be implemented as a local Laplacian filter. It should be appreciated, that any of a variety of different filter types may be used to extract noise from original image  450 . The particular type of filter used, however, may be one that preserves edges within original image  450 . Accordingly, the preserved edges will still be included within de-noised image  455 . 
     Filter circuit  405  outputs de-noised image  455  to segmentation circuit  415  and to subtraction circuit  410 . Subtraction circuit  410  subtracts de-noised image  455  from original image  450  to generate noise component  460 . Subtraction circuit  410  outputs noise component  460  to noise parameterization circuit  420 . 
     In one example, the particular implementation of noise processing circuit  402  described with reference to  FIG. 4  may also be used to implement noise processing circuit  215  of  FIG. 2 . 
     Segmentation circuit  415  segments de-noised image  455  into a plurality of different regions. In one embodiment, segmentation circuit  415  may segment de-noised image  455  into a plurality of different regions where the regions are rectangular blocks. For example, the blocks may be a fixed number of pixels in width and a fixed number of pixels in height. In one exemplary implementation the regions may be 16×16 pixels. 
     In another embodiment, segmentation circuit  415  may segment de-noised image  455  into a plurality of irregular shaped regions. Any of a variety of known image segmentation techniques may be used to generate the irregular shaped regions. As defined herein, the term “irregular shaped region” means that the shape of a region may not be rectangular and/or may differ from the shape of another region or of each other region. The boundary or border of an irregular shaped region, for example, may be determined by detected edges. Exemplary image segmentation techniques may include, but are not limited to, thresholding clustering methods (e.g., K-means), compression-based methods, histogram-based methods, or the like. 
     Segmentation circuit  415  generates segmentation  465  that may be provided to noise parameterization circuit  420 . In one aspect, segmentation  465  may be a mapping of the various regions determined from segmenting de-noised image  455 . Segmentation circuit  415  may also provide de-noised image  455  to compression circuit  425 . 
     Noise parameterization circuit  420  receives noise image  460  and segmentation  465 . It should be appreciated that segmentation  465 , as determined from de-noised image  455 , also correlates, or maybe overlaid upon, noise component  460 . For example, noise component  460  may be a “noise image.” Each region defined by segmentation  465  from de-noised image  455  may correlate, on a one-to-one basis, with a region of noise component  460 . For each region of noise component  460  that corresponds to a region specified by segmentation  465 , noise parameterization circuit  420  may determine one or more noise parameterizations. As previously noted, a noise parameterization may specify a noise function and one or more parameters that may be used by that noise function. The noise parameterization(s) may be determined as previously described within this specification. 
     In one embodiment, noise parameterization circuit  420  may determine one noise parameterization for each region. In another embodiment, noise parameterization circuit  420  may determine one, or more, noise parameterizations for each region depending upon the characteristics of each particular region. For example, a region may include more than one texture. In that case, noise parameterization circuit  420  may determine a noise parameterization for each different texture, e.g., for each sub-region of the region having a particular texture, thereby resulting in a plurality of noise parameterizations for that particular region. 
     Noise parameterization circuit  420  generates a noise dictionary  470  and an image segmentation map  475 . In one embodiment, noise dictionary  470  may be implemented as a data structure, e.g., a file, specifying the noise parameterizations generated for each region of segmentation  465 . For example, noise dictionary  470  may include the noise function and parameter(s) (e.g., the noise parameterization) as a pair for one or more or for each different region of noise component  460 . 
     Image segmentation map  475  may be implemented as a data structure, e.g., a file, specifying regions and a corresponding reference for each region that indicates, or points to, a particular noise parameterization from noise dictionary  470  for that region of noise component  460  (and, as such, for de-noised image  455 ). In one aspect, image segmentation map  475  may specify the particular noise parameterization to be used on a per-pixel basis. For those regions associated with more than one noise parameterization, image segmentation map  475  may specify a reference to each of the noise parameterizations, in noise dictionary  470 , for the region. Further, for those regions associated with a plurality of noise parameterizations, image segmentation map  475  may specify the location and/or contour of the sub-region within the region for each respective noise parameterization. Also, within a region or sub-region, parameters might be interpolated to vary the noise across the region. 
     Noise parameterization circuit  420  outputs noise dictionary  470  and image segmentation map  475  to compression circuit  425 . Compression circuit  425  may compress de-noised image  455 , noise dictionary  470 , and image segmentation map  475 . As pictured, compression circuit  425  outputs compress de-noised image  475 , compressed noise dictionary  480 , and compressed image segmentation map  485 . In one embodiment, compression circuit  425  may store compressed de-noised image  475 , compressed noise dictionary  480 , and compressed image segmentation map  485  within memory for subsequent recall. 
       FIG. 5  is a block diagram illustrating another exemplary image decompression system  500 . In one aspect, image decompression system  500  may be an exemplary implementation of image processing system  105  of  FIG. 1 . In another aspect, image processing system  105  may include image compression system  500  as one system, while also including one or more other systems. For example, image processing system  105  may include both image compression system  400  and image decompression system  500 . 
     As pictured, image decompression system  500  includes a decompression circuit  505 , a combine circuit  510 , and a noise generator  515 . Image decompression system  500  may begin operating on components of an image retrieved from a memory. For purposes of illustration, compressed de-noised image  475 , compressed noise dictionary  480 , and compressed image segmentation map  485  are fetched from a memory for processing. As pictured, compressed de-noised image  475 , compressed noise dictionary  480 , and compressed image segmentation map  485  may be received by decompression circuit  505 . Decompression circuit  505  may decompress compressed de-noised image  475  to generate, or recover, de-noised image  455 , decompress compressed noise dictionary  480  to generate, or recover, noise dictionary  470 , and decompress compressed image segmentation map  485  to generate, or recover, image segmentation map  475 . 
     Decompression circuit  505  provides de-noised image  455  to combine circuit  510 . Decompression circuit  505  provides noise dictionary  470  and image segmentation map  475  to noise generator  515 . Noise generator  515  may generate noise for the various regions of image segmentation map  475 . For example, for each region in image segmentation map  475 , noise generator  515  may determine, or read, the appropriate noise parameterization for that region. Noise generator  515  obtains the noise parameterization, e.g., the noise function and the parameter(s) for the noise function, from noise dictionary  470 . Noise generator  515  generates noise  520  using the obtained noise parameterizations for the different regions of image segmentation map  475 . In one example, noise  520  may be a noise image formed of the generated noise for each region specified in image segmentation map  475 . 
     Noise  520  approximates noise component  460  of  FIG. 4 . For example, the texture of noise  520 , when rendered to, or combined with, the de-noised image  455 , approximates the texture of noise component  460 . It should be appreciated, however, that noise  520 , which is generated from noise generator  515  using one or more noise parameterizations, is not identical to noise component  460 . 
     Combine circuit  510  receives de-noised image  455  and noise  520 . Combine circuit  510  may combine de-noised image  455  with noise  520  to generate a constructed image  550 . In one example, combine circuit  510  may add noise  520  to de-noised image  455 . Within constructed image  550 , the textured regions approximate the textured regions of original image  450 , but are not identical. Rather, since noise  520  has same or similar characteristics as noise component  460 , the textures within constructed image  550  appear similar to those of original image  450 . For example, a region of original image  450  that includes grass will appear as grass in constructed image  550 . The position of each blade of grass in the region, however, may differ from that of original image  450 . 
     In another embodiment, image decompression system  500  may generate a portion of constructed image  550 . For example, rather than generating a complete image, image decompression system  500  may generate a particular portion of constructed image  550 . The portion may be a particular region or combination of two or more regions (or partial regions such as a sub-region having a particular texture) as the case may be. 
       FIG. 6  is a flow chart illustrating an exemplary method  600  of operation for an image processing system. In one example, method  600  may be performed by the system illustrated in  FIG. 4 . Method  600  may begin in a state where the system has received an original image for processing. 
     In block  605 , the system generates a de-noised image. For example, the system may apply a filter to the original image to remove at least a portion of the noise from the original image thereby resulting in the de-noised image. In block  610 , the system may generate a noise component. For example, the system may subtract the de-noised image from the original image thereby generating a noise component. In one aspect, blocks  605  and  610  may be collectively referred to as separating the noise component from the original image. 
     In block  615 , the system may segment the de-noised image into a plurality of different regions. In block  620 , the system may determine noise parameterizations for the regions. For example, the system may determine one or more noise parameterizations for each region. 
     In block  625 , the system may create an image segmentation map. The image segmentation map may specify segments, as determined in block  615 , and a reference or pointer to a noise parameterization for each segment. As discussed, segments of the de-noised image may correspond to, or be mapped to, regions of the noise component. In one example, regions of the de-noised image may correspond to regions of the noise component on a one-to-one basis. 
     In block  630 , the system may create a noise dictionary. The noise dictionary may be a list of the different noise parameterizations specified within the image segmentation map. In one embodiment, the number of noise parameterizations included in the noise dictionary may be limited. For example, the system may limit the number of noise parameterizations to 2 N , where “N” is an integer value. The 2 N  most commonly used noise parameterizations for the original image or for a plurality of different images may be used. For each noise parameterization of a region that is excluded from the noise dictionary, the excluded noise parameterization may be mapped to a closest noise parameterization that is included in the noise dictionary. 
     For instance, one or more noise parameterizations may be selected for exclusion. The noise parameterizations selected for exclusion may be any noise parameterization not on the list of most common noise parameterizations. The selected noise parameterization(s) may be excluded from the noise dictionary and the image segmentation map. Within the image segmentation map, a reference to a noise parameterization that is in the noise dictionary may be associated with a region otherwise associated with a noise parameterization selected for exclusion. Thus, if a selected region has a noise parameterization that is excluded from the noise dictionary, within the image segmentation map, the selected region is associated, or paired, with a reference to a different noise parameterization that is included in the noise dictionary. The different noise parameterization may be one that is considered closest, or similar to, the excluded noise parameterization. 
     In block  635 , the system may compress the de-noised image, the image segmentation map, and the noise dictionary. In one aspect, a same compression technique may be applied to each of the de-noised image, the image segmentation map, and the noise dictionary. In another aspect, the de-noised image, the image segmentation map, and the noise dictionary may be compressed independently. For example, the system may use any combination of one or more compression techniques to compress the de-noised image, the image segmentation map, and the noise dictionary. In illustration, a first compression technique may be used on one element, while a second and different compression technique is used on the second and third elements. In still another illustration, the compression technique that is used may be selected on a per-element basis where a first compression technique may be used for compressing the noise dictionary; a second and different compression technique may be used for compressing the image segmentation map; and a third compression technique that is different from the first and second compression techniques may be used to compress the de-noised image. 
     In one embodiment, the system may compress the noise dictionary using minimum or no loss. The system may compress the image segmentation map using lossless compression. The system may compress the de-noised image with a variable rate compressor. It should be appreciated that the examples provided herein are provided for purposes of illustration only and are not intended as limitations of the various embodiments described. 
       FIG. 7  is a flow chart illustrating another exemplary method  700  of operation for an image processing system. In one example, method  700  may be performed by the system illustrated in  FIG. 5 . Method  700  may begin in a state where a compressed de-noised image, a compressed image segmentation map, and a compressed noise dictionary have been retrieved from a memory for processing. In the example of  FIG. 7 , the system operates on a single region of an image. It should be appreciated that the operations described in  FIG. 7 , however, may be repeated as may be required and/or performed multiple times in parallel to render one or more additional regions or each other region to generate a constructed image. 
     In block  705 , the system may decompress the compressed de-noised image, the compressed image segmentation map, and the compressed noise dictionary. The system may use any appropriate decompression technique as may be required for each of the aforementioned elements, whether a same decompression technique is used or more than one decompression technique is used. It should be appreciated that the particular manner of decompression will depend upon the manner in which the elements were originally compressed. 
     In block  710 , the system may determine one or more noise parameterizations for a selection region of the de-noised image. The image processing system may look-up the selected region in the image segmentation map and determine the particular noise parameterization(s) associated with the selected region in the image segmentation map. 
     In block  715 , the system may retrieve the noise parameterization(s) for the selected region from the noise dictionary. In block  720 , the system may generate noise using the noise parameterization(s). In one aspect, the generated noise may be considered a portion of a noise component, e.g., for the region of the noise component that directly correlates with the selected region of the de-noised image to be rendered. 
     In block  725 , the image processing system may combine the generated noise with the selected region of the de-noised image. The resulting region is a textured version of the region of the de-noised image and may be rendered, or shown, on a display. 
     The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. Notwithstanding, several definitions that apply throughout this document now will be presented. 
     As defined herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. 
     As defined herein, the term “another” means at least a second or more. 
     As defined herein, the terms “at least one,” “one or more,” and “and/or,” are open-ended expressions that are both conjunctive and disjunctive in operation unless explicitly stated otherwise. For example, each of the expressions “at least one of A, B and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together. 
     As defined herein, the term “automatically” means without user intervention. 
     As defined herein, the term “coupled” means connected, whether directly without any intervening elements or indirectly with one or more intervening elements, unless otherwise indicated. Two elements may be coupled mechanically, electrically, or communicatively linked through a communication channel, pathway, network, or system. 
     As defined herein, the terms “includes,” “including,” “comprises,” and/or “comprising,” specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. 
     As defined herein, the term “if” means “when” or “upon” or “in response to” or “responsive to,” depending upon the context. Thus, the phrase “if it is determined” or “if [a stated condition or event] is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event]” or “responsive to detecting [the stated condition or event]” depending on the context. 
     As defined herein, the terms “one embodiment,” “an embodiment,” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment described within this disclosure. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this disclosure may, but do not necessarily, all refer to the same embodiment. 
     As defined herein, the term “output” means storing in physical memory elements, e.g., devices, writing to display or other peripheral output device, sending or transmitting to another system, exporting, or the like. 
     As defined herein, the term “plurality” means two or more than two. 
     As defined herein, the term “processor” means at least one hardware circuit configured to carry out instructions contained in program code. The hardware circuit may be an integrated circuit. Examples of a processor include, but are not limited to, a central processing unit (CPU), an array processor, a vector processor, a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic array (PLA), an application specific integrated circuit (ASIC), programmable logic circuitry, and a controller. 
     As defined herein, the term “responsive to” means responding or reacting readily to an action or event. Thus, if a second action is performed “responsive to” a first action, there is a causal relationship between an occurrence of the first action and an occurrence of the second action. The term “responsive to” indicates the causal relationship. 
     As defined herein, the term “user” means a human being. 
     The terms first, second, etc. may be used herein to describe various elements. These elements should not be limited by these terms, as these terms are only used to distinguish one element from another unless stated otherwise or the context clearly indicates otherwise. 
     The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems and methods according to various aspects of the inventive arrangements. In some alternative implementations, the operations noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, may be implemented by special purpose hardware-based systems that perform the specified functions or acts. 
     The corresponding structures, materials, acts, and equivalents of all means or step plus function elements that may be found in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. 
     A method may include separating a noise component from an original image resulting in a de-noised image, determining a noise parameterization for the noise component, and compressing the de-noised image and the noise parameterization. 
     The noise parameterization may include a noise function and a parameter value used by the noise function. 
     The method may include generating noise using the noise parameterization and combining the noise and the de-noised image resulting in a constructed version of the original image. 
     Separating the noise component from the original image may include filtering the original image resulting in the de-noised image and subtracting the de-noised image from the original image resulting in the noise component. 
     The method may include segmenting the de-noised image into a plurality of regions. Determining the noise parameterization may include, for regions of the noise component corresponding to regions of the de-noised image, determining a noise parameterization, creating an image segmentation map correlating regions of the de-noised image with the noise parameterization of a corresponding region of the noise component, and creating a noise dictionary specifying the noise parameterizations. Compressing may include compressing the noise dictionary and the image segmentation map. 
     The de-noised image, the noise dictionary, and the image segmentation map may be compressed independently using a selected compression technique. In one example, a different compression technique may be used to compress each of the de-noised image, the noise dictionary, and the image segmentation map. 
     Creating the noise dictionary may include excluding a selected noise parameterization from the noise dictionary and the image segmentation map and, within the image segmentation map, associating a reference to a noise parameterization that is in the noise dictionary with a region otherwise associated with the selected noise parameterization. 
     A system may include a noise processing circuit configured to separate a noise component from an original image resulting in a de-noised image, a noise parameterization circuit configured to determine a noise parameterization for the noise component, and a compression circuit configured to compress the de-noised image and the noise parameterization. 
     The noise parameterization may include a noise function and a parameter value used by the noise function. 
     The noise processing circuit may include a filter circuit configured to generate the de-noised image from the original image and a subtraction circuit configured to generate the noise component by subtracting the de-noised image from the original image. 
     The system may include a segmentation circuit configured to segment the de-noised image into a plurality of regions. The noise parameterization circuit may be configured to generate an image segmentation map using the segmenting of the de-noised image, correlate the regions of the de-noised image with regions of the noise component, determine a noise parameterization for the regions of the noise component, and generate a noise dictionary specifying the noise parameterizations. 
     The compression circuit may be configured to compress the noise dictionary and the image segmentation map. In one aspect, the compression circuit may be configured to compress the de-noised circuit, the noise dictionary, and the image segmentation map independently. In one example, the compression circuit may use a different compression technique for each of the de-noised image, the noise dictionary, and the image segmentation map. 
     The noise parameterization circuit may be configured to exclude a selected noise parameterization from the noise dictionary and the image segmentation map, and, within the image segmentation map, associate a reference to a noise parameterization that is in the noise dictionary with a region otherwise associated with the selected noise parameterization. 
     The system may also include a decompression circuit configured to decompress the de-noised image and the noise parameterization, a noise generator configured to generate noise according to the noise parameterization, and a combine circuit configured to combine the noise generated by the noise generator and at least a portion of the de-noised image. 
     A system may include a decompression circuit configured to decompress a compressed de-noised image and a compressed noise parameterization for the de-noised image, a noise generator configured to generate noise according to the noise parameterization, and a combine circuit configured to combine the noise generated by the noise generator with at least a portion of the de-noised image. 
     The decompression circuit may be configured to decompress a compressed noise dictionary and an image segmentation map. The noise dictionary may specify a plurality of noise parameterizations for the de-noised image and the image segmentation map may correlate the plurality of noise parameterizations with a plurality of regions of the de-noised image. The noise generator may be configured to generate noise for a region of the de-noised image using a noise parameterization selected from the plurality of noise parameterizations. The combine circuit may be configured to combine the noise generated by the noise generator and the region of the de-noised image. 
     The decompression circuit may be configured to decompress the compressed de-noised image, the compressed noise dictionary, and the compressed image segmentation map independently using a selected compression technique. The noise generator may be configured to determine the noise parameterization selected from the plurality of noise parameterizations according to the image segmentation map and retrieve the noise parameterization from the noise dictionary. 
     The description of the inventive arrangements provided herein is for purposes of illustration and is not intended to be exhaustive or limited to the form and examples disclosed. The terminology used herein was chosen to explain the principles of the inventive arrangements, the practical application or technical improvement over technologies found in the marketplace, and/or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. Modifications and variations may be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described inventive arrangements. Accordingly, reference should be made to the following claims, rather than to the foregoing disclosure, as indicating the scope of such features and implementations.