Nova Patents
EP0366309A2

Colour image quantization system.

Abstract

A color image quantization system is described which utilises a look up table into which representative color data is loaded. This data is determined by repeated division of original color space into K child-color spaces, K being equal to the number of addresses to the LUT. The order of division is dependent upon the frequency of original image pels whose colors lie in each color space. Utilising the system, the number of pels assigned to each color space becomes as nearly equal as possible and image quality is maintained.

EP0366309A2, drawing sheet 1
Sheet 1 of 25

Term

Term ended

Projected expiry passed 12 October 2009, 17 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

10 claims: 7 independent, 3 dependent

  1. 1
    A color image quantization system in which selection of representative color data to be loaded into a lookup table (LUT) are determined by division of an original color space to generate child-color spaces, which in turn are repeatedly divided until at least k child-color spaces have been generated, where k equals the number of addresses to the LUT, the order in which the color spaces are divided being dependent upon the frequency of orignal image pels whose color lies within each color space..
  2. 4
    A color image quantization system as claimed in any of Claims 2, 3 or 4 wherein the color-spaces are divided in descending order of space-occupying number.
  3. 5
    A method for color image quantization which comprises selecting "k" display colors among 2Σni colors obtained by assigning ni bits to represent the intensity level of each of "a" kinds of basic color (1 ≦ i ≦ a), and quantizing original color image comprising a number of pels for which any one of said 2Σni colors may be assigned so that it may be displayed with the said "k" display colors, further comprising:(a) inputting the original image, sampling it in a color-space defined by assigning mi (mi ≦ ni) bits for representing intensity level of each of the said "a" kinds of basic color, and generating an a-dimension histogram,(b) repeating dividing a color-space into X child-spaces, when calculating a space-occupying number by: calculating the number of pels assigned for colors within each generated child-space, referring to the histogram, and multiplying the calculation result by a weighing-factor corresponding to a level of the division,(c) preparing a tree-structured list which describes a parent-child relationship of color-spaces, and updating the list by registering a newly generated color space each time a color space is divided,(d) selecting "k" color spaces as representative color spaces in descending order of the space-occupying number, among those located at ends of the tree-structured list,(e) selecting a representative color for each of the said "k" representative color-spaces, and providing the representative color with an index,(f) for a color other than the representative color within each of the said "k" representative color-spaces, giving the index assigned for the representative color of the color-space, for a color within a color-space other than the said representative color-spaces in the said tree-structured list, finding a representative color-space located close to the color-space, and giving it the index assigned for the found representative color-space.(g) for each pel in the said original image, obtaining an index given to the color assigned for the pel, and storing it in a storage means.
  4. 6
    (6) A method for color image quantization which comprises selecting "k" display colors among 2Σni colors obtained by assigning ni bits for representing the intensity level of each of "a" kinds of basic color (1 ≦ i ≦ a), and quantizing original color image comprising a number of pels for which any one of the said 2Σni colors may be assigned so that it may be displayed with the said "k" display colors, further comprising:(a) inputting the said original image, sampling it in a color-space defined by assigning mi (mi ≦ ni) bits for representing intensity level of each of the said "a" kinds of basic color, and generating an a-dimension histogram,(b) repeating dividing a color-space into X child-spaces, when calculating a space-occuping number by: calculating the number of pels assigned for colors within each generated child-space, referring to the said histogram, and multiplying the calculation result by a weighing-factor corresponding to a level of the division,(c) preparing a tree-structured list which describes a parent-child relationship of color-spaces, and updating the list by registering a newly generated color space each time a color space is divided,(d) whenever said list is updated, selecting up to "k" color spaces in descending order of the space-occupying number, among those located at ends of the tree-structured list,(e) judging the divisibility of each of said selected color spaces in the descending order of space-occupying number of said color-space, selecting said color-space as the representative color space if it is not divisible, or selecting said color-space as the object of division if it is divisible,(f) stopping the division of the color-space at the time when the number of the representative color-spaces reaches "k",(g) selecting a representative color for each of the said "k" representative color-spaces, and providing the representative color with an index,(h) for a color other than the representative color within each of the said "k" representative color-spaces, giving the index assigned for the representative color of the color-space, for a color within a color-space other than the said representative color-spaces in the said tree-structured list, finding a representative color-space located close to the color-space, and giving it the index assigned for the found representative color-space,(i) for each pel in the said original image, obtaining an index given to the color assigned for the pel, and storing it in a storage device.
  5. 7
    (7) An apparatus for color image quantization which comprises selecting "k" display colors among 2Σni colors obtained by assigning ni bits for representing the intensity level of each of "a" kinds of basic color (1 ≦ i ≦ a), and quantizing original color image comprising a number of pels for which any one of said 2Σni colors may be assigned so that it may be displayed with the said "k" display colors, further comprising:(a) means for inputting the said original image, sampling it in a color-space defined by assigning mi (mi ≦ ni) bits for representing intensity level of each of the said "a" kinds of basic color, and generating an a-dimension histogram,(b) means for calculating a space-occupying number by:(b1) whenever a color-space subject to division is selected, dividing said selected color-space into X child color-spaces,(b2) providing an identifier for the child color-space generated through the division,(b3) generating pointer data for relating said child space to the parent space,(b4) calculating the number of pels assigned for colors within said generated child-space, by referring to the said histogram, and multiplying the calculation result by a weighing-factor corresponding to a level of the division,(c) the first list for controlling data obtained from the operations of said (b2) and (b4), based on the pointer data obtained from the operation of said (b3),(d) means for registering child spaces at least the space-occupying number of which is non-zero, in said first list each time the color-space is divided,(e) the second list for registering the identifiers and the space-occupying number of the generated color-spaces,(f) means for, whenever a color-space is divided, cancelling registration of the divided color-space in the said second list, and for registering newly generated color-spaces in said second list,(g) means for counting the number N of color-spaces registered in the second list, and, when N exceeds k, cancelling registration of (N - k) color-spaces from the second list in the ascending order of the space-occupying number,(h) means for, whenever said second list is updated:(h1) selecting the divisible color-space with the largest space-occupying number as an object of division from those contained in the updated color-space list,(h2) in a case where said count N reaches "k", calculating the maximum value of the space-occupying number of child spaces that would be obtained if the selected color-space were divided, comparing said maximum value with the minimum value of the space-occupying numbers for the color-spaces in the current second list, and judging the divisibility of the selected color-space based on said comparison,(h3) in a case where the color-space selected is judged not to be divisible by said comparison, cancelling the selection of said color-space as the object of division, and then repeating the operations of (h1) and (h2), for the divisible color-space remaining in the said second list,(i) means for stopping the division of the color-space when all color-spaces in said second list are judged not to be divisible,(j) means for selecting a representative color for each of the color-spaces registered in the said second list after the division of the color-space, and providing the representative color with an index,(k) means for providing colors in the color-spaces registered in said second list with the index provided for the representative color of said color-space, and for colors in the color-space not registered in said second list, for finding a color-space in said second list located in the neighbourhood of said color-space by scanning said first list, and providing it with the index provided for the representative color of said found color-space;and(l) means for finding an index provided for a color assigned to each pel of said original image, and storing the found index in a storage device.
  6. 8
    (8) An apparatus for color image quantization which comprises selecting "k" display colors from 2an colors obtained by assigning n bits for representing the intensity level of each of "a" kinds of basic color, and quantizing the original color image comprising a number of pels for which any number of colors may be assigned so that it may be displayed with the selected display colros, further comprising:(a) means for inputting the said original image, sampling it in a color-space defined by assigning m bits for representing intensity level of each of the said "a" kinds of basic color, and generating an a-dimension histogram,(b) means for calculating a space-occupying number by:(b1) regularly dividing an a-dimension color-space into X,(b2) providing identifiers for the child color-spaces generated through the division,(b3) generating pointer data for relating said child spaces to the parent space,(b4) calculating the number of pels of the original image assigned for colors within the divided child-space, by referring to the said histogram, and multiplying said calculation result by a weighing-factor corresponding to a level of the division,(c) means repeating operations of: further evenly dividing a child-color space with a large space-occuping number into X so that the space-occupying numbers of the child color-spaces are balanced, and executing the operations of (b2), (b3) and (b4),(d) a divided color-space management list controlling the data obtained from the operations of said (b2) and (b4) in a tree-structure based on the pointer data obtained from the operation of said (b3),(e) means for registering child spaces at least the space-occupying number of which is non-zero, as color-space elements in said divided color-space controlling list whenever the division by said means (b) or (c) is performed,(f) division priority management list of color-spaces for registering identifiers and space-occupying number of the color-spaces divided by said means (b) or (c),(g) means for, whenever a color-space is divided by said means (b) or (c), registered newly generated color-spaces in the division priority management list, and for rearranging the color-space elements in said list in the descending order of the space-occupying number,(h) a means for cancelling the registration of (N - k) color-spaces from the division priority management list in the ascending order of the space-occupying number when the number N of the color-space elements registered in the division priority management list exceeds said "k,"(i) a means for, whenever said division priority management list is updated;(i1) selecting a color-space generated by the division less than "m" times but having the largest space-occupying number in the updated division priority management list as the color-space subject to the division by said means (c), or(i2) in a case where the number N of the color-space elements registered in said division priority management list reaches "k," selecting a candidate color-space for division in the descending order of the space-occupying number, and calculating the maximum value of the space-occupying numbers for child spaces obtained by supposedly dividing said candidate color-space evenly into X, comparing said maximum value with the minimum value of the space-occupying for the color-spaces in the division priority management list, and selecting said candidate color- space as the olor-space subject to the division by said means (c) if the former is larger than the latter, and(i3) judging that said candidate color-space is not divisible if said comparison reveals that the former is not greater than the latter, and then repeating the said operation of (i2) for a color-space in said division priority management list that is not yet selected as the candidate for the division,(j) means for stopping the division of color-space when all color-spaces in said division priority management list are judged to be not divisible by said means (i),(k) means selecting a color representing each of color-spaces registered in said division priority management list after stopping the division, providing a color index for said representative color, and generating a color lookup table,(l) a means for providing the color index for the color-space determined by said means (j) for a corresponding color-space in the division priority management list as well, and providing a parent color-space having child color-spaces in the division priority management list with the color index for the child color-space having the largest space-occupying number recursively,(m) means for finding for a color-space not yet provided with a color index in said division priority management list a color indexed color-space located on the tree-structure in the neighborhood of said color-space, and providing the color index provided for the found neighborhood color-space to said color-space not yet provided with a color index, and(n) a means for determining to which color-space in the divided color-space management list the color assigned to each pel of said original image belongs, and storing the color index provided for the determined color space in a memory for display. In addition, it is arranged that the divisibility of a color-space can be determined by introducing a weighing-factor which depends on the division level, so that, in a case where the original image does not have coloring that is not uniformly distributed in the color-space, but has a number of local peaks, it is possible to avoid dropping of the colors representing a color group that are of low density in the color-space, but are widely distributed (they are often colors for accent). Therefore, it is possible to prevent degrading of the quality of the quantized image.
  7. 9
    (9) A method of color image quantization as claimed in Claims 5 or 6, wherein said "a" kinds of component are basis colors.