US9406276B2 - Systems and methods for combining images into a file using multiple color palettes - Google Patents

Systems and methods for combining images into a file using multiple color palettes Download PDF

Info

Publication number
US9406276B2
US9406276B2 US14/444,923 US201414444923A US9406276B2 US 9406276 B2 US9406276 B2 US 9406276B2 US 201414444923 A US201414444923 A US 201414444923A US 9406276 B2 US9406276 B2 US 9406276B2
Authority
US
United States
Prior art keywords
color
palette
image data
image
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US14/444,923
Other versions
US20140333661A1 (en
Inventor
Joshua Engelbert
Bill Ivanich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dish Technologies LLC
Original Assignee
EchoStar Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EchoStar Technologies LLC filed Critical EchoStar Technologies LLC
Priority to US14/444,923 priority Critical patent/US9406276B2/en
Assigned to ECHOSTAR TECHNOLOGIES L.L.C. reassignment ECHOSTAR TECHNOLOGIES L.L.C. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ENGELBERT, JOSHUA, IVANICH, BILL
Publication of US20140333661A1 publication Critical patent/US20140333661A1/en
Application granted granted Critical
Publication of US9406276B2 publication Critical patent/US9406276B2/en
Assigned to DISH Technologies L.L.C. reassignment DISH Technologies L.L.C. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ECHOSTAR TECHNOLOGIES L.L.C.
Assigned to U.S. BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT reassignment U.S. BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DISH BROADCASTING CORPORATION, DISH NETWORK L.L.C., DISH Technologies L.L.C.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/06Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using colour palettes, e.g. look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • H04N1/6002Corrections within particular colour systems
    • H04N1/6005Corrections within particular colour systems with luminance or chrominance signals, e.g. LC1C2, HSL or YUV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • H04N1/6002Corrections within particular colour systems
    • H04N1/6008Corrections within particular colour systems with primary colour signals, e.g. RGB or CMY(K)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG

Definitions

  • pixel-based image files include a file header, a color palette, and an image data array. Such pixel-based images may be relatively large, and thus require a substantial portion of space in a memory medium.
  • the file header of the pixel-based image includes various information pertaining to the image, such as bitmap width in pixels (the number of pixels in a row of pixels), bitmap height in pixels (the number of pixels in a column of pixels), and number of bits used to define the color of a pixel. For example, if eight (8) bits are used to specify the color of a pixel, then there are a possible 256 different colors that may be used to define pixel color. Any suitable number of bits may be used to define the number of color choices for a pixel (for example, if twelve bits are used, up to 4096 colors are available to define the color for a pixel).
  • a color palette is a pre-defined, ordered array of elements that define a color value.
  • Each color value includes color information to define the different colors that may be used to color a pixel.
  • the color information specifies a mixture of red, green, and blue colors, along with an intensity value and/or color depth value.
  • the color palette location information defines the location of each array element of the color palette. Accordingly, individual colors of the color palette are indexed by their location in the color palette, and thus are identified by their unique color palette location value.
  • the image data array is a pre-defined, ordered array of elements that define the image on a pixel-by-pixel basis.
  • the location of a pixel can be identified by its relative location in the image data array since there are n ⁇ m pixels in the image data array (where n is the number of pixels in a row of pixels and m is the number of pixels in a column of pixels).
  • n is the number of pixels in a row of pixels
  • m is the number of pixels in a column of pixels.
  • the information in any particular array element of the image data array is one of the color palette location information values.
  • each array element in the image data array points to a particular array element in the color palette (which has the color information for a particular color).
  • each of the individual pixels of the image are displayed and/or printed.
  • the location of the pixel in the image is first determined based upon its relative location in the image data array.
  • the array element of the image data array is retrieved for mapping to the color palette.
  • the color palette location information retrieved for that pixel maps to the color for that particular pixel. Accordingly, the color information for that pixel is retrieved. That is, since the array element of the image data array specifies the color palette location value of a color in the color palette, the color information for that pixel is retrieved from the color information stored in the color palette for that particular pixel.
  • the size of the rendered image is considerably reduced when the color of each individual pixel is defined by the color palette location value of the color palette.
  • an image that uses a large number of pixels such as a high resolution image and/or a large image, requires a relatively large portion of the memory medium during processing.
  • the image is stored in a writable and/or volatile memory, such as a disk drive, a flash memory, or the like.
  • An exemplary embodiment receives first pixel information for a first pixel of a first image, the first pixel having a first color; receives second pixel information for a like-located second pixel of a second image, the second pixel having a second color; and specifies a color palette location value.
  • the color palette location value identifies a first color palette array element in a first color palette associated with the first image.
  • the color palette location value identifies a second like-located color palette array element in a second color palette associated with the second image.
  • First color information stored in the first color palette array element defines the first color for the first pixel.
  • Second color information stored in the second image data color palette array element defines the second color for the second pixel.
  • an exemplary embodiment generates an image selected from a multiple-palette image data file, wherein the multiple-palette image data file defines a plurality of images and comprises a header, a plurality of color palettes for each one of the corresponding plurality of images, and an image data array, wherein the image data array is a pre-defined, ordered array of elements that commonly defines each of the plurality of images on a pixel-by-pixel basis.
  • the exemplary embodiment retrieves a first color palette location value from a first one of a plurality of image data array elements of the image data array, wherein a location of the first image data array element corresponds to a location of a first pixel of the selected image, and wherein the first color palette location value defines a location of a first color palette array element in a color palette that is associated with the selected image; retrieves first color information from the first color palette array element; and generates the first pixel of the selected image based upon a location of the first image data array element and the retrieved first color information.
  • FIGS. 1A-1B illustrate two simplified pixel-based images each having four pixels
  • FIGS. 2A-2B illustrate simplified hypothetical image data arrays for the rendered images of FIGS. 1A-1B ;
  • FIGS. 3A-3B illustrate simplified hypothetical color palettes for the rendered images of FIGS. 1A-1B
  • FIG. 4 is a block diagram of an embodiment of the multiple color palette image generator
  • FIG. 5 is a conceptual format of a multiple-palette image data file
  • FIGS. 6A-6B illustrate portions of two simplified pixel-based images
  • FIG. 6C illustrates a single image data array and two color palettes generated by embodiments of the multiple color palette image generator
  • FIG. 7 illustrates the mapping of color palette locations for each of the two images of the FIGS. 6A-6C ;
  • FIG. 8 illustrates an exemplary format of the generated multiple-palette image data file for the two images of the FIGS. 6A-6C ;
  • FIGS. 9A-G conceptually illustrate generation of a single multiple-palette image data file for three virtual buttons.
  • Embodiments of the multiple color palette image generator are configured to generate a single image data file representative of multiple images by associating each one of the multiple images with its own color palette.
  • the same image data array which is typically larger than a color palette, may be used to represent multiple images.
  • FIGS. 1A and 1B illustrate simplified pixel-based images each having four pixels.
  • the first image 102 has four colored pixels, a red pixel 104 (R), followed by a blue pixel 106 (B), followed by a second red pixel 108 (R), and finally ending with a third red pixel 110 (R).
  • the second image 112 also has four colored pixels, a green pixel 114 (G), followed by a yellow pixel 116 (Y), followed by a second yellow pixel 118 (Y), and finally ending with a blue pixel 120 (B).
  • FIG. 2A graphically represents a prior art image data array 202 for the first image 102 .
  • FIG. 3A graphically represents a prior art color palette 302 for the first image 102 .
  • the image data array 202 would have four array elements, one for each of the pixels 104 , 106 , 108 and 110 of the first image 102 .
  • the red pixel 104 is the first array element 204 in the image data array 202 .
  • the location of the first pixel 104 (upper left hand corner) is known by virtue of its corresponding array element 204 being in the first position of the image data array 202 .
  • the array element 206 for the second pixel 106 is the second position in the image data array 202
  • the location of the pixel 106 in the image 102 is also known (upper right hand corner).
  • the locations of the third pixel 108 (lower left hand corner) and the fourth pixel 110 (lower right hand corner) are known by virtue of the position of their array elements 208 , 210 , respectively, in the image data array 202 .
  • the image 102 has two colors, red and blue.
  • its corresponding color palette 302 has two array elements with color information therein.
  • the first color palette array element 304 includes color information (CI R ) that defines the color red.
  • the second color palette array element 306 includes color information (CI B ) that defines the color blue.
  • the information stored in the array elements of the image data array 202 is the color palette location value (PL) that identifies the location of the array element in the color palette 302 having the desired color for each of the pixels 104 , 106 , 108 , and 110 .
  • the array element 204 in the image data array 202 (which corresponds to the first red colored pixel 104 that is located in the upper left hand corner of the image 102 ) has the color palette location value (PL R ) that identifies the location of the color palette array element 304 .
  • the color palette location value (PL R ) is a suitable pointer value, index value, or the like that is used to map to the color palette 302 so that the information defining the color red (CI R ) can be retrieved from the color palette 302 .
  • the array element 206 in the image data array 202 (which corresponds to the blue colored pixel 106 that is located in the upper right hand corner of the image 102 ) has the color palette location value (PL B ) that identifies the location of the color palette array element 306 .
  • the color palette location value (PL B ) is a suitable pointer value, index value, or the like that is used to map to the color palette 302 so that the information defining the color blue (CI B ) can be retrieved from the color palette 302 .
  • the array elements 208 , 210 in the image data array 202 (which corresponds to the red colored pixels 108 , 110 that are located in the bottom left hand and right hand corners of the image 102 , respectively) have the color palette location value (PL R ).
  • the same color palette location value (PL R ) maps to the color palette array element 304 so that the information defining the color red (CI R ) can be retrieved from the color palette 302 .
  • FIG. 2C graphically represents a prior art image data array 212 for the second pixel-based image 112 .
  • FIG. 3A graphically represents a prior art color palette 308 for the second image 112 .
  • the image data array 212 would have four array elements, one for each of the pixels 114 , 116 , 118 and 120 of the second image 112 .
  • the location of the pixels 114 , 116 , 118 and 120 is known by virtue of their location in the corresponding array data 214 .
  • a second image 112 has three colors; green, yellow, and blue.
  • its corresponding color palette 308 has three array elements.
  • the first array element 310 includes color information (CI G ) that defines the color green.
  • the second array element 312 includes color information (CI Y ) that defines the color yellow.
  • the third array element 314 includes color information (CI B ) that defines the color blue.
  • the information stored in each of the array elements of the image data array 212 indicates the color palette location value (PL) in the color palette 308 for the each of the pixels 114 , 116 , 118 , and 120 .
  • the array data 214 in the image data array 212 (which corresponds to the first green colored pixel 114 that is located in the upper left hand corner of the second image 112 ) has the color palette location value (PL G ) mapping to the location of the array element 310 so that the information defining the color green (CI B ) can be retrieved from the color palette 308 .
  • the array elements 216 and 218 in the image data array 212 each have a color palette location value (PL Y ) that maps to the array element 312 in the color palette 308 .
  • the color palette location value (PL Y ) is a suitable pointer value, index value, or the like that is used to map to the color palette 308 so that the information defining the color yellow (CI Y ) can be retrieved from the color palette 308 .
  • the array element 220 in the image data array 212 (which corresponds to the blue colored pixel 120 that is located in the lower right hand corner of the image 112 ) has the color palette location value (PL B ) that maps to the array element 314 .
  • the color palette location value (PL B ) is a suitable pointer value, index value, or the like that is used to map to the color palette 308 so that the information defining the color blue (CI B ) can be retrieved from the color palette 308 .
  • the colors for the entire image 102 can be represented by the color palette 302 which has only two entries.
  • the colors for the image data for the second image 112 can be represented by the color palette 308 , which has only three entries.
  • FIG. 4 is a block diagram of an embodiment of the multiple color palette image generator 400 .
  • FIG. 5 is a conceptual format of a multiple-palette image data file 500 .
  • the generated multiple-palette image data file 500 includes a header 502 (HDR), a first color palette 504 (1 st PAL), a second color palette 506 (2 nd PAL), and an image data array 508 . If more than two images are represented in the multiple-palette image data file 500 , additional color palettes 510 (i th PAL) are included. All of the represented images use the same image data array 508 . Each image has its own unique color palette.
  • Embodiments of the multiple color palette image generator 400 are configured to generate the multiple-palette image data file 500 representative of multiple images by associating each one of the multiple images with its own color palette. For example, a multiple-palette image data file 500 would be generated to represent the first image 102 and the second image 112 ( FIGS. 1A and 1B , respectively). Thus, a single image data array and two color palettes are be used to represent the multiple images 102 , 112 .
  • the size of the multiple-palette image data file 500 is considerably smaller than the size of the two prior art data files used to separately represent the first image 102 and the second image 112 since a single image data array 508 is used for all images included in the multiple-palette image data file 500 .
  • the exemplary multiple color palette image generator 400 ( FIG. 4 ) comprises a processor system 402 , an image input interface 404 , a graphics device interface 406 , and a memory 408 .
  • the memory 408 includes portions for storing the image rendering logic 410 , the image array and palette data generation logic 412 , the generated multiple-palette image data 414 , and one or more optional palettes 416 .
  • the processor system 402 , the image input interface 404 , the graphics device interface 406 , and the memory 408 are communicatively coupled to each other via a communication bus 418 , thereby providing connectivity between the above-described components.
  • the above-described components may be communicatively coupled to each other in a different manner.
  • one or more of the above-described components may be directly coupled to the processor system 402 , or may be coupled to the processor system 402 via intermediary components (not shown).
  • additional components may be included in alternative embodiments of the multiple color palette image generator 400 .
  • embodiments of the multiple color palette image generator 400 may be integrated into a multifunction device which performs other operations.
  • the image input interface 404 receives image information from a remote source (not shown).
  • the received image information defines a plurality of images that are to be combined into the multiple-palette image data file 500 by embodiments of the multiple color palette image generator 400 .
  • the image input interface 404 may receive the image information from a remote memory, an image capture device such as a camera or the like, or another suitable device.
  • the image information may be saved into the memory 408 , and/or may be directly processed into a multiple-palette image data file 500 .
  • the received image information may be in any suitable format, such as a pixel-based image format or another, non pixel-based image format.
  • the graphics device interface 406 communicates the generated multiple-palette image data file 500 to an external device (not shown).
  • the external device may be a printer or the like that prints one or more of the plurality of images determinable from the multiple-palette image data file 500 .
  • the external device may be a set top box, television, personal computer, laptop computer, personal device assistant, cellular phone or the like that displays an image of one or more of the plurality of images determinable from the multiple-palette image data file 500 .
  • the external device may be a special purpose, or a general purpose, computing system that further processes one or more of the plurality of images determinable from the multiple-palette image data file 500 .
  • embodiments of the multiple color palette image generator 400 may be integrated into any suitable external device that processes one or more of the plurality of images determinable from the multiple-palette image data file 500 .
  • the image rendering logic 410 receives image information and generates pixel-based image information for each of the images that are to be combined into a single multiple-palette image data file 500 . Pixel-based image information may be directly processed into the multiple-palette image data file 500 , or stored into memory 408 for later processing.
  • pixel-based image information may be available from remote sources. Such pixel-based image information may be received over the image input interface 404 , and then directly processed into the multiple-palette image data file 500 , and/or stored into memory 408 for later processing.
  • the image array and palette generation logic 412 receives the pixel-based image information and generates, using a plurality of pixel-based images, a single multiple-palette image data file 500 .
  • the generated multiple-palette image data file 500 is saved into the multiple-palette image data 414 portion of memory 408 for later use in displaying images and/or printing images.
  • the pixel-based image information (generated by the image rendering logic 410 , retrieved from memory 408 , or received from a remote source) comprises three components: the header, two or more color palettes, and a single image data array.
  • the header two or more color palettes
  • a single image data array a single image data array.
  • alternative embodiments may include other information and/or components.
  • the header contains information describing the pixel-based image information, such as the image size (number of m pixels in a pixel row, number of n pixels in a pixel column).
  • the plurality of color palettes contains color information corresponding to the color of its corresponding image pixels.
  • one of a plurality of standardized color palettes may be used for obtaining color information that is stored into the generated color palettes.
  • Such standardized color palettes may be included in the pixel-based image information, or may reside in the palettes 416 portion of memory 408 .
  • the originally received pixel-based image information includes a color palette for that particular image.
  • the image data array includes a plurality of color palette location values (PLs).
  • a color palette location value is a suitable pointer value, index value, or the like that is used to map to the color palette so that the information defining the pixel color can be retrieved from the respective color palette of an image that is currently being displayed and/or printed.
  • the process of generating a multiple-palette image data file 500 from a plurality of pixel-based images begins with identification of the pixel-based images that are to be combined into a single multiple-palette image data file 500 .
  • the sizes of the selected pixel-based images are the same or similar.
  • the corresponding images themselves need not be the same, and may use color information from different color palettes.
  • the image array and palette generation logic 412 constructs a single image data array 508 and a color palette for each of the images.
  • the single image data array 508 maps each pixel of each image to a unique color palette that is generated for each of the pixel-based images that are being combined into the multiple-palette image data file 500 . For example, if two pixel-based images are being combined, a first color palette will be generated for the first image and a second color palette will be generated for the second image.
  • the two unique color palettes are generated concurrently as each pixel of the two images are processed into the image data array 508 .
  • FIG. 6A illustrates a portion 602 of a first simplified pixel-based image having four adjacent pixels 604 , 606 , 608 , 610 .
  • FIG. 6B illustrates a portion 612 of a second simplified pixel-based image having four adjacent pixels 614 , 616 , 618 , 620 .
  • the portion 602 of the first image also includes a fifth pixel 622 that is on the same pixel row as the pixels 608 , 610 .
  • the pixel 622 is separated by other pixels (not shown) from the pixel 610 .
  • the portion 612 of the second image illustrates a fifth pixel 624 that is on the same pixel row as the pixels 618 , 620 .
  • the pixel 624 is separated by other pixels (not shown) from the pixel 620 .
  • both images may be characterized as an array of m-by-n pixels (where m is the number of pixels in a pixel row and where and n is the number of pixels in a pixel column). More particularly, it is assumed that the locations of the pixels 604 , 606 , 608 , 610 and 622 in the first image are the same as the respective locations of the pixels 614 , 616 , 618 , 620 and 624 in the second image.
  • FIG. 6C illustrates mapping of array elements in the single image data array 626 to portions of two generated color palettes 628 and 630 .
  • the pixels of the first image and the second image are concurrently processed on a pixel-by-pixel basis, where the location of the concurrently processed pixels are the same in their respective images.
  • a corresponding array element of the image data array 626 and the array elements of the corresponding unique color palettes, are concurrently generated.
  • the pixel 604 of the first image is concurrently processed, or substantially concurrently processed, with the like-located pixel 614 the second image.
  • the color of the pixel 604 is red and the color of the pixel 614 is green.
  • the array element 632 of the image data array 626 is generated by adding a color palette location value (PL 1 ).
  • the color palette location value (PL 1 ) identifies the same respective location of the like-located color palette array elements 632 a , 632 b in the two generated color palettes 628 and 630 .
  • color information is stored in the array element 632 a of the first color palette 628 .
  • the stored color information corresponds to the red colored pixel 604 of the first image.
  • array element 632 a has red color information (CI R ) stored therein. Accordingly, when the color information (CI R ) is retrieved when the first image is displayed and/or printed, the pixel 604 will be red (in accordance with the color information CI R ).
  • the color information is stored in the like-located array element 632 b of the second color palette 630 .
  • the stored color information corresponds to the green colored pixel 614 of the second image.
  • array element 632 b has green color information (CI G ) stored therein. Accordingly, when the color information (CI G ) is retrieved when the second image is displayed and/or printed, the pixel 614 will be green (in accordance with the color information CI G ).
  • the array elements for the image data array 626 and the two color palettes 628 and 630 are generated for the next pixel 606 in the first image (a blue colored pixel) and the next like-located pixel 616 in the second image (a yellow colored pixel).
  • This next array element 634 of the image data array 626 is generated by adding a color palette location value (PL 2 ).
  • the color palette location value (PL 2 ) identifies the same respective location of the like-located color palette array elements 634 a , 634 b in the two generated color palettes 628 and 630 .
  • the color information in the array element 634 a of the first color palette 628 corresponding to the first image (and thus, corresponding to the pixel 606 ), has blue color information (CI B ) therein.
  • the color information in the array element 634 b of the second color palette 630 corresponding to the second image (and thus, corresponding to the pixel 616 ), has yellow color information (CI Y ) therein. Accordingly, when the color information (CI B ) is retrieved when the first image is displayed and/or printed, the pixel 606 will be blue (in accordance with the color information CI B ). Similarly, when the color information (CI Y ) is retrieved when the second image is displayed and/or printed, the pixel 616 will be yellow (in accordance with the color information CI Y ).
  • the like-located pixels in the first and second images (not shown) that are adjacent to the pixels 606 , 616 , respectively, are processed by the image array and palette generation logic 412 to generate the information in the image data array 626 and the two color palettes 628 and 630 .
  • the process of generating information for the image data array 626 and the two color palettes 628 and 630 continues on a pixel-by-pixel basis.
  • the red colored pixel 608 of the first image and the yellow colored pixel 618 of the second image are concurrently processed.
  • the previously generated array element 632 of the image data array 626 maps to color information for a red colored pixel (at array element 632 a in the color palette 628 )
  • the previously generated array element 634 of the image data array 626 maps to color information for a yellow colored pixel (at array element 634 b in the color palette 630 )
  • these color palette locations cannot be used since a single array element in the image data array 626 can only point to a single location in a color palette.
  • This next array element 636 of the image data array 626 is generated by adding a color palette location value (PL 3 ).
  • the color palette location value (PL 3 ) identifies the same respective location of the like-located color palette array elements 636 a , 636 b in the two generated color palettes 628 and 630 .
  • the color information in the array element 636 a corresponding to the first image (and thus, corresponding to the pixel 608 ), has red color information (CI R ) therein.
  • the color information in the like-located array element 636 b corresponding to the second image (and thus, corresponding to the pixel 618 ), has yellow color information (CI Y ) therein. Accordingly, when the color information (CI R ) is retrieved when the first image is displayed and/or printed, the pixel 608 will be red (in accordance with the color information CI R ). Similarly, when the color information (CI Y ) is retrieved when the second image is displayed and/or printed, the pixel 618 will be yellow (in accordance with the color information CI Y ).
  • the red colored pixel 610 of the first image and the like-located blue colored pixel 620 of the second image are concurrently processed to generate array elements in the image data array 626 and the two color palettes 628 and 630 .
  • This next array element 638 of the image data array 626 is generated by adding a color palette location value (PL 4 ).
  • the color palette location value (PL 4 ) identifies the same respective location of the color palette array elements 638 a , 638 b in the two generated color palettes 628 and 630 .
  • the color information in the array element 638 a corresponding to the first image (and thus, corresponding to the pixel 608 ), has red color information (CI R ) therein.
  • the color information in the like-located array element 638 b corresponding to the second image (and thus, corresponding to the pixel 618 ), has blue color information (CI B ) therein.
  • the color information (CI R ) is retrieved when the first image is displayed and/or printed
  • the pixel 610 will be red (in accordance with the color information CI R ).
  • the color information (CI B ) is retrieved when the second image is displayed and/or printed, the pixel 620 will be blue (in accordance with the color information CI B ).
  • each array element of the image data array 626 points to a location in the first color palette 628 having color information for a particular color therein.
  • the same array element also points to the same respective location in the second color palette 630 having color information for a particular color therein. Most likely, the color information will be different for the generated color palettes, though they may be the same.
  • each array element in the image data array 626 identifies a common location in the two generated color palettes 628 and 630 .
  • the color palette location defined by the array element 632 is associated with the color information in the color palette array element 632 a (for the red color of pixel 604 ) and the color information in the color palette array element 632 b (for the green color of pixel 614 ).
  • FIG. 7 is a table illustrating the mapping of color palette locations for each of the array elements of the above-described example.
  • color information sets 702 become apparent for each array element in the generated image data array 626 .
  • each of the color information sets 702 has two like-located color palette array elements since two images are being combined into the multiple-palette image data file in this simplified example.
  • the color information sets will have a number of elements corresponding to the number of combined images.
  • this color information set has already been generated and saved into the array element 632 as PL 1 (for the like-located pixel pair 604 , 614 ).
  • the array element 640 may use the color palette location information PL 1 to specify the red color information for the red colored pixel 622 and to specify the green color information for the green colored pixel 624 .
  • FIG. 8 illustrates a non-limiting, exemplary format of the generated multiple-palette image data file 800 .
  • the multiple-palette image data file 800 has a header 802 that defines general information about the two images, such as the image size.
  • a first color palette (PAL 1 ) 804 defines colors used for pixels of the first image.
  • a second color palette (PAL 2 ) 806 defines colors used for pixels of the second image.
  • a single image data array 808 maps to locations in the first color palette 804 and the second color palette 806 for each of the pixels in the first and second images.
  • the header 802 , the first color palette 804 , and the image data array 808 are used to generate the first image.
  • the header 802 , the second color palette 806 , and the image data array 808 are used to generate the second image.
  • a single multiple-palette image data file defines two different images. This single multiple-palette image data file requires less memory space than the prior art separate image data files.
  • FIGS. 9A-9B illustrate images of three virtual buttons 902 , 904 , and 906 that may be shown on a graphical user interface.
  • the virtual buttons 902 , 904 , and 906 have the same size and form in this example. The difference between the virtual buttons 902 , 904 , and 906 is in their colors.
  • the virtual button 902 is defined by a black border and a green colored fill region.
  • the virtual button 904 is defined by a grey border and a blue colored fill region.
  • the virtual button 906 is defined by a white border and a orange colored fill region.
  • embodiments of the multiple color palette image generator 400 will process pixel-based images of the three virtual buttons 902 , 904 , and 906 into a single multiple-palette image data file. Since the borders and the fill areas of the virtual buttons 902 , 904 , and 906 have the same dimensions, and since only two colors are used for the pixels of the virtual buttons 902 , 904 , and 906 , three virtual buttons 902 , 904 , and 906 can use a single image data array that maps to a two-element color palette.
  • each pixel of the first virtual button 902 will be either black or green colored.
  • a first two-element color palette 908 having an array element 910 with black color information (CI BK ) and an array element 912 with green color information (CI GR ) may be used to define pixel colors for the first virtual button 902 , as illustrated in FIG. 9D .
  • each pixel of the second virtual button 904 will be either grey or blue colored.
  • a second two-element color palette 914 having an array element 916 with grey color information (CI GR ) and an array element 918 with blue color information (CI BL ) may be used to define pixel colors for the second virtual button 904 , as illustrated in FIG. 9E .
  • Each pixel of the third virtual button 906 will be either white or orange colored.
  • a two-element color palette 920 having an array element 922 with white color information (CI WH ) and an array element 924 with green color information (CI GR ) may be used to define pixel colors for the third virtual button 906 , as illustrated in FIG. 9F .
  • color information sets there will be two different color information sets, each characterized by three elements (one for each of the three virtual buttons 902 , 904 , and 906 ).
  • One color information set would be CI BK , CI GR , and CI WH .
  • the other color information set would be CI GN , CI BL , and CI OR . All of the pixels of the virtual buttons 902 , 904 , and 906 can be mapped to one of these two different color information sets.
  • FIG. 9G illustrates a non-limiting, exemplary format of the generated multiple-palette image data file 926 .
  • the multiple-palette image data file 926 has a header 928 that defines general information about the three virtual buttons 902 , 904 , and 906 , such as the image size.
  • a first color palette (PAL 1 ) 930 defines the two colors used for pixels of the first virtual button 902 .
  • a second color palette (PAL 2 ) 932 defines the two colors used for pixels of the second virtual button 904 .
  • a third color palette (PAL 3 ) 934 defines the two colors used for pixels of the third virtual button 906 .
  • a single image data array 936 maps to locations in the first color palette 926 , the second color palette 914 , and the third color palette 920 for each of the pixels in the virtual buttons 902 , 904 , and 906 , respectively.
  • the memory capacity will be relatively large. However, if the single multiple-palette image data file 926 is used, it will utilize approximately one third of the memory capacity. That is, the single multiple-palette image data file 926 is significantly smaller since a single image data array 936 is used for all three virtual buttons 902 , 904 , and 906 .
  • header information, color palettes, and the image data array may be ordered differently that described above. Further, other information may be included in a multiple-palette image data file.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

Image data systems and methods combine a plurality of images into a single multiple-palette image data file, or generate a selected image from the multiple-palette image data file. An exemplary embodiment receives first pixel information for a first pixel of a first image, the first pixel having a first color; receives second pixel information for a like-located second pixel of a second image, the second pixel having a second color; and specifies a color palette location value that identifies a first color palette array element in a first color palette of the first image and identifies a second like-located color palette array element in a second color palette of the second image. First color information stored in the first color palette array element defines the first pixel color. Second color information stored in the second image data color palette array element defines the second pixel color.

Description

PRIORITY CLAIM
This patent application is a Continuation of U.S. Non-Provisional patent application Ser. No. 13/618,853, filed Sep. 14, 2012, published as U.S. Publication No. 2013/0009978, entitled “SYSTEMS AND METHODS FOR COMBINING IMAGES INTO A FILE USING MULTIPLE COLOR PALETTES,” and issued to U.S. Pat. No. 8,791,954 on Jul. 29, 2014; which is a Continuation of U.S. Non-Provisional patent application Ser. No. 12/486,695, filed Jun. 17, 2009, published as U.S. Publication No. 2010/0321401, entitled “SYSTEMS AND METHODS FOR COMBINING IMAGES INTO A FILE USING MULTIPLE COLOR PALETTES,” and issued to U.S. Pat. No. 8,284,212 on Oct. 9, 2012, the contents of which are herein incorporated by reference in their entireties.
BACKGROUND
Rendered, pixel-based image files include a file header, a color palette, and an image data array. Such pixel-based images may be relatively large, and thus require a substantial portion of space in a memory medium. An exemplary image data file format could be constructed as:
Image=[HEADER][PALETTE][IMAGE DATA ARRAY]
The file header of the pixel-based image includes various information pertaining to the image, such as bitmap width in pixels (the number of pixels in a row of pixels), bitmap height in pixels (the number of pixels in a column of pixels), and number of bits used to define the color of a pixel. For example, if eight (8) bits are used to specify the color of a pixel, then there are a possible 256 different colors that may be used to define pixel color. Any suitable number of bits may be used to define the number of color choices for a pixel (for example, if twelve bits are used, up to 4096 colors are available to define the color for a pixel).
A color palette is a pre-defined, ordered array of elements that define a color value. Each color value includes color information to define the different colors that may be used to color a pixel. For example, the color information specifies a mixture of red, green, and blue colors, along with an intensity value and/or color depth value. The color palette location information defines the location of each array element of the color palette. Accordingly, individual colors of the color palette are indexed by their location in the color palette, and thus are identified by their unique color palette location value.
The image data array is a pre-defined, ordered array of elements that define the image on a pixel-by-pixel basis. For any particular image, the location of a pixel can be identified by its relative location in the image data array since there are n×m pixels in the image data array (where n is the number of pixels in a row of pixels and m is the number of pixels in a column of pixels). Thus, the relative location of the pixel data in the image data array defines the location of the pixel in the image.
The information in any particular array element of the image data array is one of the color palette location information values. Thus, each array element in the image data array points to a particular array element in the color palette (which has the color information for a particular color).
When the image is displayed and/or printed, each of the individual pixels of the image are displayed and/or printed. To print and/or display an individual pixel, the location of the pixel in the image is first determined based upon its relative location in the image data array. For each pixel, the array element of the image data array is retrieved for mapping to the color palette. Thus, the color palette location information retrieved for that pixel maps to the color for that particular pixel. Accordingly, the color information for that pixel is retrieved. That is, since the array element of the image data array specifies the color palette location value of a color in the color palette, the color information for that pixel is retrieved from the color information stored in the color palette for that particular pixel.
Since the same color may be used for many hundreds of pixels in an image, or even thousands of pixels in an image, the size of the rendered image is considerably reduced when the color of each individual pixel is defined by the color palette location value of the color palette. However, an image that uses a large number of pixels, such as a high resolution image and/or a large image, requires a relatively large portion of the memory medium during processing. Often, the image is stored in a writable and/or volatile memory, such as a disk drive, a flash memory, or the like.
Often, a plurality of similar images, or similar-sized images, are concurrently stored in the memory. Thus, a large portion of the memory may be required for image data management. Accordingly, there is a need in the industry to compress image data so as to reduce memory requirements.
SUMMARY
Systems and methods of combining information for a plurality of images into a single multiple-palette image data file are disclosed. An exemplary embodiment receives first pixel information for a first pixel of a first image, the first pixel having a first color; receives second pixel information for a like-located second pixel of a second image, the second pixel having a second color; and specifies a color palette location value. The color palette location value identifies a first color palette array element in a first color palette associated with the first image. The color palette location value identifies a second like-located color palette array element in a second color palette associated with the second image. First color information stored in the first color palette array element defines the first color for the first pixel. Second color information stored in the second image data color palette array element defines the second color for the second pixel.
In accordance with further aspects, an exemplary embodiment generates an image selected from a multiple-palette image data file, wherein the multiple-palette image data file defines a plurality of images and comprises a header, a plurality of color palettes for each one of the corresponding plurality of images, and an image data array, wherein the image data array is a pre-defined, ordered array of elements that commonly defines each of the plurality of images on a pixel-by-pixel basis. The exemplary embodiment retrieves a first color palette location value from a first one of a plurality of image data array elements of the image data array, wherein a location of the first image data array element corresponds to a location of a first pixel of the selected image, and wherein the first color palette location value defines a location of a first color palette array element in a color palette that is associated with the selected image; retrieves first color information from the first color palette array element; and generates the first pixel of the selected image based upon a location of the first image data array element and the retrieved first color information.
BRIEF DESCRIPTION OF THE DRAWINGS
Preferred and alternative embodiments are described in detail below with reference to the following drawings:
FIGS. 1A-1B illustrate two simplified pixel-based images each having four pixels;
FIGS. 2A-2B illustrate simplified hypothetical image data arrays for the rendered images of FIGS. 1A-1B;
FIGS. 3A-3B illustrate simplified hypothetical color palettes for the rendered images of FIGS. 1A-1B
FIG. 4 is a block diagram of an embodiment of the multiple color palette image generator;
FIG. 5 is a conceptual format of a multiple-palette image data file;
FIGS. 6A-6B illustrate portions of two simplified pixel-based images;
FIG. 6C illustrates a single image data array and two color palettes generated by embodiments of the multiple color palette image generator;
FIG. 7 illustrates the mapping of color palette locations for each of the two images of the FIGS. 6A-6C;
FIG. 8 illustrates an exemplary format of the generated multiple-palette image data file for the two images of the FIGS. 6A-6C; and
FIGS. 9A-G conceptually illustrate generation of a single multiple-palette image data file for three virtual buttons.
DETAILED DESCRIPTION
Embodiments of the multiple color palette image generator are configured to generate a single image data file representative of multiple images by associating each one of the multiple images with its own color palette. Thus, the same image data array, which is typically larger than a color palette, may be used to represent multiple images.
FIGS. 1A and 1B illustrate simplified pixel-based images each having four pixels. The first image 102 has four colored pixels, a red pixel 104 (R), followed by a blue pixel 106 (B), followed by a second red pixel 108 (R), and finally ending with a third red pixel 110 (R). The second image 112 also has four colored pixels, a green pixel 114 (G), followed by a yellow pixel 116 (Y), followed by a second yellow pixel 118 (Y), and finally ending with a blue pixel 120 (B).
FIG. 2A graphically represents a prior art image data array 202 for the first image 102. FIG. 3A graphically represents a prior art color palette 302 for the first image 102. For the simplified image 102, the image information would include a header with information indicating that the image 102 is an m-by-n pixel array (here a 2×2 pixel array), where m=2 and n=2.
The image data array 202 would have four array elements, one for each of the pixels 104, 106, 108 and 110 of the first image 102. In this simplified example, the red pixel 104 is the first array element 204 in the image data array 202. Thus, the location of the first pixel 104 (upper left hand corner) is known by virtue of its corresponding array element 204 being in the first position of the image data array 202. Since the array element 206 for the second pixel 106 is the second position in the image data array 202, the location of the pixel 106 in the image 102 is also known (upper right hand corner). Similarly, the locations of the third pixel 108 (lower left hand corner) and the fourth pixel 110 (lower right hand corner) are known by virtue of the position of their array elements 208, 210, respectively, in the image data array 202.
In this simplified example, the image 102 has two colors, red and blue. Thus, its corresponding color palette 302 has two array elements with color information therein. The first color palette array element 304 includes color information (CIR) that defines the color red. The second color palette array element 306 includes color information (CIB) that defines the color blue.
The information stored in the array elements of the image data array 202 is the color palette location value (PL) that identifies the location of the array element in the color palette 302 having the desired color for each of the pixels 104, 106, 108, and 110. Accordingly, the array element 204 in the image data array 202 (which corresponds to the first red colored pixel 104 that is located in the upper left hand corner of the image 102) has the color palette location value (PLR) that identifies the location of the color palette array element 304. The color palette location value (PLR) is a suitable pointer value, index value, or the like that is used to map to the color palette 302 so that the information defining the color red (CIR) can be retrieved from the color palette 302.
Similarly, the array element 206 in the image data array 202 (which corresponds to the blue colored pixel 106 that is located in the upper right hand corner of the image 102) has the color palette location value (PLB) that identifies the location of the color palette array element 306. The color palette location value (PLB) is a suitable pointer value, index value, or the like that is used to map to the color palette 302 so that the information defining the color blue (CIB) can be retrieved from the color palette 302.
The array elements 208, 210 in the image data array 202 (which corresponds to the red colored pixels 108, 110 that are located in the bottom left hand and right hand corners of the image 102, respectively) have the color palette location value (PLR). Thus, the same color palette location value (PLR) maps to the color palette array element 304 so that the information defining the color red (CIR) can be retrieved from the color palette 302.
A second simplified example for the second image 112 is presented to contrast the image data array 202 and the color palette 302 for the first image 102. Here, FIG. 2C graphically represents a prior art image data array 212 for the second pixel-based image 112. FIG. 3A graphically represents a prior art color palette 308 for the second image 112. For the simplified second image 112, the image data would have a header that includes information indicating that the second image 112 is also an m-by-n pixel array (here a 2×2 pixel array), where m=2 and n=2.
The image data array 212 would have four array elements, one for each of the pixels 114, 116, 118 and 120 of the second image 112. In this simplified example, the location of the pixels 114, 116, 118 and 120 is known by virtue of their location in the corresponding array data 214.
In this simplified example, a second image 112 has three colors; green, yellow, and blue. Thus, its corresponding color palette 308 has three array elements. The first array element 310 includes color information (CIG) that defines the color green. The second array element 312 includes color information (CIY) that defines the color yellow. The third array element 314 includes color information (CIB) that defines the color blue.
The information stored in each of the array elements of the image data array 212 indicates the color palette location value (PL) in the color palette 308 for the each of the pixels 114, 116, 118, and 120. Accordingly, the array data 214 in the image data array 212 (which corresponds to the first green colored pixel 114 that is located in the upper left hand corner of the second image 112) has the color palette location value (PLG) mapping to the location of the array element 310 so that the information defining the color green (CIB) can be retrieved from the color palette 308.
Similarly, the array elements 216 and 218 in the image data array 212 (which correspond to the yellow colored pixels 116, 118) each have a color palette location value (PLY) that maps to the array element 312 in the color palette 308. The color palette location value (PLY) is a suitable pointer value, index value, or the like that is used to map to the color palette 308 so that the information defining the color yellow (CIY) can be retrieved from the color palette 308. Finally, the array element 220 in the image data array 212 (which corresponds to the blue colored pixel 120 that is located in the lower right hand corner of the image 112) has the color palette location value (PLB) that maps to the array element 314. The color palette location value (PLB) is a suitable pointer value, index value, or the like that is used to map to the color palette 308 so that the information defining the color blue (CIB) can be retrieved from the color palette 308.
In the above simplified example of the image data for the image 102, the colors for the entire image 102 can be represented by the color palette 302 which has only two entries. Similarly, the colors for the image data for the second image 112 can be represented by the color palette 308, which has only three entries. Their image data files may be generally represented as follows:
Image 102=[HEADER 1][PALETTE 302][IMAGE DATA ARRAY 202]
Image 112=[HEADER 2][PALETTE 308][IMAGE DATA ARRAY 212]
In practice, it is appreciated that when the two images 102, 112 have many thousands of pixels (instead of the four exemplary pixels). When many hundreds of pixel colors are used in coloring the pixels of the images 102, 112, the actual size of the image data for the images 102, 112 will be very large. The largest portion of such image data files is the relatively large size image data arrays 202, 212.
FIG. 4 is a block diagram of an embodiment of the multiple color palette image generator 400. FIG. 5 is a conceptual format of a multiple-palette image data file 500. The multiple-palette image data file 500 representing the exemplary first image 102 and the exemplary second image 112 generated by embodiments of the multiple color palette image generator 400 may be generally represented as follows:
Image=[HDR] [1st PAL] [2nd PAL] . . . [ith PAL][IMAGE DATA ARRAY]
Thus, the generated multiple-palette image data file 500 includes a header 502 (HDR), a first color palette 504 (1st PAL), a second color palette 506 (2nd PAL), and an image data array 508. If more than two images are represented in the multiple-palette image data file 500, additional color palettes 510 (ith PAL) are included. All of the represented images use the same image data array 508. Each image has its own unique color palette.
Embodiments of the multiple color palette image generator 400 are configured to generate the multiple-palette image data file 500 representative of multiple images by associating each one of the multiple images with its own color palette. For example, a multiple-palette image data file 500 would be generated to represent the first image 102 and the second image 112 (FIGS. 1A and 1B, respectively). Thus, a single image data array and two color palettes are be used to represent the multiple images 102, 112.
The size of the multiple-palette image data file 500 is considerably smaller than the size of the two prior art data files used to separately represent the first image 102 and the second image 112 since a single image data array 508 is used for all images included in the multiple-palette image data file 500. For example, a multiple-palette image data file 500 representing two images may be generally represented as follows:
Image=[HEADER][1st PALETTE][2nd PALETTE][IMAGE DATA ARRAY]
The exemplary multiple color palette image generator 400 (FIG. 4) comprises a processor system 402, an image input interface 404, a graphics device interface 406, and a memory 408. The memory 408 includes portions for storing the image rendering logic 410, the image array and palette data generation logic 412, the generated multiple-palette image data 414, and one or more optional palettes 416.
In the illustrated exemplary embodiment, the processor system 402, the image input interface 404, the graphics device interface 406, and the memory 408 are communicatively coupled to each other via a communication bus 418, thereby providing connectivity between the above-described components. In alternative embodiments of the multiple color palette image generator 400, the above-described components may be communicatively coupled to each other in a different manner. For example, one or more of the above-described components may be directly coupled to the processor system 402, or may be coupled to the processor system 402 via intermediary components (not shown). Further, additional components (not shown) may be included in alternative embodiments of the multiple color palette image generator 400. Alternatively, or additionally, embodiments of the multiple color palette image generator 400 may be integrated into a multifunction device which performs other operations.
The image input interface 404 receives image information from a remote source (not shown). The received image information defines a plurality of images that are to be combined into the multiple-palette image data file 500 by embodiments of the multiple color palette image generator 400. For example, the image input interface 404 may receive the image information from a remote memory, an image capture device such as a camera or the like, or another suitable device. The image information may be saved into the memory 408, and/or may be directly processed into a multiple-palette image data file 500. The received image information may be in any suitable format, such as a pixel-based image format or another, non pixel-based image format.
The graphics device interface 406 communicates the generated multiple-palette image data file 500 to an external device (not shown). For example, the external device may be a printer or the like that prints one or more of the plurality of images determinable from the multiple-palette image data file 500. As another example, the external device may be a set top box, television, personal computer, laptop computer, personal device assistant, cellular phone or the like that displays an image of one or more of the plurality of images determinable from the multiple-palette image data file 500. As another example, the external device may be a special purpose, or a general purpose, computing system that further processes one or more of the plurality of images determinable from the multiple-palette image data file 500. Alternatively, embodiments of the multiple color palette image generator 400 may be integrated into any suitable external device that processes one or more of the plurality of images determinable from the multiple-palette image data file 500.
The image rendering logic 410 receives image information and generates pixel-based image information for each of the images that are to be combined into a single multiple-palette image data file 500. Pixel-based image information may be directly processed into the multiple-palette image data file 500, or stored into memory 408 for later processing.
In some instances, pixel-based image information may be available from remote sources. Such pixel-based image information may be received over the image input interface 404, and then directly processed into the multiple-palette image data file 500, and/or stored into memory 408 for later processing.
The image array and palette generation logic 412 receives the pixel-based image information and generates, using a plurality of pixel-based images, a single multiple-palette image data file 500. The generated multiple-palette image data file 500 is saved into the multiple-palette image data 414 portion of memory 408 for later use in displaying images and/or printing images.
The pixel-based image information (generated by the image rendering logic 410, retrieved from memory 408, or received from a remote source) comprises three components: the header, two or more color palettes, and a single image data array. However, alternative embodiments may include other information and/or components.
The header, as noted above, contains information describing the pixel-based image information, such as the image size (number of m pixels in a pixel row, number of n pixels in a pixel column). The plurality of color palettes contains color information corresponding to the color of its corresponding image pixels.
In some instances, one of a plurality of standardized color palettes may be used for obtaining color information that is stored into the generated color palettes. Such standardized color palettes may be included in the pixel-based image information, or may reside in the palettes 416 portion of memory 408. In other instances, the originally received pixel-based image information includes a color palette for that particular image.
The image data array includes a plurality of color palette location values (PLs). A color palette location value is a suitable pointer value, index value, or the like that is used to map to the color palette so that the information defining the pixel color can be retrieved from the respective color palette of an image that is currently being displayed and/or printed.
The process of generating a multiple-palette image data file 500 from a plurality of pixel-based images begins with identification of the pixel-based images that are to be combined into a single multiple-palette image data file 500. Preferably, the sizes of the selected pixel-based images are the same or similar. The corresponding images themselves need not be the same, and may use color information from different color palettes.
Then, on a pixel-by-pixel basis, the image array and palette generation logic 412 constructs a single image data array 508 and a color palette for each of the images. The single image data array 508 maps each pixel of each image to a unique color palette that is generated for each of the pixel-based images that are being combined into the multiple-palette image data file 500. For example, if two pixel-based images are being combined, a first color palette will be generated for the first image and a second color palette will be generated for the second image. The two unique color palettes are generated concurrently as each pixel of the two images are processed into the image data array 508.
FIG. 6A illustrates a portion 602 of a first simplified pixel-based image having four adjacent pixels 604, 606, 608, 610. FIG. 6B illustrates a portion 612 of a second simplified pixel-based image having four adjacent pixels 614, 616, 618, 620. The portion 602 of the first image also includes a fifth pixel 622 that is on the same pixel row as the pixels 608, 610. The pixel 622 is separated by other pixels (not shown) from the pixel 610. Similarly, the portion 612 of the second image illustrates a fifth pixel 624 that is on the same pixel row as the pixels 618, 620. The pixel 624 is separated by other pixels (not shown) from the pixel 620.
For the purposes of this simplified example where two pixel-based images are combined into a single multiple-palette image data file 500, it is assumed that the size of the two images are substantially the same. That is, both images may be characterized as an array of m-by-n pixels (where m is the number of pixels in a pixel row and where and n is the number of pixels in a pixel column). More particularly, it is assumed that the locations of the pixels 604, 606, 608, 610 and 622 in the first image are the same as the respective locations of the pixels 614, 616, 618, 620 and 624 in the second image.
FIG. 6C illustrates mapping of array elements in the single image data array 626 to portions of two generated color palettes 628 and 630. As noted above, the pixels of the first image and the second image are concurrently processed on a pixel-by-pixel basis, where the location of the concurrently processed pixels are the same in their respective images. As the like-located pixels are concurrently processed, a corresponding array element of the image data array 626, and the array elements of the corresponding unique color palettes, are concurrently generated.
For example, assume that the pixel 604 of the first image is concurrently processed, or substantially concurrently processed, with the like-located pixel 614 the second image. In this simplified example, the color of the pixel 604 is red and the color of the pixel 614 is green. The array element 632 of the image data array 626 is generated by adding a color palette location value (PL1). The color palette location value (PL1) identifies the same respective location of the like-located color palette array elements 632 a, 632 b in the two generated color palettes 628 and 630.
Here, color information is stored in the array element 632 a of the first color palette 628. The stored color information corresponds to the red colored pixel 604 of the first image. Thus, array element 632 a has red color information (CIR) stored therein. Accordingly, when the color information (CIR) is retrieved when the first image is displayed and/or printed, the pixel 604 will be red (in accordance with the color information CIR).
Similarly, the color information is stored in the like-located array element 632 b of the second color palette 630. The stored color information corresponds to the green colored pixel 614 of the second image. Thus, array element 632 b has green color information (CIG) stored therein. Accordingly, when the color information (CIG) is retrieved when the second image is displayed and/or printed, the pixel 614 will be green (in accordance with the color information CIG).
Next, the array elements for the image data array 626 and the two color palettes 628 and 630 are generated for the next pixel 606 in the first image (a blue colored pixel) and the next like-located pixel 616 in the second image (a yellow colored pixel). This next array element 634 of the image data array 626 is generated by adding a color palette location value (PL2). The color palette location value (PL2) identifies the same respective location of the like-located color palette array elements 634 a, 634 b in the two generated color palettes 628 and 630.
Here, the color information in the array element 634 a of the first color palette 628, corresponding to the first image (and thus, corresponding to the pixel 606), has blue color information (CIB) therein. Similarly, the color information in the array element 634 b of the second color palette 630, corresponding to the second image (and thus, corresponding to the pixel 616), has yellow color information (CIY) therein. Accordingly, when the color information (CIB) is retrieved when the first image is displayed and/or printed, the pixel 606 will be blue (in accordance with the color information CIB). Similarly, when the color information (CIY) is retrieved when the second image is displayed and/or printed, the pixel 616 will be yellow (in accordance with the color information CIY).
Then, the like-located pixels in the first and second images (not shown) that are adjacent to the pixels 606, 616, respectively, are processed by the image array and palette generation logic 412 to generate the information in the image data array 626 and the two color palettes 628 and 630. The process of generating information for the image data array 626 and the two color palettes 628 and 630 continues on a pixel-by-pixel basis.
At some point, the red colored pixel 608 of the first image and the yellow colored pixel 618 of the second image are concurrently processed. Even though the previously generated array element 632 of the image data array 626 maps to color information for a red colored pixel (at array element 632 a in the color palette 628), and the previously generated array element 634 of the image data array 626 maps to color information for a yellow colored pixel (at array element 634 b in the color palette 630), these color palette locations cannot be used since a single array element in the image data array 626 can only point to a single location in a color palette.
Thus, new array elements in the image data array 626 and the two color palettes 628 and 630 for the like-located pixels 606 and 616, respectively, must be generated. This next array element 636 of the image data array 626 is generated by adding a color palette location value (PL3). The color palette location value (PL3) identifies the same respective location of the like-located color palette array elements 636 a, 636 b in the two generated color palettes 628 and 630. Here, the color information in the array element 636 a, corresponding to the first image (and thus, corresponding to the pixel 608), has red color information (CIR) therein. Similarly, the color information in the like-located array element 636 b, corresponding to the second image (and thus, corresponding to the pixel 618), has yellow color information (CIY) therein. Accordingly, when the color information (CIR) is retrieved when the first image is displayed and/or printed, the pixel 608 will be red (in accordance with the color information CIR). Similarly, when the color information (CIY) is retrieved when the second image is displayed and/or printed, the pixel 618 will be yellow (in accordance with the color information CIY).
Next, the red colored pixel 610 of the first image and the like-located blue colored pixel 620 of the second image (which are adjacent to the previously processed pixels 608, 618, respectively) are concurrently processed to generate array elements in the image data array 626 and the two color palettes 628 and 630. This next array element 638 of the image data array 626 is generated by adding a color palette location value (PL4). The color palette location value (PL4) identifies the same respective location of the color palette array elements 638 a, 638 b in the two generated color palettes 628 and 630. Here, the color information in the array element 638 a, corresponding to the first image (and thus, corresponding to the pixel 608), has red color information (CIR) therein. Similarly, the color information in the like-located array element 638 b, corresponding to the second image (and thus, corresponding to the pixel 618), has blue color information (CIB) therein. Accordingly, when the color information (CIR) is retrieved when the first image is displayed and/or printed, the pixel 610 will be red (in accordance with the color information CIR). Similarly, when the color information (CIB) is retrieved when the second image is displayed and/or printed, the pixel 620 will be blue (in accordance with the color information CIB).
It is appreciated that each array element of the image data array 626 points to a location in the first color palette 628 having color information for a particular color therein. The same array element also points to the same respective location in the second color palette 630 having color information for a particular color therein. Most likely, the color information will be different for the generated color palettes, though they may be the same. In any event, given that two images are being combined into a single multiple-palette image data file 500, each array element in the image data array 626 identifies a common location in the two generated color palettes 628 and 630. In the above example, the color palette location defined by the array element 632 is associated with the color information in the color palette array element 632 a (for the red color of pixel 604) and the color information in the color palette array element 632 b (for the green color of pixel 614).
FIG. 7 is a table illustrating the mapping of color palette locations for each of the array elements of the above-described example. Thus, color information sets 702 become apparent for each array element in the generated image data array 626. Here, each of the color information sets 702 has two like-located color palette array elements since two images are being combined into the multiple-palette image data file in this simplified example. Furthermore, it is appreciated that so far in the above simplified example of generating a multiple-palette image data file for two images, that each of these color information sets 702 are different. It is further appreciated that if more than two images are being combined into a single multiple-palette image data file, the color information sets will have a number of elements corresponding to the number of combined images.
At some point in the processing of like-located pixels, it is probable that there will be a reoccurrence of a previously defined color information set 702. Returning to the above example where two images are combined into a single multiple-palette image data file, assume that there is a red colored pixel 622 in the first image and a like-located green colored pixel 624 in the second image. When these two like-located pixels 622, 624 are concurrently processed, the generated array element 640 in the image data array 626 needs to map to red color information (for the red colored pixel 622) and to green color information (for the green colored pixel 624). Thus, a color information set of CIR (in the first color palette 628) and CIG (mapped to the second color palette 630) is required to define color information for the like-located pixels 622, 624, respectively.
However, this color information set has already been generated and saved into the array element 632 as PL1 (for the like-located pixel pair 604, 614). Thus, the array element 640 may use the color palette location information PL1 to specify the red color information for the red colored pixel 622 and to specify the green color information for the green colored pixel 624.
Once all like-located pixels of the first and second images have been concurrently processed, a single multiple-palette image data file will have been generated. FIG. 8 illustrates a non-limiting, exemplary format of the generated multiple-palette image data file 800. The multiple-palette image data file 800 has a header 802 that defines general information about the two images, such as the image size. A first color palette (PAL 1) 804 defines colors used for pixels of the first image. A second color palette (PAL 2) 806 defines colors used for pixels of the second image. A single image data array 808 maps to locations in the first color palette 804 and the second color palette 806 for each of the pixels in the first and second images.
When the first image is specified for display and/or printing, the header 802, the first color palette 804, and the image data array 808 are used to generate the first image. When the second image is specified for display and/or printing, the header 802, the second color palette 806, and the image data array 808 are used to generate the second image. Thus, a single multiple-palette image data file defines two different images. This single multiple-palette image data file requires less memory space than the prior art separate image data files.
When the size of images and/or when the images themselves are quite different, it may not be possible to generate a single multiple-palette image data file for those images because of limited color palette dimensions. In those situations where it is possible to generate a single multiple color palette image for multiple images that are of different, and/or that have different sizes, the size of the generated multiple-palette image data file may result in significant memory capacity savings.
FIGS. 9A-9B illustrate images of three virtual buttons 902, 904, and 906 that may be shown on a graphical user interface. The virtual buttons 902, 904, and 906 have the same size and form in this example. The difference between the virtual buttons 902, 904, and 906 is in their colors. The virtual button 902 is defined by a black border and a green colored fill region. The virtual button 904 is defined by a grey border and a blue colored fill region. The virtual button 906 is defined by a white border and a orange colored fill region.
In this simplified example, embodiments of the multiple color palette image generator 400 will process pixel-based images of the three virtual buttons 902, 904, and 906 into a single multiple-palette image data file. Since the borders and the fill areas of the virtual buttons 902, 904, and 906 have the same dimensions, and since only two colors are used for the pixels of the virtual buttons 902, 904, and 906, three virtual buttons 902, 904, and 906 can use a single image data array that maps to a two-element color palette.
For example, each pixel of the first virtual button 902 will be either black or green colored. Thus, a first two-element color palette 908 having an array element 910 with black color information (CIBK) and an array element 912 with green color information (CIGR) may be used to define pixel colors for the first virtual button 902, as illustrated in FIG. 9D.
Similarly, each pixel of the second virtual button 904 will be either grey or blue colored. Thus, a second two-element color palette 914 having an array element 916 with grey color information (CIGR) and an array element 918 with blue color information (CIBL) may be used to define pixel colors for the second virtual button 904, as illustrated in FIG. 9E.
Each pixel of the third virtual button 906 will be either white or orange colored. Thus, a two-element color palette 920 having an array element 922 with white color information (CIWH) and an array element 924 with green color information (CIGR) may be used to define pixel colors for the third virtual button 906, as illustrated in FIG. 9F.
Here, there will be two different color information sets, each characterized by three elements (one for each of the three virtual buttons 902, 904, and 906). One color information set would be CIBK, CIGR, and CIWH. The other color information set would be CIGN, CIBL, and CIOR. All of the pixels of the virtual buttons 902, 904, and 906 can be mapped to one of these two different color information sets.
FIG. 9G illustrates a non-limiting, exemplary format of the generated multiple-palette image data file 926. The multiple-palette image data file 926 has a header 928 that defines general information about the three virtual buttons 902, 904, and 906, such as the image size. A first color palette (PAL 1) 930 defines the two colors used for pixels of the first virtual button 902. A second color palette (PAL 2) 932 defines the two colors used for pixels of the second virtual button 904. A third color palette (PAL 3) 934 defines the two colors used for pixels of the third virtual button 906. A single image data array 936 maps to locations in the first color palette 926, the second color palette 914, and the third color palette 920 for each of the pixels in the virtual buttons 902, 904, and 906, respectively.
If three separate pixel-based image information files are used for each of the virtual buttons 902, 904, and 906, the memory capacity will be relatively large. However, if the single multiple-palette image data file 926 is used, it will utilize approximately one third of the memory capacity. That is, the single multiple-palette image data file 926 is significantly smaller since a single image data array 936 is used for all three virtual buttons 902, 904, and 906.
In alternative embodiments, the header information, color palettes, and the image data array may be ordered differently that described above. Further, other information may be included in a multiple-palette image data file.
It should be emphasized that the above-described embodiments of the multiple color palette image generator 400 are merely possible examples of implementations of the invention. Many variations and modifications may be made to the above-described embodiments. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.

Claims (20)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A multiple-palette image data file generation system, comprising:
a memory operable to store a plurality of image data files;
an image input interface communicatively coupled to the memory, wherein the image input interface is operable to receive at least an image data file corresponding to an image,
wherein a portion of the image data file corresponds to a portion of the image,
wherein the portion of the image may be rendered using a plurality of different selected colors, and
wherein the portion of the image data file is defined by a plurality of elements in a pixel array, wherein each element defines a pixel associated with one of the plurality of different selected colors;
a processor system communicatively coupled to the memory and the image input interface, wherein the processor system is operable to:
receive first pixel information for a first pixel of the portion of the image data,
wherein the first pixel information is associated with a first color of the plurality of different selected colors, and
wherein the first color is defined by first color information;
generate a first color palette,
wherein the first color information is stored in the first color palette at a color palette location value;
receive second pixel information for the first pixel of the portion of the image data,
wherein the second pixel information is associated with a second color of the plurality of different selected colors,
wherein the second color is different from the first color, and
wherein the second color is defined by second color information;
generate a second color palette,
wherein the second color information is stored in the second color palette at the color palette location value;
generate a multiple-palette image data file corresponding to the portion of the image data file, the multiple-palette image data file comprising:
an image data array,
wherein the image data array is an array of a plurality of elements,
wherein a first element of the image data array specifies the color palette location value,
wherein the first element is at a location in the image data array that corresponds to a location of the first pixel in the portion of the image data file,
wherein the color palette location value defines the location of the first color information in the first color palette, and
wherein the color palette location value defines the location of the second color information in the second color palette;
the first color palette; and
the second color palette.
2. The multiple-palette image data file generation system of claim 1, wherein the processor system is further configured to:
receive a specification, wherein the specification identifies one of the first color palette and the second color palette;
generate the image using the first color palette in response to the specification identifying the first color palette; and
generate the image using the second color palette in response to the specification identifying the second color palette.
3. The multiple-palette image data file generation system of claim 2, further comprising:
a graphics device interface communicatively coupled to the processor system and at least one external device,
wherein the generated image is communicated to the external device via the graphics device interface,
wherein the external device renders the image in accordance with the colors of the first color palette when the specification identified the first color palette, and
wherein the external device renders the image in accordance with the colors of the second color palette when the specification identified the second color palette.
4. The multiple-palette image data file generation system of claim 3, wherein the external device is a printer that prints the rendered image.
5. The multiple-palette image data file generation system of claim 3, wherein the external device displays the rendered image on a display.
6. The multiple-palette image data file generation system of claim 3, wherein the external device is a computing system that further processes the portion of the image data file of the generated image.
7. The multiple-palette image data file generation system of claim 3,
wherein the memory is configured to separately store at least a third color palette and a fourth color palette received at the image input interface prior to generation of the multiple-palette image data file,
wherein the third color palette is associated with the image and includes the first color information,
wherein the fourth color palette is associated with the image and includes the second color information,
wherein during generation of the first color palette, the first color information is retrieved from the third color palette stored in the memory, and
wherein during generation of the second color palette, the second color information is retrieved from the fourth color palette stored in the memory.
8. The multiple-palette image data file generation system of claim 1, wherein the processor system is further configured to:
include a header in the multiple-palette image data file,
wherein the header includes information pertaining to the image, and
wherein the information included in the header comprises at least one selected from a group consisting of a bitmap width in pixels that corresponds to a number of pixels in a row of pixels, a bitmap height in pixels that corresponds to a number of pixels in a column of pixels, and a number of bits that is used to define colors of a pixel.
9. The multiple-palette image data file generation system of claim 1, wherein the color palette location value is a first color palette location value, and wherein the processor system is further configured to:
receive third pixel information for a second pixel of the portion of the image data,
wherein the third pixel information is associated with a third color of the plurality of different selected colors, and
wherein the third color is defined by third color information;
continue to generate the first color palette,
wherein the third color information is stored in the first color palette at a second color palette location value, and
wherein the third color is different from the first color and the second color;
receive fourth pixel information for the second pixel of the portion of the image data,
wherein the fourth pixel information is associated with a fourth color of the plurality of different selected colors,
wherein the fourth color is different from the first color, the second color, and the third color, and
wherein the fourth color is defined by fourth color information;
continue to generate the second color palette,
wherein the fourth color information is stored in the second color palette at the second color palette location value;
continue to generate the multiple-palette image data file corresponding to the portion of the image data file,
wherein a second element of the image data array specifies the second color palette location value, and
wherein the second element is at a location in the image data array that corresponds to a location of the second pixel in the portion of the image data file.
10. The multiple-palette image data file generation system of claim 1, wherein the color palette location value is a first color palette location value, and wherein the processor system is further configured to:
receive third pixel information for a second pixel of the portion of the image data,
wherein the third pixel information is associated with a third color of the plurality of different selected colors, and
wherein the third color is defined by third color information;
continue to generate the first color palette,
wherein the third color information is stored in the first color palette at a second color palette location value;
receive fourth pixel information for the second pixel of the portion of the image data,
wherein the fourth pixel information is associated with the second color of the plurality of different selected colors;
continue to generate the second color palette,
wherein the second color information for the second pixel is stored in the second color palette at the second color palette location value;
continue to generate the multiple-palette image data file corresponding to the portion of the image data file,
wherein a second element of the image data array specifies the second color palette location value, and
wherein the second element is at a location in the image data array that corresponds to a location of the second pixel in the portion of the image data file.
11. The multiple-palette image data file generation system of claim 1, wherein the processor system is further configured to:
receive third pixel information for a second pixel of the portion of the image data,
wherein the third pixel information is associated with the first color of the plurality of different selected colors, and
wherein the first color information has already been stored in the first color palette at the color palette location value;
receive fourth pixel information for the second pixel of the portion of the image data,
wherein the fourth pixel information is associated with the second color of the plurality of different selected colors, and
wherein the second color information has already been stored in the second color palette at the color palette location value;
continue to generate the multiple-palette image data file corresponding to the portion of the image data file,
wherein a second element of the image data array specifies the color palette location value, and
wherein the second element is at a location in the image data array that corresponds to a location of the second pixel in the portion of the image data file.
12. A multiple-palette image data file generation system, comprising:
an image input interface operable to receive a multiple-palette image data file from an external device, wherein the multiple-palette image data file comprises:
an image data array,
wherein the image data array is an array of a plurality of elements that define an image;
wherein a first element is at a location in the image data array that corresponds to a location of a first pixel in the image, and
wherein the first element specifies a color palette location value that identifies a location of color information in a plurality of color palettes;
a first color palette that is a member of the plurality of color palettes,
wherein the color palette location value defines a location of first color information in the first color palette, and
wherein the first color information defines a first color; and
a second color palette that is a member of the plurality of color palettes,
wherein the color palette location value defines a location of second color information in the second color palette,
wherein the second color information defines a second color;
a memory coupled to the image input interface and operable to store the received multiple-palette image data file.
13. The multiple-palette image data file generation system of claim 12, wherein the second color defined by the second color information is different from the first color defined by the first color information.
14. The multiple-palette image data file generation system of claim 12, wherein the second color defined by the second color information is that same as the first color defined by the first color information.
15. The multiple-palette image data file generation system of claim 12, further comprising:
a processor system communicatively coupled to the memory and the image input interface,
wherein the processor system is operable to:
receive a specification, wherein the specification identifies one of the first color palette and the second color palette;
generate the image using the first color palette in response to the specification identifying the first color palette; and
generate the image using the second color palette in response to the specification identifying the second color palette.
16. The multiple-palette image data file generation system of claim 15, further comprising:
a graphics device interface communicatively coupled to the processor system and at least one external device,
wherein the generated image is communicated to the external device via the graphics device interface,
wherein the external device renders the image in accordance with the colors of the first color palette when the specification identified the first color palette, and
wherein the external device renders the image in accordance with the colors of the second color palette when the specification identified the second color palette.
17. The multiple-palette image data file generation system of claim 16, wherein the external device is a printer that prints the rendered image.
18. The multiple-palette image data file generation system of claim 16, wherein the external device displays the rendered image on a display.
19. The multiple-palette image data file generation system of claim 16, wherein the external device is a computing system that further processes a portion of the image data file of the generated image.
20. A method, comprising:
storing a plurality of image data files in a memory of a multiple-palette image data file generation system,
receiving at least an image data file corresponding to an image at an image input interface communicatively coupled to the memory,
wherein a portion of the image data file corresponds to a portion of the image,
wherein the portion of the image may be rendered using a plurality of different selected colors, and
wherein the portion of the image data file is defined by a plurality of elements in a pixel array, wherein each element defines a pixel associated with one of the plurality of different selected colors,
receiving, at a processor system communicatively coupled to the memory and the image input interface, first pixel information for a first pixel of the portion of the image data,
wherein the first pixel information is associated with a first color of the plurality of different selected colors, and
wherein the first color is defined by first color information;
generating, at the processor system, a first color palette,
wherein the first color information is stored in the first color palette at a color palette location value;
receiving, at the processor system, second pixel information for the first pixel of the portion of the image data,
wherein the second pixel information is associated with a second color of the plurality of different selected colors,
wherein the second color is different from the first color, and
wherein the second color is defined by second color information;
generating, at the processor system, a second color palette,
wherein the second color information is stored in the second color palette at the color palette location value;
generating, at the processor system, a multiple-palette image data file corresponding to the portion of the image data file, the multiple-palette image data file comprising:
an image data array,
wherein the image data array is an array of a plurality of elements;
wherein a first element of the image data array specifies the color palette location value,
wherein the first element is at a location in the image data array that corresponds to a location of the first pixel in the portion of the image data file,
wherein the color palette location value defines the location of the first color information in the first color palette, and
wherein the color palette location value defines the location of the second color information in the second color palette;
the first color palette; and
the second color palette.
US14/444,923 2009-06-17 2014-07-28 Systems and methods for combining images into a file using multiple color palettes Active 2029-12-19 US9406276B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/444,923 US9406276B2 (en) 2009-06-17 2014-07-28 Systems and methods for combining images into a file using multiple color palettes

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/486,695 US8284212B2 (en) 2009-06-17 2009-06-17 Systems and methods for combining images into a file using multiple color palettes
US13/618,853 US8791954B2 (en) 2009-06-17 2012-09-14 Systems and methods for combining images into a file using multiple color palettes
US14/444,923 US9406276B2 (en) 2009-06-17 2014-07-28 Systems and methods for combining images into a file using multiple color palettes

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/618,853 Continuation US8791954B2 (en) 2009-06-17 2012-09-14 Systems and methods for combining images into a file using multiple color palettes

Publications (2)

Publication Number Publication Date
US20140333661A1 US20140333661A1 (en) 2014-11-13
US9406276B2 true US9406276B2 (en) 2016-08-02

Family

ID=43353926

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/486,695 Active 2031-08-10 US8284212B2 (en) 2009-06-17 2009-06-17 Systems and methods for combining images into a file using multiple color palettes
US13/618,853 Active US8791954B2 (en) 2009-06-17 2012-09-14 Systems and methods for combining images into a file using multiple color palettes
US14/444,923 Active 2029-12-19 US9406276B2 (en) 2009-06-17 2014-07-28 Systems and methods for combining images into a file using multiple color palettes

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US12/486,695 Active 2031-08-10 US8284212B2 (en) 2009-06-17 2009-06-17 Systems and methods for combining images into a file using multiple color palettes
US13/618,853 Active US8791954B2 (en) 2009-06-17 2012-09-14 Systems and methods for combining images into a file using multiple color palettes

Country Status (1)

Country Link
US (3) US8284212B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965642A (en) * 2017-05-18 2018-12-07 柯尼卡美能达株式会社 Color-values Corrective control method, recording medium and image forming apparatus

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104423900B (en) 2013-08-27 2018-04-27 北大方正集团有限公司 Image printing method and printer
US9395894B2 (en) * 2013-11-06 2016-07-19 Software Ag System and method for browser side colorizing of icon images
WO2016028282A1 (en) * 2014-08-19 2016-02-25 Hewlett-Packard Development Company, L.P. Color map from color data collected from plurality of sources
WO2016049843A1 (en) * 2014-09-30 2016-04-07 富士通株式会社 Palette coding method and apparatus and image processing device

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459486A (en) 1994-04-18 1995-10-17 University Of Washington Method and apparatus for combining palettes of color quantized images
US5611027A (en) * 1992-08-04 1997-03-11 International Business Machines Corporation Image enhancement with mask having fuzzy edges
US6388675B1 (en) * 1998-12-18 2002-05-14 Sony Corporation Image processing apparatus and image processing method
US20050179697A1 (en) * 2002-03-01 2005-08-18 Guang-Ting Shih Method and apparatus for updating a color look-up table
US20060158457A1 (en) * 2005-01-19 2006-07-20 Broadcom Corporation Individual channel filtering of palettized image formats
US20060242416A1 (en) 2005-04-21 2006-10-26 Xerox Corporation Systems and methods for embedding messages in look-up tables
US20080273804A1 (en) 2007-05-02 2008-11-06 Motorola, Inc. Image Transformation
US20090010533A1 (en) 2007-07-05 2009-01-08 Mediatek Inc. Method and apparatus for displaying an encoded image
US7843465B1 (en) 2007-05-31 2010-11-30 Zoran Corporation Method and apparatus for mapping a multi-dimensional signal from one space to another space

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5611027A (en) * 1992-08-04 1997-03-11 International Business Machines Corporation Image enhancement with mask having fuzzy edges
US5459486A (en) 1994-04-18 1995-10-17 University Of Washington Method and apparatus for combining palettes of color quantized images
US6388675B1 (en) * 1998-12-18 2002-05-14 Sony Corporation Image processing apparatus and image processing method
US20050179697A1 (en) * 2002-03-01 2005-08-18 Guang-Ting Shih Method and apparatus for updating a color look-up table
US20060158457A1 (en) * 2005-01-19 2006-07-20 Broadcom Corporation Individual channel filtering of palettized image formats
US20060242416A1 (en) 2005-04-21 2006-10-26 Xerox Corporation Systems and methods for embedding messages in look-up tables
US20080273804A1 (en) 2007-05-02 2008-11-06 Motorola, Inc. Image Transformation
US7843465B1 (en) 2007-05-31 2010-11-30 Zoran Corporation Method and apparatus for mapping a multi-dimensional signal from one space to another space
US20090010533A1 (en) 2007-07-05 2009-01-08 Mediatek Inc. Method and apparatus for displaying an encoded image

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965642A (en) * 2017-05-18 2018-12-07 柯尼卡美能达株式会社 Color-values Corrective control method, recording medium and image forming apparatus

Also Published As

Publication number Publication date
US20100321401A1 (en) 2010-12-23
US20140333661A1 (en) 2014-11-13
US8791954B2 (en) 2014-07-29
US20130009978A1 (en) 2013-01-10
US8284212B2 (en) 2012-10-09

Similar Documents

Publication Publication Date Title
US9406276B2 (en) Systems and methods for combining images into a file using multiple color palettes
EP1729256A1 (en) Image processor
US9514691B2 (en) Electronic display
US20160133030A1 (en) Color selector for desktop publishing
CN112000303B (en) Processing method and device capable of realizing watermark printing, electronic equipment and storage medium
JP2005210208A (en) Image processor, image processing method, and program
JP2008072650A (en) Image processor, image forming apparatus, and program
JP2004054880A (en) Method for executing color gamut compression
JPH01321578A (en) Picture display system
KR101376211B1 (en) Image composing apparatus of around view monitor system for changing view mode easily and method thereof
US6738071B2 (en) Dynamically anti-aliased graphics
US20210097903A1 (en) Image representation method, image representation device, and computer readable storage medium
US8520939B2 (en) Apparatus and method of reproducing preferred color
US8798435B2 (en) Systems and methods for a common image data array file
CN116152036A (en) Watermark processing method, watermark processing device, electronic apparatus, watermark processing program, and watermark processing medium
JP2008228168A (en) Image processing apparatus and program
EP3454538A1 (en) Method for determining a transfer function adapted to be used for color grading a visual content and corresponding electronic device, system, computer readable program product and computer readable storage medium
CN106325665B (en) Display control method and electronic equipment
US7903124B2 (en) Individual channel filtering of palettized image formats
JPH1188712A (en) Image processing method and image processor
JP2009192752A (en) Image processor
CN111724449B (en) Image processing method, device and equipment
US6195081B1 (en) Single-pass color quantization for graphic images
JP2007503064A (en) Display colors in stored images using color coloring
JP2021099416A (en) Display controller, display device, method for control, and control program

Legal Events

Date Code Title Description
AS Assignment

Owner name: ECHOSTAR TECHNOLOGIES L.L.C., COLORADO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ENGELBERT, JOSHUA;IVANICH, BILL;REEL/FRAME:033465/0565

Effective date: 20090616

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: DISH TECHNOLOGIES L.L.C., COLORADO

Free format text: CHANGE OF NAME;ASSIGNOR:ECHOSTAR TECHNOLOGIES L.L.C.;REEL/FRAME:047264/0127

Effective date: 20180202

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: U.S. BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT, MINNESOTA

Free format text: SECURITY INTEREST;ASSIGNORS:DISH BROADCASTING CORPORATION;DISH NETWORK L.L.C.;DISH TECHNOLOGIES L.L.C.;REEL/FRAME:058295/0293

Effective date: 20211126

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8