EP1096383A1 - Convertisseur de couleurs reconfigurable - Google Patents

Convertisseur de couleurs reconfigurable Download PDF

Info

Publication number
EP1096383A1
EP1096383A1 EP00410126A EP00410126A EP1096383A1 EP 1096383 A1 EP1096383 A1 EP 1096383A1 EP 00410126 A EP00410126 A EP 00410126A EP 00410126 A EP00410126 A EP 00410126A EP 1096383 A1 EP1096383 A1 EP 1096383A1
Authority
EP
European Patent Office
Prior art keywords
address
code
codes
output
bus
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
EP00410126A
Other languages
German (de)
English (en)
Inventor
Marc Laury
Franck Seignert
Emmanuel Chiaruzzi
Philippe Monnier
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
SGS Thomson Microelectronics SA
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 STMicroelectronics SA, SGS Thomson Microelectronics SA filed Critical STMicroelectronics SA
Publication of EP1096383A1 publication Critical patent/EP1096383A1/fr
Withdrawn legal-status Critical Current

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
    • 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
    • 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/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0271Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping
    • G09G2320/0276Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping for the purpose of adaptation to the characteristics of a display device, i.e. gamma correction

Definitions

  • the present invention relates to circuits for digital image processing, and in particular a circuit to modify the coding of colors associated with pixels of a digital image.
  • a digital image is conventionally composed of rows and columns of pixels. Each pixel of the image is associated in particular with a color.
  • a common type of color coding is the so-called RGB coding, in which the colors are represented by three components: red (R), green (V) and blue (B), each of which is conventionally coded on the same number of bits.
  • RGB coding in which the colors are represented by three components: red (R), green (V) and blue (B), each of which is conventionally coded on the same number of bits.
  • the number of bits used for the R, G and B co-applicants determines the number of colors possible for each pixel.
  • components R, G and B coded on 8 bits each make it possible to describe 2 3 ⁇ 8, that is to say more than 16 million different colors.
  • all the pixels of the same image are conventionally coded with the same number of bits. We sometimes add to the three components R, G and B, an A component corresponding to transparency information.
  • a known solution for reducing the number of bits encoding an image consists in creating a reference table, or palette of colors (Color Look Up Table, or CLUT) containing a limited number of colors coded as the original colors of the pixels of the image. 'picture.
  • the RGB coding of the original color of each pixel is then replaced by a CLUT code corresponding to an address of a color of the palette, which is closest to the original color of the pixel.
  • the coding of its addresses may include a reduced number of bits compared to that used in the RGB coding of the original colors.
  • the CLUT code of a color can have a reduced number of bits compared to the number of bits of an RGB code.
  • a palette of 256 colors each of which is coded in 24-bit RGB
  • Such a substitution makes it possible to significantly reduce (approximately by three in this example) the amount of information represented by an image.
  • a digital image processing device we find complete color coding (RGB type) and reduced (CLUT type) described above. For example, a image can be created with full color coding and then it can be transformed so as to have a coding of reduced color, which allows rapid transmission by modem or touch it up with software. Finally, such image can be transformed again to have a coding of full color, which allows for example to display it on a computer screen.
  • Some image processing devices are intended to receive multiple images and to assemble into a single image. As an example, we consider thereafter an image composition circuit, better known as its Anglo-Saxon designation "blitter", conventionally used to create an image from several provenances images various.
  • FIG. 1 shows schematically in the form of blocks an example of an image processing device 2, for example a graphics card from a computer.
  • Device 2 includes a memory 4 in which are stored several digital images may have color coding different, complete or reduced.
  • Memory (MEM) 4 is connected to a bus 6 so as to receive write and reading and providing or receiving data.
  • a central unit processor (CPU) 8 is connected to bus 6 so that receive or provide data or orders.
  • Device 2 also includes an image composition circuit 9 provided a calculation circuit (BLITTER CORE) 10 and two memories memory buffers (BUF1) 12 and (BUF2) 14.
  • the circuit 10 includes first and second image inputs connected respectively through the intermediate memories 12 and 14 so as to receive data from bus 6.
  • the circuit 10 includes a data output which constitutes the output of the image composition circuit 9. This output is connected to through an intermediate memory or memory buffer (BUF3) 16 to a display device (DISP) 18.
  • the intermediate memory 16 is also connected to bus 6 so as to receive commands or data from the central processing unit and to
  • the calculation circuit 10 of the image composition 9 is provided for processing images having a given color coding, for example CLUT coding. Images having a different color coding, in this example a coding RGB or similar, must be converted to have this coding CLUT before it can be supplied to the calculation circuit 10. So, images having a color coding not directly usable by the calculation circuit are read in memory 4 by the central unit or processor 8 which converts their coding then control their writing in one of the intermediate memories 12 or 14 of the image composition circuit 9. When both intermediate memories 12 and 14 contain images having a color coding usable by the calculation circuit 10, the circuit 10 reads their respective contents and produces an image that it provides to the intermediate memory 16.
  • a given color coding for example CLUT coding.
  • images having a different color coding in this example a coding RGB or similar, must be converted to have this coding CLUT before it can be supplied to the calculation circuit 10. So, images having a color coding not directly usable by the calculation circuit are read in memory 4 by the central unit or processor 8 which converts their
  • the images produced by circuit 10 may not be in a code directly usable by the display device 18.
  • the image contained in the intermediate memory 16 should be read and its color coding should be converted by processor 8 before it can be delivered to display device 18 via memory intermediate 16.
  • the central processing unit treatment should be used frequently to convert images in the format accepted by the circuit of calculation of the circuit of image composition.
  • Such use of the central unit does not not allow it to be used for other tasks, which is detrimental to performance of the system in which circuit 10 is integrated, for example a microcomputer.
  • the present invention aims to overcome the drawbacks known image composition circuits.
  • the present invention aims, in particular, to propose an image processing circuit making it possible to save working time of the central processing unit of the system in which it is integrated.
  • the present invention also aims to provide such a image processing circuit which comprises a circuit having a color coding conversion function and a function of composition of images.
  • the present invention further aims to provide a particularly economical solution.
  • the present invention provides a digital image processing circuit specific to replace an entry code associated with a pixel of the image by a exit code chosen in a first storage means containing a set of codes, which includes an input bus suitable for receiving the entry code, an output bus suitable for issue the exit code, said first storage means, a means for calculating the address of the first storage means, a address selection means of the first storage means between the entry code and an address code generated by the means address calculation, a second storage means specific to contain an address code generated by the computing means address, and means for selecting the exit code between a code read at the current address of the first storage means and said code contained in the second storage means.
  • the address calculation means comprises an address generator suitable for supplying predetermined address codes by means of addressing, and a data comparison circuit provided for compare the first code and the codes stored at the addresses predetermined in the first storage means, determining that of the compared codes which is closest to the first code, and command, at the second storage means, to store the code the address where the closest compared code is stored in the first storage means.
  • the input and output buses each include a first, a second, third and fourth sub-buses having the same number of bits
  • the address selection means comprises a first, second, third and fourth multiplexers whose first inputs are respectively connected to first, second, third and fourth input sub-bus, the output of the first multiplexer being connected to the second inputs second, third and fourth multiplexers
  • the first storage means comprises a first, a second, a third and fourth identical memory circuits whose addressing inputs are respectively connected to the outputs first, second, third and fourth multiplexers
  • the exit code selection means includes a fifth multiplexer whose first input is connected to the output of data from the first memory circuit and whose output is connected to the first output sub-bus, the second, third and fourth output sub-bus being connected respectively at the data outputs of the second, third and fourth memory circuits.
  • the address generator is made up of a counter suitable for supplying a predetermined series of address codes on the second entry of the first multiplexer
  • the data comparison circuit includes: a computer connected to receive respectively the codes supplied to the first three input sub-buses and the codes provided by the first three memory circuits, and designed to supply a digital signal equal to the difference between these codes, and a memory comparator connected to store the smallest digital difference signal calculated for the predetermined series of address codes and for ordering at second memorization means of storing the address code at which codes corresponding to the smallest difference are stored in the first storage means.
  • the present invention also relates to a method of image processing by means of an image processing circuit digital according to one of the preceding embodiments, which consists of receiving images whose color codes each correspond to an address from a reference table of colors, and replace each address with the color code designated by this address in the reference table.
  • the method consists in receiving images whose colors are coded in a predetermined way, and to replace the code of each color of the image by an address of a table color reference.
  • the method includes the steps of storing, in the first, second, third and fourth circuits of memory, red, green and blue and transparency, to provide a code respectively of red, green and blue color and transparency at first, second, third and fourth input sub-bus, and at controlling the multiplexers of the address selection means and the output selection means for providing first, second, third and fourth memory circuits the codes received on the first, second, third and fourth input sub-bus, and to provide the four output sub-buses with the codes provided by the four memory circuits.
  • the method includes the steps of storing, in the first, second, third and fourth circuits of memory, red, green and blue, and transparent, to provide an address code to the first input sub-bus, and to control the multiplexers by means of address selection and the output selection means for provide the first, second, third and fourth circuits of memory, the code received on the first input sub-bus, and to supply the respective output sub-buses with the respective codes supplied by the four memory circuits.
  • the method includes the steps of storing in the first, second, third and fourth circuits of memory of the red, green and color codes respectively blue, and transparent, to provide an address code to the first input sub-bus, to provide a transparency code to the fourth input sub-bus, and to control the multiplexers by means of address selection and the output selection means for providing the first, second and third memory circuits with the code received on the first input sub-bus, to provide the fourth memory circuit the code received on the fourth sub-bus input, and to provide the four output sub-buses with the respective codes provided by the four memory circuits.
  • the method includes the steps of storing in the first, second, third and fourth circuits of memory of the red, green and color codes respectively blue, and transparent, to provide to the first, second and third input sub-bus respectively color codes red, green and blue, to activate the counter, and to control the multiplexers of the address selection means and the means of output selection to provide, to the first three circuits of stores the address codes supplied by the meter, and for provide the first output sub-bus with the address code supplied by the second storage means.
  • FIG. 2 shows a processing device images such as that of FIG. 1, comprising a circuit for image composition (BLITTER) according to the present invention.
  • the processing device includes, as before, a central processing unit (CPU) 8, memory (MEM) 4, bus 6, display device (DISP) 18 and an intermediate memory (BUF3) 16.
  • Circuit 20 also includes a calculation circuit (BLITTER CORE) 10 classic whose two inputs are connected to the outputs of two intermediate memories (BUF1) 12 and (BUF2) 14.
  • the image composition circuit 20 includes a color converter (CONV) 22 connected from so that you can convert the color coding of the images supplied to intermediate memories 12 and 14, and those of the images provided by circuit 10.
  • CONV color converter
  • the input (IN) of the converter 22 is connected to an input multiplexer (MUX1) 26 so to be able to receive data from bus 6 or from the output of the calculation circuit 10, and the output (OUT) of the converter 22 is connected to a demultiplexer (DEMUX) 28 of so that we can provide data to either intermediate memories 12 and 14, or at a first entry of a output multiplexer (MUX2) 30.
  • a second input from the multiplexer 30 is connected to the output of the calculation circuit 10, and its output is connected to memory input intermediate 16.
  • circuit 10 could, in another embodiment, be connected to bus 6 of so you can write directly to memory 4.
  • the switching elements such as the multiplexers 26 and 30 and the demultiplexer 28, converter 22 and the circuit calculation 10 are all connected so as to be controlled by central processing unit 8. Control connections necessary, as well as their management, are conventional and they do not will not be detailed further.
  • the converter 22 has the function of modifying the coding of colors of the images supplied to the computing circuit 10 or by the computation circuit 10.
  • the color codings of the images intended for the first and second inputs of circuit 10 can be modified by converter 22 before these images are stored in intermediate memories 12 and 14. From even, the color coding of an image produced by the circuit of calculation can be modified so that this image is directly usable by the display circuit 18. In the this example, this image is stored in memory intermediate 16.
  • switching elements 26, 28 and 30 allow to realize an economic circuit which uses only one single converter 22 to convert the format of written images in intermediate memories 12, 14 and 16.
  • three conversion circuits could be used separate, which is less economical but allows to obtain higher working speed.
  • FIG. 3 represents an embodiment of the color converter 22 of FIG. 2.
  • This circuit includes an input bus (IN) 32 capable of receiving an input code which is the color coding of a pixel of an input image, and an output bus (OUT) 34 capable of delivering an output code which is the color coding of the same pixel in an output image.
  • the circuit 22 also includes a first storage means or memory (MEM1) 36 storing a predetermined number of codes output, which constitutes a color reference table, by example a color palette, a second way to memorization or memory (MEM2) 38 whose role will be explained by thereafter, an address calculator (ADC) 40, connected for receive the entry code as well as the codes provided by the memory 36.
  • MEM1 first storage means or memory
  • ADC address calculator
  • the address computer 40 is also connected to provide an address code and a write command to the memory 38.
  • the conversion circuit 22 also includes a address selector (ADR) 42 connected to supply, to the memory 36, an address code received either from input bus 32 or from address calculator 40.
  • the circuit 22 further comprises a exit code selector (SEL) 44 designed to supply the bus 34, an exit code corresponding to either the codes supplied by memory 36 or the codes supplied by memory 38. It should be noted that, for reasons of clarity, we have omitted represent a third input of selector 44, connected directly to bus 32 and allowing to cross circuit 22 when the color coding of the input image should not to be changed.
  • the address calculator 40 includes an address generator (GEN) 46 provided for generating and supplying an address to the selector 42 and to memory 38.
  • the computer 40 also includes a circuit for code comparison (COMP) 47 provided to compare codes received on bus 32 with the codes provided by memory 36, and to provide memory 38 with a write command when the difference between compared codes satisfies conditions predetermined.
  • GEN address generator
  • COMP circuit for code comparison
  • the memory 36 is connected by so that its content can be modified by the central processing unit 8.
  • a feature of the invention is that the circuit 22 conversion is intended to operate in several modes.
  • the selectors 42 and 44, as well as the address calculator 40 are connected so that they can be controlled by the unit control unit 8 according to the operating modes of circuit 22.
  • the connections between the central unit and the elements of the conversion circuit 22 are within the reach of those skilled in the art and will not be described further.
  • circuit 22 of the invention provides complete codes such as RGB codes or reduced codes such as CLUT codes.
  • FIG. 3 shows in more detail a mode of circuit 22 in FIG. 3.
  • This circuit is provided to receive or provide coded color data, for example example, on 32 bits in a format called RGBA, comprising three R, G and B components each coded on 8 bits and one component A transparency coded on 8 bits.
  • this circuit can also receive or provide color data encoded in RGB on 24 bits, comprising three coded R, G and B components on 8 bits each. In such a case, the previous component A will simply be ignored.
  • the circuit 22 can also receive or provide color data in the form of a CLUT code of 8 bits corresponding to an address of a palette of 256 colors.
  • the bus Input 32 includes four 8-bit sub-buses 321 to 324.
  • the selector 42 includes four multiplexers 421 to 424 receiving respectively, on a first input, the sub-buses 321 to 324.
  • the memory 36 includes four memory circuits 361 to 364 having each 256 8-bit memory locations, marked with a address between 0 and 255.
  • the addressing entries of memory circuits 361 to 364, on 8 bits, are respectively connected to the outputs of multiplexers 421 to 424.
  • the output bus 34 comprises four 8-bit sub-buses 341 to 344.
  • the selector 44 comprises a multiplexer 441 of which a first input is connected at the output of memory circuit 361, and the output of which is connected to sub-bus 341.
  • Sub-buses 342 to 344 are connected respectively at the outputs of memory circuits 362 to 364.
  • the output of multiplexer 421 is connected to the second inputs of multiplexers 422 to 424.
  • the address generator 46 is a counter capable of providing a predetermined series of codes 8-bit address at the second input of multiplexer 421 as well at the entry of memory 38.
  • Memory 38 has only one 8-bit memory location. The output of memory 38 is connected to the second input of multiplexer 441.
  • the comparison circuit 47 includes a computer (CAL) 471, including a first, a second and a third inputs, are respectively connected to the sub-buses 321, 322 and 323 and including a fourth, fifth and sixth entry are respectively connected to the outputs of the three circuits memory 361, 362 and 363.
  • the computer 471 is provided for provide a digital signal called "difference" equal to the sum absolute values of the differences, respectively codes received on the first and fourth entry, the second and the fifth entry, and third and sixth entry.
  • the comparison circuit 47 further comprises a comparator with memory (C / M) 472 connected to store the difference signal the weakest difference signal calculated by the computer 471 for the predetermined series of address codes.
  • Comparator 472 is further connected so that, when store this difference signal, command memory 38 to store the address code provided by the counter 46.
  • a first control terminal 500 is connected to the selection terminals of multiplexer 422 and 423 inputs.
  • a second terminal command 501 is connected to the input selection terminal of the multiplexer 424.
  • a third control terminal 502 is connected to the input selection terminals of multiplexers 421 and 441, as well as to a control terminal of the counter 46.
  • These three control terminals are conventionally connected, by example to a control register of the central unit.
  • the memory circuits 361 to 364 are also connected so that the central unit can change their content.
  • Figures 4A to 4D show with the same references the elements of the circuit of figure 4 in different operating modes taken as an example. To facilitate the reading these figures, the unused elements in each of modes are hatched.
  • Figure 4A shows the circuit of Figure 4 in a first mode of operation, called transposition of colors, where the color codes are changed but not the nature of coding.
  • Sub-buses 321 to 323 respectively receive components R, G and B coded on 8 bits of a pixel and the sub-bus 324 receives an A component of transparency coded on 8 bits of this same pixel.
  • Multiplexers 421 to 424 are controlled so as to supply the memory circuits 361 to 364 with the codes received on sub-buses 321 to 324.
  • the components R, G, B and A are thus used directly as addresses by each of the circuits 361 to 364.
  • the output selector 44 is controlled from so that the code supplied by circuit 361 is supplied to the sub-bus 341.
  • the codes supplied to each of the sub-buses 341 to 344 are the codes supplied by the respective circuits 361 to 364.
  • Memory circuits 361 to 364 are respectively loaded with 256 R, G, B and A components coded on 8 bits each, which constitute a palette of colors and transparency.
  • gamma
  • ⁇ correction consists of replacing a color which we know will be changed on display by a close color which, modified on display by the tube, will match the original color.
  • the correction ⁇ is carried out by the display device, usually analogically.
  • a drawback is that the entire image to be displayed undergoes the correction, even if this image is composed of several sub-images some of which do not require correction. Indeed, according to their origin, certain images received by the circuit of image composition may already have undergone a ⁇ correction, by example, depending on the website from where they are downloaded.
  • the image composition circuit of this invention makes it possible to harmonize the level of correction ⁇ of images produced. It is indeed possible to store, in the memory 36, a color table with a correction ⁇ or possibly an inverse ⁇ correction table, depending on whether wants to produce at the output of the image composition circuit a image with or without ⁇ correction, from of images already having a ⁇ correction or not. Note that the operating mode selection can be changed by course of composing an image to display so it's possible to affect ⁇ correction only of parts of the image composite.
  • Figure 4B shows the circuit of Figure 4 in a second operating mode for converting an image into reduced code to an image in full code.
  • Multiplexers 422 to 424 are ordered to supply the codes received on their second inputs, and multiplexer 421 is controlled to output the codes received on its first entry. So, in this mode, the memory circuits 361 to 364 receive, as address, the 8 bits of code received on sub-bus 321. Also, the multiplexer 441 is controlled so that the sub-bus 341 is connected to the output of memory circuit 361, from which it results that the output sub-buses 341 to 344 respectively receive the outputs of memory circuits 361 to 364.
  • the circuits of memory 361 to 364 are respectively loaded with 256 R, G, B and A components coded on 8 bits each, which constitute a palette of colors and transparency.
  • an 8-bit CLUT code is supplied to the sub-bus 321, and the circuit associates it with an RGBA color code coded on 32 bits.
  • This operating mode corresponds, for example, to a classic CLUT / RGBA conversion.
  • the colors of the color palette can be modified to integrate ⁇ correction functions such as previously described.
  • Figure 4C shows the circuit of Figure 4 in a variant of the second operating mode of FIG. 4B.
  • multiplexer 424 is controlled from so as to supply the memory circuit 364 with the codes received on sub-bus 324.
  • CLUT code 8 bits received on sub-bus 321 a RGB color code coded on 24 bits
  • transparency information A received on the sub-bus 324 transparency information coded on eight bits supplied on sub-bus 344.
  • This variant allows, for example, use a transparency palette with a number reduced of values which will receive a component A having a number of reduced bit, for example 4 bits, and which will provide a component of transparency coded on 8 bits at sub-bus 344.
  • Figure 4D shows the circuit of Figure 4A in a fourth operating mode for converting an image into full code to a reduced code image.
  • the multiplexers 421 to 424 are controlled so as to provide the memory circuits 361 to 364 the codes received on their seconds respective entries.
  • the counter 46 is ordered to successively generate 256 codes corresponding to addresses 0 to 255. These address codes are supplied to the circuits 361 to 364 via multiplexers 421 to 424, as well as to the memory 38.
  • each circuit 361 to 364 successively provides the codes contained in its 256 memory locations.
  • the computer 471 calculates the differences between the codes received on the input sub-buses and the codes supplied by circuits 361 to 364 in response to 256 address codes produced by counter 46.
  • the comparator 472 stores the difference calculated for the first address code (0) supplied by counter 46. Then, whenever the difference between the codes received on the input bus and the codes supplied by the memory 36 is less than this first stored difference, comparator 472 supplies a write signal to memory 38.
  • the memory 38 also receives the 256 address codes supplied to memory 36. This stores the code of the address at which is stored, in circuits 361 to 364, the color whose code is the closest to the color code received on bus 32. In this operating mode, the multiplexer 441 is controlled from so as to supply the address supplied to the output sub-bus 341 by memory 38.
  • This operating mode allows, for example, to associate with a color coded in RGB on 24 bits, a CLUT code of 8 bits associated with a color palette stored in the memory 36.
  • the data stored in the circuits 361 to 364 are always 8-bit codes, red, green and blue respectively and transparency, these data may vary depending on the modes of operation.
  • the present invention provides that the content of memory 36 can be changed between each mode of operation.
  • the conversion circuit of Figure 4 can be used in other operating modes than those described in connection with FIGS. 4A to 4D for converting images having different color codes from those described, for example RGB codings using less than 24 bits.

Landscapes

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

Abstract

L'invention concerne un circuit de traitement d'image pour remplacer un code d'entrée associé à un pixel de l'image par un code de sortie choisi dans une première mémoire (36) contenant un ensemble de codes, comportant un bus d'entrée (IN) pour recevoir le code d'entrée, un bus de sortie (OUT) pour délivrer le code de sortie, ladite première mémoire, un moyen (40) de calcul d'adresse de la première mémoire, un moyen (42) de sélection d'adresse de la première mémoire entre le code d'entrée et un code d'adresse généré par le moyen de calcul d'adresse, une deuxième mémoire (38) pour contenir un code d'adresse généré par le moyen de calcul d'adresse, et un moyen (44) de sélection du code de sortie entre un code lu dans la première mémoire et ledit code contenu dans la deuxième mémoire. <IMAGE>

Description

La présente invention concerne les circuits de traitement d'images numériques, et en particulier un circuit permettant de modifier le codage des couleurs associées aux pixels d'une image numérique.
Une image numérique est classiquement composée de rangées et de colonnes de pixels. Chaque pixel de l'image est associé notamment à une couleur. Un type de codage de couleur répandu est le codage dit RGB, dans lequel les couleurs sont représentées par trois composantes : rouge (R), verte (V) et bleue (B), dont chacune est classiquement codée sur un même nombre de bits. Dans un tel codage, le nombre de bits utilisés pour les coeposantes R, G et B détermine le nombre de couleurs possible pour chaque pixel. Par exemple, des composantes R, G et B codées sur 8 bits chacune permettent de décrire 23×8 c'est-à-dire plus de 16 millions de couleurs différentes. On notera que tous les pixels d'une même image sont classiquement codés avec un même nombre de bits. On ajoute parfois aux trois composantes R, G et B, une composante A correspondant à une information de transparence.
Dans certaines applications, on peut souhaiter réduire le nombre de bits utilisé pour coder les couleurs des pixels d'une image numérique. En effet, plus les couleurs des pixels d'une image sont codées sur un grand nombre de bits, plus cette image représente une grande quantité d'informations. Réduire le nombre de bits du codage des couleurs permet de réduire la quantité d'informations que représente une image, ce qui permet de stocker l'image dans un espace mémoire réduit, de la traiter plus rapidement ou bien de la transmettre, par exemple avec un modem, en un temps réduit.
Une solution connue pour réduire le nombre de bits codant une image consiste à créer une table de référence, ou palette de couleurs (Color Look Up Table, ou CLUT) contenant un nombre restreint de couleurs codées comme les couleurs d'origine des pixels de l'image. Le codage RGB de la couleur d'origine de chaque pixel est alors remplacé par un code CLUT correspondant à une adresse d'une couleur de la palette, qui est la plus proche de la couleur d'origine du pixel. Le nombre de couleurs de la palette étant restreint, le codage de ses adresses peut comporter un nombre de bits réduit par rapport à celui utilisé dans le codage RGB des couleurs d'origine. Ainsi, le code CLUT d'une couleur peut avoir un nombre de bits réduit par rapport au nombre de bits d'un code RGB. Par exemple, une adresse codée sur huit bits permet d'adresser complètement une palette de 28 = 256 couleurs. Si l'on reprend l'exemple précédent, et que l'on dispose d'une palette de 256 couleurs dont chacune est codée en RGB sur 24 bits, on peut remplacer le code RGB de 24 bits de la couleur d'origine de chaque pixel par une adresse de palette de 8 bits. Une telle substitution permet de réduire sensiblement (environ par trois dans cet exemple) la quantité d'informations représentée par une image.
Dans un dispositif de traitement d'images numériques, on retrouve des codages de couleur complets (de type RGB) et réduits (de type CLUT) décrits précédemment. Par exemple, une image peut être créée avec un codage de couleur complet, puis elle peut être transformée de manière à avoir un codage de couleur réduit, ce qui permet de rapidement la transmettre par modem ou la retoucher au moyen d'un logiciel. Enfin, une telle image peut être retransformée pour avoir à nouveau un codage de couleur complet, qui permette par exemple de l'afficher sur un écran d'ordinateur. Certains dispositifs de traitement d'images numériques sont destinés à recevoir plusieurs images et à les assembler en une image unique. A titre d'exemple, on considère par la suite un circuit de composition d'image, plus connu sous son appellation anglo-saxonne "blitter", classiquement utilisé pour créer une image à partir de plusieurs images de provenances diverses.
La figure 1 représente schématiquement sous forme de blocs un exemple d'un dispositif de traitement d'images 2, par exemple une carte graphique d'un ordinateur. Le dispositif 2 comprend une mémoire 4 dans laquelle sont stockées plusieurs images numériques pouvant avoir des codages de couleurs différents, complets ou réduits. La mémoire (MEM) 4 est connectée à un bus 6 de manière à recevoir des commandes d'écriture et de lecture et à fournir ou recevoir des données. Une unité centrale de traitement (CPU) 8 est connectée au bus 6 de manière à recevoir ou fournir des données ou des commandes. Le dispositif 2 comporte également un circuit de composition d'images 9 pourvu d'un circuit de calcul (BLITTER CORE) 10 et de deux mémoires intermédiaires ou tampons de mémoire (BUF1) 12 et (BUF2) 14. Le circuit 10 comprend une première et une seconde entrées d'image connectées respectivement à travers les mémoires intermédiaires 12 et 14 de manière à recevoir des données depuis le bus 6. Le circuit 10 comprend une sortie de données qui constitue la sortie du circuit de composition d'image 9. Cette sortie est reliée à travers une mémoire intermédiaire ou tampon de mémoire (BUF3) 16 à un dispositif d'affichage (DISP) 18. La mémoire intermédiaire 16 est également reliée au bus 6 de manière à recevoir des commandes ou des données depuis l'unité centrale de traitement et à lui fournir des données.
Classiquement, le circuit de calcul 10 du circuit de composition d'image 9 est prévu pour traiter des images ayant un codage de couleur donné, par exemple un codage CLUT. Des images ayant un codage de couleur différent, dans cet exemple un codage RGB ou semblable, doivent être converties pour avoir ce codage CLUT avant de pouvoir être fournies au circuit de calcul 10. Ainsi, des images ayant un codage de couleur non directement utilisable par le circuit de calcul sont lues dans la mémoire 4 par l'unité centrale ou processeur 8 qui convertit leur codage puis commande leur écriture dans une des mémoires intermédiaires 12 ou 14 du circuit de composition d'image 9. Lorsque les deux mémoires intermédiaires 12 et 14 contiennent des images ayant un codage de couleur utilisable par le circuit de calcul 10, le circuit 10 lit leurs contenus respectifs et produit une image qu'il fournit à la mémoire intermédiaire 16. On notera que les images produites par le circuit 10 peuvent ne pas être dans un code directement utilisable par le dispositif d'affichage 18. Dans un tel cas, l'image contenue dans la mémoire intermédiaire 16 devra être lue et son codage de couleur devra être converti par le processeur 8 avant qu'elle puisse être fournie au dispositif d'affichage 18 par l'intermédiaire de la mémoire intermédiaire 16.
Dans un tel fonctionnement, l'unité centrale de traitement doit fréquent être utilisée pour convertir des images au format accepté par le circuit de calcul du circuit de composition d'image. Une telle utilisation de l'unité centrale ne permet pas de l'utiliser à d'autres tâches, ce qui nuit aux performances du système dans lequel est intégré le circuit 10, par exemple un micro-ordinateur.
La seule solution pour accroítre les performances du système consiste à utiliser une unité centrale de traitement plus rapide, mais une telle solution est coûteuse.
La présente invention vise à pallier les inconvénients des circuits connus de composition d'images.
La présente invention vise, en particulier, à proposer un circuit de traitement d'images permettant d'économiser du temps de travail de l'unité centrale de traitement du système dans lequel il est intégré.
La présente invention vise également à proposer un tel circuit de traitement d'images qui comporte un circuit ayant une fonction de conversion des codages de couleur et une fonction de composition d'images.
La présente invention vise en outre à proposer une solution particulièrement économique.
Pour atteindre ces objets, la présente invention prévoit un circuit de traitement d'image numérique propre à remplacer un code d'entrée associé à un pixel de l'image par un code de sortie choisi dans un premier moyen de mémorisation contenant un ensemble de codes, qui comporte un bus d'entrée propre à recevoir le code d'entrée, un bus de sortie propre à délivrer le code de sortie, ledit premier moyen de mémorisation, un moyen de calcul d'adresse du premier moyen de mémorisation, un moyen de sélection d'adresse du premier moyen de mémorisation entre le code d'entrée et un code d'adresse généré par le moyen de calcul d'adresse, un deuxième moyen de mémorisation propre à contenir un code d'adresse généré par le moyen de calcul d'adresse, et un moyen de sélection du code de sortie entre un code lu à l'adresse courante du premier moyen de mémorisation et ledit code contenu dans le deuxième moyen de mémorisation.
Selon un mode de réalisation de la présente invention, le moyen de calcul d'adresse comprend un générateur d'adresses propre à fournir des codes d'adresse prédéterminés au moyen d'adressage, et un circuit de comparaison de données prévu pour comparer le premier code et les codes stockés aux adresses prédéterminées dans le premier moyen de mémorisation, déterminer celui des codes comparés qui est le plus proche du premier code, et commander, au second moyen de mémorisation, de stocker le code de l'adresse à laquelle le code comparé le plus proche est stocké dans le premier moyen de mémorisation.
Selon un mode de réalisation de la présente invention, les bus d'entrée et de sortie comprennent chacun un premier, un deuxième, un troisième et un quatrième sous-bus ayant un même nombre de bits, le moyen de sélection d'adresse comprend un premier, un deuxième, un troisième et un quatrième multiplexeurs dont les premières entrées sont respectivement connectées aux premier, deuxième, troisième et quatrième sous-bus d'entrée, la sortie du premier multiplexeur étant reliée aux secondes entrées des deuxième, troisième et quatrième multiplexeurs, le premier moyen de mémorisation comprend un premier, un deuxième, un troisième et un quatrième circuits de mémoire identiques dont les entrées d'adressage sont respectivement connectées aux sorties des premier, deuxième, troisième et quatrième multiplexeurs, et le moyen de sélection du code de sortie comprend un cinquième multiplexeur dont la première entrée est connectée à la sortie de données du premier circuit de mémoire et dont la sortie est connectée au premier sous-bus de sortie, les deuxième, troisième et quatrième sous-bus de sortie étant connectés respectivement aux sorties de données des deuxième, troisième et quatrième circuits de mémoire.
Selon un mode de réalisation de la présente invention, le générateur d'adresses est formé d'un compteur propre à fournir une série prédéterminée de codes d'adresse à la seconde entrée du premier multiplexeur, et le circuit de comparaison de données comprend : un calculateur connecté pour recevoir respectivement les codes fournis aux trois premiers sous-bus d'entrée et les codes fournis par les trois premiers circuits de mémoire, et prévu pour fournir un signal numérique égal à la différence entre ces codes, et un comparateur à mémoire connecté pour conserver le signal numérique de différence le plus faible calculé pour la série prédéterminée de codes d'adresse et pour commander au second moyen de mémorisation de stocker le code de l'adresse à laquelle les codes correspondant à la différence la plus faible sont stockés dans le premier moyen de mémorisation.
La présente invention vise également un procédé de traitement d'image au moyen d'un circuit de traitement d'image numérique selon l'un des modes de réalisation précédents, qui consiste à recevoir des images dont les codes de couleurs correspondent chacun à une adresse d'une table de référence de couleurs, et à remplacer chaque adresse par le code de couleur désigné par cette adresse dans la table de référence.
Selon un mode de mise en oeuvre de la présente invention, le procédé consiste à recevoir des images dont les couleurs sont codées d'une manière prédéterminée, et à remplacer le code de chaque couleur de l'image par une adresse d'une table de référence de couleurs.
Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker, dans les premier, deuxième, troisième et quatrième circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue et de transparence, à fournir un code respectivement de couleur rouge, verte et bleue et de transparence aux premier, deuxième, troisième et quatrième sous-bus d'entrée, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir aux premier, deuxième, troisième et quatrième circuits de mémoire les codes reçus sur les premier, deuxième, troisième et quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie les codes respectifs fournis par les quatre circuits de mémoire.
Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker, dans les premier, deuxième, troisième et quatrième circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue, et de transparence, à fournir un code d'adresse au premier sous-bus d'entrée, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir, aux premier, deuxième, troisième et quatrième circuits de mémoire, le code reçu sur le premier sous-bus d'entrée, et pour fournir, aux quatre sous-bus de sortie, les codes respectifs fournis par les quatre circuits de mémoire.
Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker dans les premier, deuxième, troisième et quatrième circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence, à fournir un code d'adresse au premier sous-bus d'entrée, à fournir un code de transparence au quatrième sous-bus d'entrée, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir aux premier, deuxième et troisième circuits de mémoire le code reçu sur le premier sous-bus d'entrée, pour fournir au quatrième circuit de mémoire le code reçu sur le quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie les codes respectifs fournis par les quatre circuits mémoire.
Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker dans les premier, deuxième, troisième et quatrième circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence, à fournir aux premier, deuxième et troisième sous-bus d'entrée respectivement des codes de couleurs rouge, verte et bleue, à activer le compteur, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir, aux trois premiers circuits de mémoire les codes d'adresse fournis par le compteur, et pour fournir au premier sous-bus de sortie le code d'adresse fourni par le second moyen de mémorisation.
Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles :
  • la figure 1, décrite précédemment, représente schématiquement un dispositif classique de traitement d'images numériques ;
  • la figure 2 représente schématiquement un dispositif de traitement d'images numériques comportant un circuit de composition d'images selon un mode de réalisation de la présente invention ;
  • la figure 3 représente, de façon schématique sous forme de blocs, un mode de réalisation d'un convertisseur de couleurs du circuit de composition d'image selon la présente invention ;
  • les figures 4A à 4E représentent, sous forme de blocs et de façon plus détaillée qu'à la figure 3, un mode de réalisation d'un convertisseur de couleurs selon la présente invention ; et
  • les figures 4B, 4C, 4D et 4E représentent le convertisseur de la figure 4 respectivement dans quatre modes de fonctionnement.
  • Les mêmes éléments ont été désignés par les mêmes références aux différentes figures. Pour des raisons de clarté, seuls les éléments nécessaires à la compréhension de l'invention ont été représentés. En particulier, les détails constitutifs du circuit de calcul n'ont pas été spécifiés et ne font pas l'objet de la présente invention. De plus, le circuit de composition d'image de l'invention ne sera décrit que pour ses éléments qui diffèrent du circuit classique.
    La figure 2 représente un dispositif de traitement d'images tel que celui de la figure 1, comportant un circuit de composition d'image (BLITTER) 20 selon la présente invention. Dans l'exemple de la figure 2, le dispositif de traitement comprend, comme précédemment, une unité centrale de traitement (CPU) 8, une mémoire (MEM) 4, un bus 6, un dispositif d'affichage (DISP) 18 et une mémoire intermédiaire (BUF3) 16. Le circuit 20 comprend également un circuit de calcul (BLITTER CORE) 10 classique dont les deux entrées sont reliées aux sorties de deux mémoires intermédiaires (BUF1) 12 et (BUF2) 14.
    Selon l'invention, le circuit de composition d'image 20 comprend un convertisseur de couleurs (CONV) 22 connecté de manière à pouvoir convertir les codages de couleur des images fournies aux mémoires intermédiaires 12 et 14, et ceux des images fournies par le circuit 10. Ainsi, l'entrée (IN) du convertisseur 22 est connectée à un multiplexeur d'entrée (MUX1) 26 de manière à pouvoir recevoir des données depuis le bus 6 ou depuis la sortie du circuit de calcul 10, et la sortie (OUT) du convertisseur 22 est connectée à un démultiplexeur (DEMUX) 28 de manière à pouvoir fournir des données à l'une ou l'autre des mémoires intermédiaires 12 et 14, ou à une première entrée d'un multiplexeur de sortie (MUX2) 30. Une seconde entrée du multiplexeur 30 est connectée à la sortie du circuit de calcul 10, et sa sortie est connectée en entrée de la mémoire intermédiaire 16. On notera que la sortie du circuit 10 pourrait, dans un autre mode de réalisation, être connectée au bus 6 de manière à pouvoir écrire directement dans la mémoire 4. Les éléments d'aiguillage tels que les multiplexeurs 26 et 30 et le démultiplexeur 28, le convertisseur 22 ainsi que le circuit de calcul 10 sont tous connectés de manière à être commandés par l'unité centrale de traitement 8. Les connexions de commande nécessaires, ainsi que leur gestion, sont classiques et elles ne seront pas détaillées plus avant. Ainsi connecté, le convertisseur 22 a pour fonction de modifier le codage des couleurs des images fournies au circuit de calcul 10 ou par le circuit de calcul 10. Ainsi, les codages des couleurs des images destinées aux première et deuxième entrées du circuit 10 peuvent être modifiés par le convertisseur 22 avant que ces images ne soient stockées dans les mémoires intermédiaires 12 et 14. De même, le codage des couleurs d'une image produite par le circuit de calcul peut être modifié de manière que cette image soit directement utilisable par le circuit d'affichage 18. Dans le présent exemple, cette image est stockée dans la mémoire intermédiaire 16.
    On notera que les éléments d'aiguillage 26, 28 et 30 permettent de réaliser un circuit économique qui n'utilise qu'un seul convertisseur 22 pour convertir le format des images écrites dans les mémoires intermédiaires 12, 14 et 16. A titre de variante, on pourra utiliser trois circuits de conversion distincts, ce qui est moins économique mais qui permet d'obtenir une vitesse de travail plus élevée.
    La figure 3 représente un mode de réalisation du convertisseur de couleur 22 de la figure 2. Ce circuit comprend un bus d'entrée (IN) 32 propre à recevoir un code d'entrée qui est le codage de la couleur d'un pixel d'une image d'entrée, et un bus de sortie (OUT) 34 propre à délivrer un code de sortie qui est le codage de la couleur du même pixel d'une image de sortie. Le circuit 22 comprend également un premier moyen de mémorisation ou mémoire (MEM1) 36 stockant un nombre prédéterminé de codes de sortie, qui constitue une table de référence de couleurs, par exemple une palette de couleurs, un deuxième moyen de mémorisation ou mémoire (MEM2) 38 dont le rôle sera expliqué par la suite, un calculateur d'adresse (ADC) 40, connecté pour recevoir le code d'entrée ainsi que les codes fournis par la mémoire 36. Le calculateur d'adresse 40 est en outre connecté pour fournir un code d'adresse et une commande d'écriture à la mémoire 38. Le circuit de conversion 22 comprend également un sélecteur d'adresse (ADR) 42 connecté pour fournir, à la mémoire 36, un code d'adresse reçu soit du bus d'entrée 32, soit du calculateur d'adresse 40. Le circuit 22 comprend en outre un sélecteur du code de sortie (SEL) 44 prévu pour fournir, au bus de sortie 34, un code de sortie correspondant soit aux codes fournis par la mémoire 36 soit aux codes fournis par la mémoire 38. On notera que, pour des raisons de clarté, on a omis de représenter une troisième entrée du sélecteur 44, reliée directement au bus 32 et permettant de traverser le circuit 22 lorsque le codage des couleurs de l'image d'entrée ne doit pas être changé.
    Selon le mode de réalisation de la figure 3, le calculateur d'adresse 40 comprend un générateur d'adresse (GEN) 46 prévu pour générer et fournir une adresse au sélecteur 42 et à la mémoire 38. Le calculateur 40 comprend également un circuit de comparaison de codes (COMP) 47 prévu pour comparer les codes reçus sur le bus 32 avec les codes fournis par la mémoire 36, et pour fournir, à la mémoire 38, une commande d'écriture lorsque la différence entre les codes comparés satisfait à des conditions prédéterminées. On notera que la mémoire 36 est connectée de manière que son contenu soit modifiable par l'unité centrale 8.
    Une caractéristique de l'invention est que le circuit de conversion 22 est prévu pour fonctionner dans plusieurs modes. Les sélecteurs 42 et 44, ainsi que le calculateur d'adresse 40 sont connectés de manière à pouvoir être commandés par l'unité centrale 8 en fonction des modes de fonctionnement du circuit 22. Les connexions existant entre l'unité centrale et les éléments du circuit de conversion 22 sont à la portée de l'homme de l'art et ne seront pas décrites plus avant.
    Selon son mode de fonctionnement, le circuit 22 de l'invention fournit des codes complets tels que des codes RGB ou des codes réduits tels que des codes CLUT.
    La figure 4 représente de façon plus détaillée un mode de réalisation du circuit 22 de la figure 3. Ce circuit est prévu pour recevoir ou fournir des données de couleur codées, par exemple, sur 32 bits en un format appelé RGBA, comprenant trois composantes R, G et B codées chacune sur 8 bits et une composante A de transparence codée sur 8 bits. On notera que ce circuit peut également recevoir ou fournir des données de couleur codées en RGB sur 24 bits, comprenant trois composantes R, G et B codées sur 8 bits chacune. Dans un tel cas, la composante A précédente sera simplement ignorée. Le circuit 22 peut en outre recevoir ou fournir des données de couleurs sous la forme d'un code CLUT de 8 bits correspondant à une adresse d'une palette de 256 couleurs.
    Selon le mode de réalisation de la figure 4, le bus d'entrée 32 comprend quatre sous-bus de 8 bits 321 à 324. Le sélecteur 42 comprend quatre multiplexeurs 421 à 424 recevant respectivement, sur une première entrée, les sous-bus 321 à 324. La mémoire 36 comprend quatre circuits de mémoire 361 à 364 ayant chacun 256 emplacements mémoires de 8 bits, repérés par une adresse comprise entre 0 et 255. Les entrées d'adressage des circuits de mémoire 361 à 364, sur 8 bits, sont respectivement reliées aux sorties des multiplexeurs 421 à 424. Le bus de sortie 34 comprend quatre sous-bus de 8 bits 341 à 344. Le sélecteur 44 comprend un multiplexeur 441 dont une première entrée est reliée à la sortie du circuit de mémoire 361, et dont la sortie est reliée au sous-bus 341. Les sous-bus 342 à 344 sont reliés respectivement aux sorties des circuits de mémoire 362 à 364. La sortie du multiplexeur 421 est reliée aux secondes entrées des multiplexeurs 422 à 424. Le générateur d'adresse 46 est un compteur propre à fournir une série prédéterminée de codes d'adresse de 8 bits à la seconde entrée du multiplexeur 421 ainsi qu'à l'entrée de la mémoire 38. La mémoire 38 comporte un seul emplacement mémoire de 8 bits. La sortie de la mémoire 38 est reliée à la seconde entrée du multiplexeur 441.
    Le circuit de comparaison 47 comprend un calculateur (CAL) 471, dont une première, une deuxième et une troisième entrées, sont respectivement connectées aux sous-bus 321, 322 et 323 et dont une quatrième, une cinquième et une sixième entrées sont respectivement connectées aux sorties des trois circuits de mémoire 361, 362 et 363. Le calculateur 471 est prévu pour fournir un signal numérique dit "de différence" égal à la somme des valeurs absolues des différences, respectivement des codes reçus sur la première et la quatrième entrée, la deuxième et la cinquième entrée, et la troisième et la sixième entrée. Le circuit de comparaison 47 comprend en outre un comparateur à mémoire (C/M) 472 connecté pour stocker le signal de différence le plus faible des signaux de différence calculés par le calculateur 471 pour la série prédéterminée de codes d'adresse. Le comparateur 472 est en outre connecté de manière à, lorsqu'il stocke ce signal de différence, commander à la mémoire 38 de stocker le code de l'adresse fournie par le compteur 46. Une première borne de commande 500 est reliée aux bornes de sélection d'entrées des multiplexeurs 422 et 423. Une seconde borne de commande 501 est reliée à la borne de sélection d'entrées du multiplexeur 424. Enfin, une troisième borne de commande 502 est reliée aux bornes de sélection d'entrées des multiplexeurs 421 et 441, ainsi qu'à une borne de commande du compteur 46. Ces trois bornes de commande sont connectées de manière classique, par exemple à un registre de commande de l'unité centrale. Les circuits de mémoire 361 à 364 sont également connectés de manière que l'unité centrale puisse changer leur contenu.
    Les figures 4A à 4D représentent avec de mêmes références les éléments du circuit de la figure 4 dans différents modes de fonctionnement pris pour exemple. Pour faciliter la lecture de ces figures, les éléments inutilisés dans chacun des modes sont hachurés.
    La figure 4A représente le circuit de la figure 4 dans un premier mode de fonctionnement, dit de transposition de couleurs, où les codes de couleurs sont modifiés mais pas la nature du codage. Les sous-bus 321 à 323 reçoivent respectivement des composantes R, G et B codées sur 8 bits d'un pixel et le sous-bus 324 reçoit une composante A de transparence codée sur 8 bits de ce même pixel. Les multiplexeurs 421 à 424 sont commandés de manière à fournir aux circuits de mémoire 361 à 364 les codes reçus sur les sous-bus 321 à 324. Les composantes R, G, B et A sont ainsi utilisées directement comme adresses par chacun des circuits 361 à 364. Le sélecteur de sortie 44 est commandé de manière que le code fourni par le circuit 361 soit fourni au sous-bus 341. Ainsi, les codes fournis à chacun des sous-bus 341 à 344 sont les codes fournis par les circuits respectifs 361 à 364. Les circuits de mémoire 361 à 364 sont respectivement chargés avec 256 composantes R, G, B et A codées sur 8 bits chacune, qui constituent une palette de couleurs et de transparence.
    Un tel mode de fonctionnement permet de soumettre les images à une correction de couleurs dite γ (gamma) . Il est connu que certains tubes cathodiques, de par leur géométrie, modifient certaines couleurs lors de l'affichage des images. Cette modification varie en fonction des couleurs et de la géométrie des tubes. La correction γ consiste à remplacer une couleur d'origine dont on sait qu'elle sera modifiée à l'affichage par une couleur proche qui, modifiée à l'affichage par le tube, correspondra à la couleur d'origine.
    Classiquement, la correction γ est effectuée par le dispositif d'affichage, généralement de façon analogique. Un inconvénient est que toute l'image à afficher subit la correction, même si cette image est composée de plusieurs sous-images dont certaines n'ont pas besoin de correction. En effet, selon leur provenance, certaines images reçues par le circuit de composition d'image peuvent déjà avoir subi une correction γ, par exemple, selon le site Internet d'où elles sont téléchargées.
    Le circuit de composition d'image de la présente invention permet d'harmoniser le niveau de correction γ des images produites. Il est en effet possible de stocker, dans la mémoire 36, une table de couleurs comportant une correction γ ou éventuellement une table de correction γ inverse, selon qu'on veut produire en sortie du circuit de composition d'image une image comportant ou ne comportant pas de correction γ, à partir d'images comportant déjà une correction γ ou non. On notera que la sélection du mode de fonctionnement peut être modifiée en cours de composition d'une image à afficher de sorte qu'il est possible de n'affecter la correction γ que de parties de l'image composite.
    La figure 4B représente le circuit de la figure 4 dans un second mode de fonctionnement de conversion d'une image en code réduit vers une image en code complet. Les multiplexeurs 422 à 424 sont commandés pour fournir les codes reçus sur leurs secondes entrées, et le multiplexeur 421 est commandé pour fournir en sortie les codes reçus sur sa première entrée. Ainsi, dans ce mode, les circuits de mémoire 361 à 364 reçoivent, comme adresse, les 8 bits de code reçus sur le sous-bus 321. Egalement, le multiplexeur 441 est commandé de manière que le sous-bus 341 est relié à la sortie du circuit de mémoire 361, d'où il résulte que les sous-bus de sortie 341 à 344 reçoivent respectivement les sorties des circuits de mémoire 361 à 364. Les circuits de mémoire 361 à 364 sont respectivement chargés avec 256 composantes R, G, B et A codées sur 8 bits chacune, qui constituent une palette de couleurs et de transparence. Dans ce mode de fonctionnement, on fournit un code CLUT de 8 bits au sous-bus 321, et le circuit lui associe un code de couleur RGBA codé sur 32 bits. Ce mode de fonctionnement correspond, par exemple, à une conversion CLUT/RGBA classique. On notera que, selon l'invention, les couleurs de la palette de couleurs peuvent être modifiées pour intégrer des fonctions de correction γ telles que décrites précédemment.
    La figure 4C représente le circuit de la figure 4 dans une variante du deuxième mode de fonctionnement de la figure 4B. La seule différence est que le multiplexeur 424 est commandé de manière à fournir au circuit de mémoire 364 les codes reçus sur le sous-bus 324. De cette manière, on associe à un code CLUT de 8 bits reçu sur le sous-bus 321 un code de couleur RGB codé sur 24 bits, et à une information A de transparence reçue sur le sous-bus 324, une information de transparence codée sur huit bits fournie sur le sous-bus 344. Cette variante permet, par exemple, d'utiliser une palette de transparence comportant un nombre réduit de valeurs qui recevra une composante A ayant un nombre de bit réduit, par exemple 4 bits, et qui fournira une composante de transparence codée sur 8 bits au sous-bus 344.
    La figure 4D représente le circuit de la figure 4A dans un quatrième mode de fonctionnement de conversion d'une image en code complet vers une image en code réduit. Dans ce mode, les multiplexeurs 421 à 424 sont commandés de manière à fournir aux circuits de mémoire 361 à 364 les codes reçus sur leurs secondes entrées respectives. Pour chaque pixel, le compteur 46 est commandé pour générer successivement 256 codes correspondant aux adresses 0 à 255. Ces codes d'adresse sont fournis aux circuits 361 à 364 par le biais des multiplexeurs 421 à 424, ainsi qu'à la mémoire 38. Ainsi, pour chaque pixel, chaque circuit 361 à 364 fournit successivement les codes contenus dans ses 256 emplacements mémoires.
    Le calculateur 471 calcule les différences entre les codes reçus sur les sous-bus d'entrée et les codes fournis par les circuits 361 à 364 en réponse aux 256 codes d'adresse produits par le compteur 46.
    Dans un premier temps, le comparateur 472 mémorise la différence calculée pour le premier code d'adresse (0) fourni par le compteur 46. Puis, à chaque fois que la différence entre les codes reçus sur le bus d'entrée et les codes fournis par la mémoire 36 est inférieure à cette première différence mémorisée, le comparateur 472 fournit un signal d'écriture à la mémoire 38. La mémoire 38 reçoit également les 256 codes d'adresse fournis à la mémoire 36. On mémorise ainsi le code de l'adresse à laquelle est stockée, dans les circuits 361 à 364, la couleur dont le code est le plus proche du code de couleur reçu sur le bus 32. Dans ce mode de fonctionnement, le multiplexeur 441 est commandé de manière à fournir, au sous-bus de sortie 341, l'adresse fournie par la mémoire 38.
    Ce mode de fonctionnement permet, par exemple, d'associer à une couleur codée en RGB sur 24 bits, un code CLUT de 8 bits associé à une palette de couleurs stockée dans la mémoire 36.
    On notera que bien que les données stockées dans les circuits 361 à 364 soient toujours des codes de 8 bits, respectivement de couleurs rouge, verte et bleue et de transparence, ces données peuvent varier en fonction des modes de fonctionnement. La présente invention prévoit que le contenu de la mémoire 36 peut être changé entre chaque mode de fonctionnement.
    On notera que le circuit de conversion de la figure 4 peut être utilisé dans d'autres modes de fonctionnement que ceux décrits en relation avec les figures 4A à 4D pour convertir des images ayant des codes de couleurs différents de ceux décrits, par exemple des codages RGB utilisant moins de 24 bits.
    Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaítront à l'homme de l'art. En particulier, la figure 4 décrit un mode de réalisation utilisant des multiplexeurs, mais d'autres modes de réalisation utilisant des éléments équivalents pourront être utilisés. Egalement, l'homme du métier adaptera sans difficultés le circuit de composition d'image selon la présente invention de manière qu'il accepte d'autres formats de données. A titre d'exemple, on pourra ajouter, au circuit de conversion décrit précédemment, un circuit pour convertir un codage RGB en un autre codage classique, par exemple un codage dit "YCbCr", et réciproquement.

    Claims (10)

    1. Circuit de traitement d'image numérique propre à remplacer un code d'entrée associé à un pixel de l'image par un code de sortie choisi dans un premier moyen de mémorisation (36) contenant un ensemble de codes, caractérisé en ce qu'il comporte :
      un bus d'entrée (IN) propre à recevoir le code d'entrée ;
      un bus de sortie (OUT) propre à délivrer le code de sortie ;
      ledit premier moyen de mémorisation ;
      un moyen (40) de calcul d'adresse du premier moyen de mémorisation ;
      un moyen (42) de sélection d'adresse du premier moyen de mémorisation entre le code d'entrée et un code d'adresse généré par le moyen de calcul d'adresse ;
      un deuxième moyen de mémorisation (38) propre à contenir un code d'adresse généré par le moyen de calcul d'adresse ; et
      un moyen (44) de sélection du code de sortie entre un code lu à l'adresse courante du premier moyen de mémorisation et ledit code contenu dans le deuxième moyen de mémorisation.
    2. Circuit de traitement d'image numérique selon la revendication 1, caractérisé en ce que le moyen de calcul d'adresse (40) comprend :
      un générateur d'adresses (46) propre à fournir des codes d'adresse prédéterminés au moyen d'adressage,
      un circuit (47) de comparaison de données prévu pour :
      comparer le premier code et les codes stockés aux adresses prédéterminées dans le premier moyen de mémorisation (36), déterminer celui des codes comparés qui est le plus proche du premier code, et
      commander, au second moyen de mémorisation (38), de stocker le code de l'adresse à laquelle le code comparé le plus proche est stocké dans le premier moyen de mémorisation.
    3. Circuit de traitement d'image numérique selon la revendication 1 ou 2, caractérisé en ce que
      les bus d'entrée (IN) et de sortie (OUT) comprennent chacun un premier (321, 341), un deuxième (322, 342), un troisième (323, 343) et un quatrième (324, 344) sous-bus ayant un même nombre de bits,
      le moyen de sélection d'adresse (42) comprend un premier (421), un deuxième (422), un troisième (423) et un quatrième (424) multiplexeurs dont les premières entrées sont respectivement connectées aux premier, deuxième, troisième et quatrième sous-bus d'entrée, la sortie du premier multiplexeur étant reliée aux secondes entrées des deuxième, troisième et quatrième multiplexeurs,
      le premier moyen de mémorisation (36) comprend un premier (361), un deuxième (362), un troisième (363) et un quatrième (364) circuits de mémoire identiques dont les entrées d'adressage sont respectivement connectées aux sorties des premier, deuxième, troisième et quatrième multiplexeurs, et
      le moyen de sélection du code de sortie (44) comprend un cinquième multiplexeur (441) dont la première entrée est connectée à la sortie de données du premier circuit de mémoire (361) et dont la sortie est connectée au premier sous-bus de sortie (341), les deuxième (342), troisième (343) et quatrième (344) sous-bus de sortie étant connectés respectivement aux sorties de données des deuxième (362), troisième (363) et quatrième (364) circuits de mémoire.
    4. Circuit de traitement d'image numérique selon les revendications 2 et 3, caractérisé en ce que :
      le générateur d'adresses (46) est formé d'un compteur propre à fournir une série prédéterminée de codes d'adresse à la seconde entrée du premier multiplexeur (421), et
      le circuit de comparaison de données (47) comprend :
      un calculateur (471) connecté pour recevoir respectivement les codes fournis aux trois premiers sous-bus d'entrée (321, 322, 323) et les codes fournis par les trois premiers circuits de mémoire (361, 362, 363), et prévu pour fournir un signal numérique égal à la différence entre ces codes, et
      un comparateur à mémoire (472) connecté pour conserver le signal numérique de différence le plus faible calculé pour la série prédéterminée de codes d'adresse et pour commander au second moyen de mémorisation (38) de stocker le code de l'adresse à laquelle les codes correspondant à la différence la plus faible sont stockés dans le premier moyen de mémorisation (36).
    5. Procédé de traitement d'image au moyen d'un circuit selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à recevoir des images dont les codes de couleurs correspondent chacun à une adresse d'une table de référence de couleurs, et à remplacer chaque adresse par le code de couleur désigné par cette adresse dans la table de référence.
    6. Procédé de traitement d'image au moyen d'un circuit selon les revendications 2 ou 4, caractérisé en ce qu'il consiste à recevoir des images dont les couleurs sont codées d'une manière prédéterminée, et à remplacer le code de chaque couleur de l'image par une adresse d'une table de référence de couleurs.
    7. Procédé de traitement d'image au moyen d'un circuit selon la revendication 3 ou 4, caractérisé en ce qu'il comprend les étapes consistant à :
      stocker, dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue et de transparence,
      fournir un code respectivement de couleur rouge, verte et bleue et de transparence aux premier (321), deuxième (322), troisième (323) et quatrième (324) sous-bus d'entrée, et
      commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir aux premier, deuxième, troisième et quatrième circuits de mémoire les codes reçus sur les premier, deuxième, troisième et quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie (341, 342, 343, 344) les codes respectifs fournis par les quatre circuits de mémoire.
    8. Procédé de traitement d'image au moyen d'un circuit selon la revendication 3 ou 4, caractérisé en ce qu'il comprend les étapes consistant à :
      stocker, dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue, et de transparence,
      fournir un code d'adresse au premier sous-bus d'entrée (321), et
      commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir, aux premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire, le code reçu sur le premier sous-bus d'entrée (321), et pour fournir, aux quatre sous-bus de sortie, les codes respectifs fournis par les quatre circuits de mémoire.
    9. Procédé de traitement d'image au moyen d'un circuit selon la revendication 3 ou 4, caractérisé en ce qu'il comprend les étapes consistant à :
      stocker dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence,
      fournir un code d'adresse au premier sous-bus d'entrée (321),
      fournir un code de transparence au quatrième sous-bus d'entrée (324), et
      commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir aux premier, deuxième et troisième circuits de mémoire le code reçu sur le premier sous-bus d'entrée, pour fournir au quatrième circuit de mémoire le code reçu sur le quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie les codes respectifs fournis par les quatre circuits mémoire.
    10. Procédé de traitement d'image au moyen d'un circuit selon la revendication 4, caractérisé en ce qu'il comprend les étapes consistant à :
      stocker dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence,
      fournir aux premier (321), deuxième (322) et troisième (323) sous-bus d'entrée respectivement des codes de couleurs rouge, verte et bleue,
      activer le compteur (46), et
      commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir, aux trois premiers circuits de mémoire les codes d'adresse fournis par le compteur, et pour fournir au premier sous-bus de sortie (341) le code d'adresse fourni par le second moyen de mémorisation (38).
    EP00410126A 1999-10-25 2000-10-24 Convertisseur de couleurs reconfigurable Withdrawn EP1096383A1 (fr)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    FR9913544 1999-10-25
    FR9913544A FR2800180B1 (fr) 1999-10-25 1999-10-25 Convertisseur de couleurs reconfigurable

    Publications (1)

    Publication Number Publication Date
    EP1096383A1 true EP1096383A1 (fr) 2001-05-02

    Family

    ID=9551508

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    EP00410126A Withdrawn EP1096383A1 (fr) 1999-10-25 2000-10-24 Convertisseur de couleurs reconfigurable

    Country Status (3)

    Country Link
    US (1) US6744439B1 (fr)
    EP (1) EP1096383A1 (fr)
    FR (1) FR2800180B1 (fr)

    Families Citing this family (2)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    KR100513328B1 (ko) * 2001-12-21 2005-09-07 엘지전자 주식회사 일련의 데이터 워드를 변조신호로 변환하는 장치 및 방법
    JP4748077B2 (ja) * 2007-02-14 2011-08-17 セイコーエプソン株式会社 画素データ転送制御装置及び画素データ転送制御方法

    Citations (2)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US4791580A (en) * 1986-06-18 1988-12-13 Technology Inc. 64 Display processor updating its color map memories from the serial output port of a video random-access memory
    US5745104A (en) * 1992-08-31 1998-04-28 Fujitsu Limited Palette control circuit

    Family Cites Families (5)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US5204664A (en) * 1990-05-16 1993-04-20 Sanyo Electric Co., Ltd. Display apparatus having a look-up table for converting pixel data to color data
    US5546553A (en) * 1990-09-24 1996-08-13 Texas Instruments Incorporated Multifunctional access devices, systems and methods
    JP2793463B2 (ja) * 1992-04-28 1998-09-03 インターナショナル・ビジネス・マシーンズ・コーポレイション カラーセツト選択装置及びその方法並びにカラー選択管理方法
    US6307559B1 (en) * 1995-07-13 2001-10-23 International Business Machines Corporation Method and apparatus for color space conversion, clipping, and scaling of an image during blitting
    US6088050A (en) * 1996-12-31 2000-07-11 Eastman Kodak Company Non-impact recording apparatus operable under variable recording conditions

    Patent Citations (2)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US4791580A (en) * 1986-06-18 1988-12-13 Technology Inc. 64 Display processor updating its color map memories from the serial output port of a video random-access memory
    US5745104A (en) * 1992-08-31 1998-04-28 Fujitsu Limited Palette control circuit

    Also Published As

    Publication number Publication date
    US6744439B1 (en) 2004-06-01
    FR2800180A1 (fr) 2001-04-27
    FR2800180B1 (fr) 2002-01-04

    Similar Documents

    Publication Publication Date Title
    US6483540B1 (en) Image data processing apparatus method and program storage medium for processing image data
    US5740343A (en) Texture compositing apparatus and method
    FR2604019A1 (fr) Dispositif d&#39;affichage video couleur pour systeme d&#39;ordinateur, et procede de conversion de signaux video couleur a cet effet
    FR2599873A1 (fr) Systeme d&#39;affichage video
    WO1997033437A1 (fr) Melange d&#39;images video dans un terminal domestique de telecommunications
    WO1996031843A1 (fr) Procede et appareil pour la rotation d&#39;images
    FR2523332A1 (fr) Systeme et procede de creation d&#39;images a palette synthetisee electroniquement
    FR2633426A1 (fr) Procede et dispositif de commande de visualisation en couleur
    FR2686438A1 (fr) Circuiterie pour manipuler des flux de donnees.
    EP0276884B1 (fr) Dispositif synthétiseur d&#39;images
    EP0202166B1 (fr) Circuit de mémoire d&#39;image virtuelle permettant le multifenêtrage
    CN112416346A (zh) 界面配色方案的生成方法、装置、设备及存储介质
    FR2769743A1 (fr) Procede et dispositif de balayage d&#39;un panneau a plasma
    EP1096383A1 (fr) Convertisseur de couleurs reconfigurable
    EP0206419A1 (fr) Circuit de conversion numérique-analogique muni d&#39;une réponse non-linéaire et dispositif de visualisation à balayage cathodique équipé d&#39;un tel circuit
    EP0197846B1 (fr) Circuit contrôleur de signaux vidéo de couleur pour système de visualisation haute résolution, et système de visualisation comportant un tel circuit
    FR2631474A1 (fr) Circuit et procede pour commander la presentation d&#39;une information de couleurs a un dispositif d&#39;affichage d&#39;un systeme informatique
    FR2477745A1 (fr) Dispositif d&#39;affichage graphique en couleurs
    FR2619462A1 (fr) Systeme de traitement numerique a bus multi-donnees
    FR2824660A1 (fr) Systeme et procede d&#39;affichage d&#39;image
    US20020167530A1 (en) Anti-alias font generator
    EP1233402A1 (fr) Système de traitement de motifs graphiques ayant des formats différents parmi extraction de pixels et acheminement des mêmes vers différents moyens de codage
    EP1691342A1 (fr) Procédé et dispositif de traitement d&#39;image
    EP0191656B1 (fr) Générateur de caractères et utilisation d&#39;un tel générateur dans un système de visualisation
    EP0391755A2 (fr) Système de visualisation d&#39;images

    Legal Events

    Date Code Title Description
    PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

    Free format text: ORIGINAL CODE: 0009012

    AK Designated contracting states

    Kind code of ref document: A1

    Designated state(s): DE FR GB IT

    AX Request for extension of the european patent

    Free format text: AL;LT;LV;MK;RO;SI

    RIN1 Information on inventor provided before grant (corrected)

    Inventor name: LAURY, MARC

    Inventor name: SEIGNERET, FRANCK

    Inventor name: CHIARUZZI, EMMANUEL

    Inventor name: MONNIER, PHILIPPE

    17P Request for examination filed

    Effective date: 20011022

    RAP1 Party data changed (applicant data changed or rights of an application transferred)

    Owner name: STMICROELECTRONICS S.A.

    AKX Designation fees paid

    Free format text: DE FR GB IT

    STAA Information on the status of an ep patent application or granted ep patent

    Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

    18D Application deemed to be withdrawn

    Effective date: 20080503