GB2287600A - Digital RGB colour conversion system - Google Patents

Digital RGB colour conversion system Download PDF

Info

Publication number
GB2287600A
GB2287600A GB9404943A GB9404943A GB2287600A GB 2287600 A GB2287600 A GB 2287600A GB 9404943 A GB9404943 A GB 9404943A GB 9404943 A GB9404943 A GB 9404943A GB 2287600 A GB2287600 A GB 2287600A
Authority
GB
United Kingdom
Prior art keywords
colour
colours
value
image
indication
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.)
Withdrawn
Application number
GB9404943A
Other versions
GB9404943D0 (en
Inventor
Simon Richard Hayhurst
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to GB9404943A priority Critical patent/GB2287600A/en
Publication of GB9404943D0 publication Critical patent/GB9404943D0/en
Publication of GB2287600A publication Critical patent/GB2287600A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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

Landscapes

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

Abstract

The system uses distance minimization for converting a first set of colours associated with an image to a second set of colours for displaying the image on an output device. A warping in the 3-axis RGB space is obtained by introducing a weighting value for each colour parameter value defining the colours; the weighting value is dependent on the colour parameter values of the source colour and it may include an offset value. An indirection table is used to associate each colour of the first set with the corresponding colour of the second set; the table provides, in response to an index value addressing a colour of the first set in a lookup table, an indication of the corresponding colour of the second set associated therewith. <IMAGE>

Description

METHOD AND SYSTEM FOR CONVERTING COLOURS The present invention relates to a method and system for converting colours associated with an image and for displaying the image on an output device.
Colour output devices, and in particular colour display devices, are well known in the art. In an RGB device, colour information for each picture element (pixel) is stored in a frame buffer and is presented to a display as three separate colour parameter values (direct mode); a first colour parameter value representing the intensity of the red colour, a second value representing the intensity of the green colour and a third value representing the intensity of the blue colour. Typically, 24 bits of colour information may be used; 8 bits representing red, 8 bits representing green and 8 bits representing blue. Using 24 bits of colour information allows over 16 million (224) colours to be produced. Other colour models, such as subtractive colour models used for media which absorb light, follow different rules and may utilize different colour parameter values.
It is common to utilize a lookup table (or palette) to indirectly define the colour of the pixels for display (indirect mode). A number of bits, typically between 1 and 8, are stored for each pixel; these bits are used as an index for accessing a location within the palette, containing data defining the pixel colour. Using for instance 24 bits of colour information and 8 bits of pixel information, a palette with 256 (28) entries of 24 bits may be defined; it allows the simultaneous display of up to 256 different colours, chosen from over 16 million possible different colours. The use of a lookup table offers a number of advantages; for exampla, a smaller amount of memory may be used and, in some systems, colours on the display may be adjusted by adjusting the data content of the palette.
In a colour display device, the number of bits used for colour information determines the number of available colours, while the number of bits allocated to each pixel determines the number of different colours that can be simultaneously displa'ed. For example, the IBM 8514/A graphics adapter, which provides an interface between the computer and the display, provides the capability to display over 256,000 colours, but only 256 different colours can be displayed at a time. The IBM Enhanced Graphics Adapter (EGA) can display 64 different colours, but only 16 colours can be displayed at a time.
A typical problem is to accommodate the differences in the colours the various display devices support. Particularly, a problem arises when images defined for a set of colours are to be displayed on a device with a smaller set of active colours; also, a problem arises when images defined for a particular set of colours are to be displayed on a device supporting different colours. The latter situation may arise for example in a multi-tasking system supporting a single palette, where the number of colours available for each application to select is smaller than the total number of active colours, since some colours have already been allocated to the system or to different applications.
The reduction in the number of colours is described for example in US Patent 4,956,638 and US Patent 5,138,303. These patents are mainly concerned with using "dither" patterns to best simulate a larger number of colours. Dots of one colour are interposed with dots of another in a correct ratio to form the desired shade; if there are appreciable numbers of pixels in an area being coloured, and if the resulting image is viewed from a distance, the eye combines the colours of the dither pattern to achieve the effect of the desired shade.
Dither techniques employ a simple truncation to convert from the first set of colours to the second, and then ompensate spatially for the reduced number of colours. More sophisticated conversion methods and systems for mapping a first set of colours to a second set of colours are also known in the art. For example, methods particularly addressed to the problem of maintaining contrast between text and background are set forth in US Patent 4,763,2tis and US Patent 5,122,784.
Often colours have to be manipulated, to fit a constraint on available display colours, in a time constrained environment. One such source of these constraints would be in a real-time application, such as video conferencing or live video. A more general method for colour conversion in such situations is described in US Patent 5,068,644, which uses a colour-to-index table for translating colour information to an index value. The index value is in turn used to address a colour lookup table to provide new colour information for displaying. This method is addressed specifically to the problem of using RGB colour information to match any given input colour to the closest available output colour.In order to convert the whole available space of colours, generated by each possible RGB permutation, into the new set of colours, a geometrical approximation of distance minimization between colours is used. Since the use of the full RGB colour information field as an address input to the colour-to-index table would require too large a table, this method utilizes a reduced number of bits from each colour parameter value (truncation) to approximate the RGB colour information field. This can lead to difficulties if the input or output colours are too close together.
It has been found that the methods known in the art provide a conversion of colours that is too insensitive for human eyes; the applicants have discovered that in some cases the human eye perceives the proximity of two colours in a different way from that obtained by a conventional mathematical approach. Known colour conversion systems therefore do not satisfy the human perception of colours.
Accordingly, the invention provides a method for converting a first set of colours associated with an image to a second set of colours for displaying said image on an output device, each colour of the first and second set being defined by a plurality of colour parameter values, comprising the steps of: calculating for each colour of the first set a distance from each colour of the second set, said distance being a function of the differences between each colour parameter value of the colour of the first set and the corresponding colour parameter value of the colour of the second set; and determining for each colour of the first set a corresponding colour of the second set associated therewith, said corresponding colour minimizing said distance; wherein said function includes a weighting value for each of said differences, said weighting value being dependent on the colour parameter values of the colour of the first set.
The first and second set of colours may be defined in a generic Ndimensional space, for example in a 2-dimensional space, a 3-dimensional space, a 4-dimensional space and so on; typically, the colours are defined by three colour parameter values. Different colour parameter values can be used to implement the invention; typically, the colours are defined by a first colour parameter value representing the intensity of the red colour, a second value representing the intensity of the green colour and a third value representing the intensity of the blue colour.
Typically the number of colours in the second set will be smaller than the number in the first set, although still comparable thereto (e.g. a 2 to 1 mapping might be used). Alternatively the second set may be as large or even larger than the first set, and contain a different set of colours.
The method of the invention provides the advantage of a conversion of colours that is tailored to human perception of colours, the human eye being generally more sensitive to colours than to brightness. The warping in the colour space introduced by the weighting values prevents unsuitable colour conversions; in other words, the invention provides a conversion that is based on the human eye perception of colour proximity, which may be different from that obtained by a conventional mathematical approach.Considering for example a source colour near to the red axis, the method of the present invention tends to convert the source colour to a second colour also near to the red axis, even if from a mathematically point of view there are other colours of the second set "closer" to the source colour; as a matter of fact, such other colours are perceived by the human eye as rather different and accordingly are not, by human standards, a good match.
In a preferred embodiment of the present invention, the distance function is calculated by: calculating the squared value of each of said differences; calculating the product of each of said squared values with the weighting value; and summing said products.
In the above mentioned embodiment, the weighting value is used as a scaling factor to modify the Euclidean distance between two colours.
However, in different embodiments of the present invention, other functions may be used for calculating the distance with the warping effect, such as exponential functions, logarithmic functions and so on, limited only by computer power.
Preferably, said weighting function includes an offset value. The offset value offers advantages for colours close to the zero; it prevents small differences in colours close to zero becoming distorted by a zero effect, and in addition removes the need for any special treatment of black.
In another preferred embodiment, the method of the present invention further comprises the step of: providing an indirection table, said indirection table in response to an indication of a colour of the first set producing an indication of the corresponding colour of the second set associated therewith.
The use of the indirection table offers the advantage that the minimization process is not performed for every image. Rather, in most circumstances a series of input images (e.g. in a video conference) will all utilize the same palette. In such circumstances, the indirection table is only initialized and filled for the first image; the same indirection table can then be used for all subsequent images. Therefore, the definition or calculation of the second set of colours and the mapping thereto can be reasonably complex, since they are not performed for every image, but rather only when the input colour set changes.
Colour information may be represented both in a direct mode (e.g.
with 24-bit RGB colour values) or in an indirect mode, through index values addressing colour definitions in a lookup table. Typically, said indication of a colour of the first set is a first index value addressing said colour of the first set in a first lookup table and/or said indication of the corresponding colour of the second set is a second index value addressing said corresponding colour of the second set in a second lookup table.
Furthermore, a system for converting a first set of colours associated with an image to a second set of colours for displaying said image on an output device, implementing the above-described methods, is also provided.
Various embodiments of the invention will now be described in detail by way of examples, with reference to the accompanying Figures, where: Fig.1 is a view of a data processing system which may be utilized to implement the method and system of the present invention; Fig.2a and Fig.2b are block diagrams of different colour display devices included in the data processing system; Fig.3 is a simplified block diagram of the main software components running on the data processing system; Fig.4 is a schematic flowchart showing a flow of colour conversion; Fig.S is a 3-axis RGB space representation of colours; Fig.6a and 6b depict the warping effect in a 3-axis RGB space representation of colours.
Fig.7a and 7b depict the use of an indirection table for the colour conversion.
With reference now to the Figures and in particular with reference to Fig.1, there is depicted a data processing system which may be utilized to implement the present invention, comprising a system unit 100 including a central processing unit (CPU) 105, a random access memory (RAM) 110, a read only memory (ROM) 115, a communication adapter 120, a display device 125, a pointing device 130, a keyboard 135, and a mass storage device 140 as a hard disk drive or CD-ROM for example, all interconnected by a bus architecture 145. A network 150 is connected to system unit 100 via communication adapter 120. An example of a data processing system which may be utilized to implement the present invention is an IBM RISC System/6000 (IBM RS/6000), provided by International Business Machines Corporation.
Fig.2a and Fig.2b are more detailed block diagrams of different colour display devices. Referring to Fig.2a there is depicted a colour display device working in direct mode. The colour display adapter 205 reads and writes pixel values to a frame buffer 210, containing for each pixel colour information related to the colour of such pixel, that is the RGB colour value. A Digital-Analog-Converter (DAC) 215 transforms RGB colour values from frame buffer 210 into video analog signals for displaying on a video monitor 225, for example a cathode ray tube (CRT) display or a liquid crystal display. Referring now to Fig.2b there is depicted a colour display device working in indirect mode. The colour display adapter 205 reads and writes pixel values to a frame buffer 210.
The frame buffer 2i0 also interfaces to a palette 230; the frame buffer contains for each pixel colour information related to the colour of such pixel, that is an index value addressing the related RGB colour value in the palette 230. A Digital-Analog-Converter (DAC) 215 transforms RGB colour values from palette 230 into video analog signals for displaying on a video monitor 225.
Fig.3 is a simplified block diagram of the main software components running on the data processing system of Fig.l, comprising a server system 305 linked to a client system 325. With regard to the server system, there is an operating system 310 responsible for the basic functions of the computer in accordance with known techniques. Above the operating system there is a server module 315 and a user application 320.
Referring now to the client system 325, a client module 340 is used to communicate with the server module on the server machine when an application makes a graphics call to the server; this results in an appropriate message being sent from the server to the client. Thus when an image is transmitted by the server to the client, such image is passed, through the operating system 335, to a device driver 330, which then displays the image on a display 345. The software components of Fig.3 (apart from the application) can be provided for example by the multi-tasking IBM AIX/6000 operating system available from International Business Machines Corporation, incorporating X-Windows (from MIT), and are well-known to the skilled person.Note that the client-server environment of Fig.3 is not particularly fast, and so graphics calls must be utilized sparingly to ensure good performance (this is especially true if a graphics call is two-way; ie a reply is expected).
With reference now to Fig.4, there is depicted a schematic flowchart showing the flow of colour conversion. The colour conversion is performed by an application which makes calls to the graphic system (i.e. X-Windows in the present case). The only calls necessary for present purposes are to be able to query a palette, to define or alter a palette and to display an image.
At block 405 a computer represented image of some description is to be displayed; in the present case this means filling a Bitmap with all the colour information related to the image. The source of the image and its content are unimportant, e.g. the image could be input from a CD-ROM or a video camera attached to the computer or it could be sent from another location by some means of transmission. The image includes a plurality of indications of colour, either directly (e.g. with 24-bit RGB colour values) or indirectly. In this example, each pixel is defined by a first 8-bit index value addressing the related RGB colour value in a first lookup table with 256 (28) entries with 24-bit RGB colour information (8-bits per primary colour). The image has a known first set of colours from the lookup table.The first set of colours associated with the image has to be converted to a second set of colours (for example 128 colours), to fit a constraint on available colours.
Block 410 depicts a determination of whether or not the palette associated with the image is new (i.e. different form the current one).
If the given palette is not new, the process passes to block 455, where the image is converted, as described in detail later. If the given palette is new, the process then passes to block 415, depicting a determination whether or not the system palette is private (allowing a more flexible use of colours).
If the system palette is private, the process passes to block 420, where the second set of colours is defined. In a system with a private system palette, there are no pre-existing colours, nor do other applications need to be considered. However, in a time constrained environment, no fancy selection of the most popular colours, or shading preservation is possible (although the approach described below could support such requirements), rather this step of forming the second set of colours must be simple to reduce the time taken. For example, if the second colour set is 8-bit but the first colour set has a larger number of bits, the first colour set can be dithered down, thereby changing the first colour set to a suitable number of bits, and then any other colour required (e.g. overlay drawing colours) can be added.The process then passes to block 435, where the indirection table is initialized, as described in detail later.
Referring again to decision block 415, if the palette is not private, the process passes to block 425, where a query on the system palette is issued, in order to obtain the colours already defined in the palette. Referring now to block 430, if the system palette is not already completely defined, the subset of colours still open for choice is defined and such colours are added to the system palette. In such circumstances, it is desirable for the palette, that is the second set of colours, to be defined broadly, in order to allow other applications a reasonable chance of obtaining their colours. Typically, a palette might end up including pre-existing colours, colours specific to the application, a selection of greys, and the broadest possible rainbow.
It may be noted that blocks 425-430 in the case of a system palette or block 420 in the case of a private palette, actually define the second set of colours.
Referring now to block 435, an indirection table is initialized.
Such indirection table provides a number of entries equal to the number of entries of the first lookup table (256 in the present case); each entry is used, as described in more detail later, to contain, for each colour of the first set, an indication of a colour of the second set.
Referring now to block 440 a distance or error E=f(A,A') between each colour A of the first set (n colours) and each colour A' of the second set (m colours) is calculated. If the colours of the first and second set are defined by a plurality of colour parameter values (Lk and Lk' respectively, with k=l..v), the distance may be calculated as a function of the differences between each colour parameter value of the colour of the first set and the corresponding colour parameter value of the colour of the second set, i.e.: E=f((LiL'),(L2L'),...(LvLv')) This calculation of the distance function will be described in more detail below.
Referring now to block 445, a match is performed to determine for each colour Ai (with i=l..n) of the first set a corresponding colour Ai' (with j=l..m) of the second set associated therewith. The matching method used is such that the distance Ejj(Ai,Aj1) between a colour of the first set and the corresponding colour of the second set is minimized. All distances Eij between each zolour Ai (with i=l..n) of the first set and each colour Ai' (with j=l..m) of the second set are calculated.Then, each colour A1 of the first set is associated with a corresponding colour A > ' of the second set, such that Eij is minimum. This process effectively maps a first set of colours to a second set of colours. Special precautions are necessary if the first colour is a grey, to prevent this being "coloured" by the conversion, the eye being rather sensitive to such effects. Thus, the first set of colours is first inspected and, if all entries are grey, then it is mapped to the subset of the second set of colours which are grey. If any particular input colour Ai is a grey, then the corresponding distance E is invalid for all non-grey colours Aj' of the second set.Any input colour Ai of the first set is then only associated with the corresponding colour A > ' of the second set, such that Eij is valid and minimum. In other words, input greys are only mapped to output greys. As presently implemented, grey colours are defined as those which have equal values of red, green and blue components. Obviously this definition could be expanded to introduce near greys if appropriate. Likewise a similar treatment could easily be extended to other monochromatic but tinted images (e.g. such as an old sepia-coloured photograph).
Referring now to block 450, each entry of the indirection table is filled by inserting an indication of the corresponding colour of the second set associated with the colour of the first set and which can be addressed by the same first index value; such indication of the corresponding colour may be the actual 24-bit RGB representation of the corresponding colour of the second set or a second index value addressing the colour of the second set in a second lookup table. For example, the second index value might have 7 bits and address a table having 128 (27) entries, each providing a 24-bit RGB colour. The result is to transform each colour into a new one, that is mapping of the first set of colours to the second.
Referring now to block 455, the image is converted to the second set of colours. The indirection table indicates which new colour should replace the original colour for each pixel. To reflect this operation across the image, the image is processed by updating the colour entry for each pixel, replacing the first index value with the indication of the corresponding colour of the second set. If the new colour (Aj') is defined directly by the 24-bit RGB representation, each first index value in the image is replaced by this colour (see Fig.7a).If the second set of colours is defined in a second lookup table, each first index value of the image is replaced by a second index value, addressing ir. the second lookup table the colour of the second set corresponding to the colour of the first set addressed by the first index value in the first lookup table, as shown in Fig.7b. For example, in X-Windows applying the new set of colours means using a Colormap with those colours in it, in the order which they appear in the first set.
The process then ends at block 460, where the converted image is displayed on the output device.
It is important to appreciate that the minimization process need not be performed for every image. Rather, in most circumstances a series of input images (e.g. in a video conference) will all utilize the same palette.
In such circumstances, the indirection table is only initialized and filled for the first image. The same indirection table can then be used for all subsequent images. Therefore, the definition or calculation of the second set of colours and the mapping thereto can be reasonably complex, since they are not performed for every image, but rather only when the input colour set changes.
Discussing now the minimization process of steps 440 and 445 in more detail, a typical distance function is given by the sum of squared differences (Euclidean distance): E=(L1-L11 )2+(L2-L2, )2+ (LvLv' ) In an RGB system, where the colours of the first and second set are defined by a red colour parameter value (R and R' for the first and second set respectively), a green colour parameter value (G,G') and a blue colour parameter value (B,B'), this function would be E=f((R-R1),(G-G'),(B-B')), and in particular, using a Euclidean distance:: E=(R-R')2+(G-G')2+(B~B1)2 If these colour parameter values are considered as normal axes in a 3-axis RGB space, then each colour parameter value may be considered as a spatial coordinate and each colour may be represented as a point in a 3-axis RGB space; the distance E between a colour A of the first set and a colour A' of the second set can then be represented as the distance between the points associated with the colours in a 3-axis RGB space, as shown in Fig.5.
This distance is used to convert the first set of colours to the second set, using a distance minimization technique; that is, each colour of the first set is associated with the closest colour of the second set in the colour space.
However, it has been noted that the matching resulting from the distance defined above can be too neutral for the human perception of colours. In other words, what may mathematically be the closest match using a Euclidean metric results in a change of colours that is rather noticeable to the eye, and accordingly not, by human standards, a good match.Thus, in accordance with the invention, a weighting value Sk (with k=l..v) is introduced for each of the differences (Lk-Lk'), dependent on the colour parameter values of the colour of the first set, so that the distance between each colour of the first set and each colour of second set becomes: E=f([S1,(L1-L1'[S2,(L2-L2'...[Sv(Lv-Lv)]) For example, this can be achieved by using each weighting value Sk as a scaling factor, where: E=f(S1-(L1-L1'),2.(L2-L2'),...Sv.(Lv-Lv')) The use of such weighting values with the Euclidian distance gives: E=S.(L1-L1,)2+S2.(L2-L21)2+...S.(L-L')2 In an RGB system such a function would be:: E=Sr.(R-R')2+S-(G-G')2+Sb.(B-B' ) In alternative embodiments of the present invention, different mapping functions may be implemented for the distance minimization between a colour of the first set and a colour of the second set, such as: E= ,R-R/) Sr+ ( G- Gl) Sg+ (B-B') 5b Such weighting values in effect change the scale of each axis producing a space warping and alter the perceived distances of all neighboring points (i.e. the metric of colour space is distorted).
Referring for example to Fig.6a, a colour A1 of the first set and two colours A11 and A2' of the second set are shown in a 3-axis RGB space, without warping (for simplicity, all colours have been chosen with a zero blue colour parameter value); as can be seen in the same Figure, the Euclidean distance E11 between A1 and A11 is smaller than the distance E12 between A1 and A2,, even if the human eye perceives the colour A2, as being more similar than A1, to the colour A1.Referring now to Fig.6b, the same colours Al, A11 and A2' are shown in a 3-axis RGB space with warping, where now the colour A2' is closer than A11 to the colour Al. Such warping prevents unsuitable colour conversions. In the above mentioned example, the colour A1 (close to the green axis) is converted to the colour A2' (also close to the green axis) and not to the colour A11 that, even if originally mathematically closer to A1 than A2,, is perceived by the human eye as a rather different colour.
One system for modifying the Euclidean distance is to define the weighting values with the largest colour parameter value of the colour of the first set having a scaling factor of 2, the second largest colour parameter value a scaling factor of 1.5 and the smallest one a scaling factor of 1. So, for R=50,000, G=30,000 and B=20,000 we have Sir=2, S=1.5 and S =1.
Another approach is to apportion scaling factors according to the ratio of red to green to blue. This method allows more sensitivity for near grey colours (i.e. colours with near equal values of red, green and blue components are warped less than those with widely differing values).
Moreover, an implementation advantage is the lack of conditional branches that this generates in a computer program. The scaling factor for one colour parameter value, for example red, may be calculated by the following steps: Mean=(R+G+B+3s0ffset)/3 where "Offset" is a value used to remove the need for any special treatment of black, and prevents small differences in colours close to zero becoming distorted by a zero effect. We then calculate: Linear~Colour~Warp=(R.Off set~Scalar + Off set ) /Mean where the addition of "Offset" counters the effect of having removed the zero point effects using the "Offset" value in the preceding equation.The "Offset Scalar" quantity is used to control the degree or accentuation of the warping; it need not be the same for red, green and blue component.
A high value produces a large amount of warping for a given colour difference and "Offset" value ("Offset Scalar" is also used to stop the actual colour value being dominated by "Offset"). The weighting value is then: S=(Linear~Colour~Warp/Off set~Counter~Balance)2+1 where "Offset Counter Balance" is used to reduce the magnitude of the scaling factors used to an acceptable range (e.g. between 1 and 10). The final addition of a 1 is to ensure that no scaling factor ignores a colour type (by having a scaling factor of zero), the final scalar being an integer in implementation.
In the above mentioned example, the scaling factor used to warp the axes is itself formed in a non-linear manner which further accentuates colours in a controlled manner. With appropriate system tuning, and appropriate mixing of integer and float types this allows a very powerful, stepped warping factor mechanism, which guarantees no warping for evenly spread colours, yet allows considerable warping in appropriate areas, from a computationally simple method. In addition, the resulting scaling factor is an integer quantity, to allow faster processing in the matching process.
Other systems may be used, to provide more complex effects. One particularly powerful one is to consider colour clustering. If a band of shading is discovered, a more powerful "Offset Scalar" value may be applied, which then encourages an increased differentiation between those shades.
Such a system is best used in an image displayer, rather than a real time system. A non-time constrained system could also include natural favourings for stronger blues, since the eye is blue weak, and other such factors.
The matching method herein described is best utilized when performing a conversion between a similar number of colours. For the reduction of a vast number of colours to a much smaller number of colours the present matching method may be less appropriate than truncation or dithering, which are much faster.
The definition of the second set of colours is normally achieved by first including standard colours used or likely to be required by other applications, and then adding about 20 shades of greys. This allows the very acceptable display of a greyscale image. Finally, the remainder of the palette is filled with as large a rainbow of colours as possible. This approach is very satisfactory in most situations, although many more sophisticated approaches might be used. For example, the second set of colours may be defined in an "adaptive" manner, based on the distribution of the colours of the first set in the images being displayed, building a second set that contains the colours that are actually most used in the input images. Alternatively some applications may indicate special requirements; for example, a video on plants may require a palette with a large number of greens to ensure accurate representation of subtle differences.
Although the colour conversion process of the invention has being performed by a application in a client-server environment, the skilled person will recognise that it can be utilised in a broad range of contexts; for example, the colour conversion process could be incorporated into the operating system, typically as part of the palette handling mechanisms, into the device driver for a graphics card, or even included in the hardware of the display device (the graphics adapter) to ensure particularly fast conversion.

Claims (12)

1. A method for converting a first set of colours associated with an image to a second set of colours for displaying said image on an output device (125), each colour of the first and second set being defined by a plurality of colour parameter values, comprising the steps of: calculating (440) for each colour of the first set a distance from each colour of the second set, said distance being a function of the differences between each colour parameter value of the colour of the first set and the corresponding colour parameter value of the colour of the second set; and determining (445) for each colour of the first set a corresponding colour of the second set associated therewith, said corresponding colour minimizing said distance; characterized in that said function includes a weighting value for each of said differences, said weighting value being dependent on the colour parameter values of the colour of the first set.
2. The method according to Claim 1 wherein said function is calculated by: calculating the squared value of each of said differences; calculating the product of each of said squared values with their respective weighting value; and summing said products.
3. The method according to Claim 1 or 2, wherein the weighting function includes an offset value.
4. The method according to any Claim from 1 to 3, further comprising the step of: providing (435,450) an indirection table, said indirection table in response to an indication of a colour of the first set producing an indication of the corresponding colour of the second set associated therewith.
5. The method according to Claim 4, wherein said indication of a colour of the first set is a first index value addressing said colour of the first set in a first lookup table and/or said indication of the corresponding colour of the second set is a second index value addressing said corresponding colour of the second set in a second lookup table.
6. The method according to any Claim from 1 to 5, wherein each colour of the first and second set is defined by a red colour parameter value, a green colour parameter value and a blue colour parameter value.
7. A system for converting a first set of colours associated with an image to a second set of colours for displaying said image on an output device (125), each colour of the first and second set being defined by a plurality of colour parameter values, comprising: means for calculating for each colour of the first set a distance from each colour of the second set, said distance being a function of the differences between each colour parameter value of the colour of the first set and the corresponding colour parameter value of the colour of the second set; and means for determining for each colour of the first set a corresponding colour of the second set associated therewith, said corresponding colour minimizing said distance; characterized in that said function includes a weighting value for each of said differences, said weighting value being dependent on the colour parameter values of the colour of the first set.
8. The system according to Claim 7 wherein said function is calculated by: calculating the squared value of each of said differences; calculating the product of each of said squared values with their respective weighting value; and summing said products.
9. The system according to Claim 7 or 8, wherein the weighting function includes an offset value.
10. The system according to any Claim from 7 to 9, further comprising: means for providing an indirection table, said indirection table in response to an indication of a colour of the first set producing an indication of the corresponding colour of the second set associated therewith.
11. The system according to Claim 10, wherein said indication of a colour of the first set is a first index value addressing said colour of the first set in a first lookup table and/or said indication of the corresponding colour of the second set is a second index value addressing said corresponding colour of the second set in a second lookup table.
12. The system according to any Claim from 7 to 11, wherein each colour of the first and second set is defined by a red colour parameter value, a green colour parameter value and a blue colour parameter value.
GB9404943A 1994-03-15 1994-03-15 Digital RGB colour conversion system Withdrawn GB2287600A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9404943A GB2287600A (en) 1994-03-15 1994-03-15 Digital RGB colour conversion system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9404943A GB2287600A (en) 1994-03-15 1994-03-15 Digital RGB colour conversion system

Publications (2)

Publication Number Publication Date
GB9404943D0 GB9404943D0 (en) 1994-04-27
GB2287600A true GB2287600A (en) 1995-09-20

Family

ID=10751812

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9404943A Withdrawn GB2287600A (en) 1994-03-15 1994-03-15 Digital RGB colour conversion system

Country Status (1)

Country Link
GB (1) GB2287600A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU695071B2 (en) * 1995-02-14 1998-08-06 Canon Information Systems Research Australia Pty Ltd Colour conversion method
EP1125269A1 (en) * 1998-10-07 2001-08-22 Microsoft Corporation Methods and apparatus for detecting and reducing color artifacts in images
EP1887785A1 (en) * 2006-08-04 2008-02-13 Nederlandse Organisatie voor Toegepast-Natuuurwetenschappelijk Onderzoek TNO Method and system for converting at least one first-spectrum image into a second-spectrum image
EP2251854A1 (en) * 2001-07-31 2010-11-17 LG Electronics Inc. Circuit and method for driving self light-emitting display device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU695071B2 (en) * 1995-02-14 1998-08-06 Canon Information Systems Research Australia Pty Ltd Colour conversion method
EP1125269A1 (en) * 1998-10-07 2001-08-22 Microsoft Corporation Methods and apparatus for detecting and reducing color artifacts in images
EP1125269A4 (en) * 1998-10-07 2002-07-31 Microsoft Corp Methods and apparatus for detecting and reducing color artifacts in images
EP2251854A1 (en) * 2001-07-31 2010-11-17 LG Electronics Inc. Circuit and method for driving self light-emitting display device
EP1887785A1 (en) * 2006-08-04 2008-02-13 Nederlandse Organisatie voor Toegepast-Natuuurwetenschappelijk Onderzoek TNO Method and system for converting at least one first-spectrum image into a second-spectrum image
WO2008016305A3 (en) * 2006-08-04 2008-05-29 Tno Method and system for converting at least one first-spectrum image into a second-spectrum image
JP2009545804A (en) * 2006-08-04 2009-12-24 ネーデルランツ オルガニサティー フォール トゥーゲパストナトゥールヴェテンシャッペリーク オンデルズーク テーエンオー Method and system for converting at least one first spectral image into a second spectral image

Also Published As

Publication number Publication date
GB9404943D0 (en) 1994-04-27

Similar Documents

Publication Publication Date Title
US5319742A (en) Image enhancement with mask having fuzzy edges
EP0321290B1 (en) Color cell texture
US5561751A (en) System and method for displaying a color image using vector error diffusion
US5204665A (en) Color editing with simple encoded images
US5138303A (en) Method and apparatus for displaying color on a computer output device using dithering techniques
US5418895A (en) Method for displaying a high quality digital color image on a limited color display
JP4363720B2 (en) A device for creating color palettes
EP0359080B1 (en) A display using ordered dither
US5796385A (en) Luminance controlled color resolution reduction
US20080198180A1 (en) Method and Apparatus of Converting Signals for Driving Display and a Display Using the Same
US5424754A (en) Animated windows with multi-choice variants and analog controls
CA2064074C (en) Method and system for displaying color on a computer output device using dithering techniques
US6304300B1 (en) Floating point gamma correction method and system
Devlin et al. Visual calibration and correction for ambient illumination
US6911977B2 (en) Method and device for restoring a light signal
US7071947B1 (en) Automatic adjustment of floating point output images
Stone et al. A survey of color for computer graphics
GB2287600A (en) Digital RGB colour conversion system
CN102197411A (en) Target display for gamma calibration
JPH0325493A (en) Color display
US5854633A (en) Method of and system for dynamically adjusting color rendering
JP2591189B2 (en) Color image processing method and apparatus
Lehn et al. Greyscale and Colour Representation
Devlin et al. Displaying digitally archived images
JP2898569B2 (en) Video accelerator board for computer game development

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)