COLOR CONVERSION METHOD FOR COMPACT PRINTER SYSTEM

Abstract: A color conversion method and apparatus for a compact printer system. An image processor converts a stored image from a first tri-color space to a second tri-color space. Resultant transformation values are read from lookup tables for each color component of the stored image pixels and a single cycle interpolator unit performs linear interpolation to generate a single color component in the second tri-color space in 14 cycles. In one example, the L*a*b* color space is converted to CMY color space. In another example, the RGB form is converted to the L*a*b* form and two extra L* components for use in sharpening a converted image.

Description: COLOR CONVERSION METHOD FOR COMPACT PRINTER SYSTEM FIELD OF THE INVENTION The invention relates to a compact pπnter system able to pπnt full-color, business card size documents from a device about the size of a pen The system includes vanous hot-connectable modules that provide a range of functions In particular the invention relates to a color conversion method for a compact pπnter system Reference may be had to co-pending applications claiming pπoπty from Australian Provisional Patent Application number PQ0560 dated 25 May 1999 The co-pending applications descπbe related modules and methods for implementing the compact pπnter system The co-pending applications are as follows BACKGROUND OF THE INVENTION Microelectronic manufactuπng techniques have led to the miniatuπzation of numerous devices Mobile phones, personal digital assistant devices, and digital cameras are very common examples of the mmiatuπzation trend One device that has not seen the advantage of microelectronic manufactuπng techniques is the pπnter Commercially available pπnters are large compared to many of the devices they could support For instance, it is impractical to carry a color pπnter for the purpose of instantly pπntmg photographs taken with known compact digital cameras A compact pπnthead has been descπbed in co-pending Patent Cooperation Treaty applications filed simultaneously to the present application and hereby incorporated by cross reference SUMMARY OF THE INVENTION In one form, the invention resides in a method of converting, in an image processor, from a first tπ-color space to a second tπ-color space, said method compnsmg the steps of reading color components of pixels of an image stored m a first tπ-color space: performing tπ-hnear conversion of said color components from said first color space to said second color space by executing a single interpolation each cycle; and stoπng said converted color components in a specific storage location. Further features of the invention will be evident from the following descπption. BRIEF DESCRIPTION OF THE DRAWINGS In order to assist with descπbing preferred embodiments of the invention, reference will be made to the following figures in which: FIG 1 is a pπnter module; FIG 2 is a camera module; FIG 3 is a memory module; FIG 4 is a communication module; FIG 5 is a flash module; FIG 6 is a timer module; FIG 7 is a laser module; FIG 8 is an effects module; FIG 9 is a characters module; FIG 10 is an adaptor module; FIG 11 is a pen module; FIG 12 is a dispenser module; FIG 13 is a first compact printer configuration; FIG 14 is a second compact pπnter configuration; FIG 15 is a third compact pπnter configuration; FIG 16 is a fourth compact pπnter configuration; FIG 17 illustrates the Image Print Chain; FIG 18 illustrates the transformations required for L*a*b* to CMY color conversion; FIG 19 represents a tπ-linear conversion from L*a*b* to CMY; FIG 20 is a block diagram of the conversion process from L*a*b* to CMY; FIG 21 represents a tri-linear conversion from RGB to L*a*b*; and FIG 22 is a block diagram of the conversion process from RGB to L*a*b*. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Referπng to FIGs 1 to 12, there are shown various modules that together form a compact pπnter system. Individual modules can be attached and detached from the compact pπnter configuration to allow a user-definable solution to business-card sized pπnting. Images can also be transferred from one compact pπnter to another without the use of a secondary computer system. Modules have a minimal user-interface to allow straightforward interaction. A compact pπnter system configuration consists of a number of compact pπnter modules connected together. Each compact pπnter module has a function that contπbutes to the overall functionality of the particular compact pπnter configuration Each compact pπnter module is typicallv shaped like part of a pen, physically connecting with other compact pπnter modules to form the complete pen-shaped device The length of the compact pπnter device depends on the number and type of compact pπnter modules connected The functionality of a compact pπnter configuration depends on the compact pπnter modules in the given configuration The compact pπnter modules connect both physically and logically The physical connection allows modules to be connected in any order, and the logical connection is taken care of by the compact pnnter Seπal Bus - a bus that provides power, allows the modules to self configure and provides for the transfer of data In terms of physical connection, most compact pπnter modules consist of a central body, a male connector at one end and a female connector at the other Since most modules have both a male and female connector, the modules can typically be connected in any order Certain modules only have a male or a female connector, but this is determined by the function of the module Adaptor modules allow these single-connector modules to be connected at either end of a given compact pπnter configuration A four wire physical connection between all the compact pπnter modules provides the logical connection between them in the form of the compact pπnter Seπal Bus The compact pπnter Seπal Bus provides power to each module, and provides the means by which data is transfeπed between modules Importantly, the compact pπnter Seπal Bus and accompanying protocol provides the means by which the compact pπnter system auto- configures, reducing the user-interface burden on the end-user Compact pπnter modules can be grouped into three types • image processing modules including a Pπnter Module (FIG 1), a Camera Module (FIG 2), and a Memory Module (FIG 3) Image processing modules are pπmaπly what sets the compact pπnter system apart from other pen-like devices Image processing modules capture, pπnt, store or manipulate photographic images, • housekeeping modules including an Adapter Module (FIG 10), an Effects Module (FIG 8), a Communications Module (FIG 4), and a Timer Module (FIG 6) Housekeeping modules provide services to other modules or extended functionality to other modules, and • isolated modules including a Pen Module (FIG 11) and a Laser Module (FIG 7) Isolated modules are those that attach to the compact pπnter system but are completely independent of any other module They do not necessaπly require power, and may even provide their own power Isolated Modules are defined because the functionality they provide is typically incorporated into other pen-like devices Although housekeeping modules and isolated modules are useful components a compact pπnter system, they are extras in a system dedicated to image processing and photographic manipulation Life size (1 1) illustrations of the compact pπnter modules are shown in FIGs 1 to 12, and example configurations produced by connecting vanous modules together are shown m FIGs 13 to 16 FIG 1 shows a pπnter module that incorporates a compact pπnthead descπbed in co-pending United States Patent Applications listed in the Background section of this application, incorporated herewith by reference, and refeπed to herewith as a Memjet pπnthead The Memjet pnnthead is a drop-on-demand 1600 dpi inkjet pπnter that produces bι-le\el dots in up to 4 colors to produce a pπnted page of a particular width Since the pπnthead pπnts dots at 1600 dpi each dot is approximately 22 5μm in diameter, and spaced 15 875μm apart Because the pπntmg is bi-level the input image should be dithered or error-diffused for best results Typically a Memjet pπnthead for a particular application is page-width This enables the pπnthead to be stationary and allows the paper to move past the pπnthead A Memjet pπnthead is composed of a number of identical 1/2 inch Memjet segments The pπnter module 10 compπses a body 1 1 housing the Memjet pπnthead Power is supplied by a three volt battery housed in battery compartment 12 The pnnthead is activated to commence pπnting when a business card (or similar sized pnntable media) is inserted into slot 13 Male connector 14 and female connector 15 facilitate connection of other modules to the pπnter module 10 FIG 2 shows a camera module 20 The camera module provides a point-and-shoot camera component to the compact pπnter system as a means of captunng images The camera module compπses a body 21 having a female connector 22 A lens 23 directs an image to an image sensor and specialized image processing chip within the camera 24 A conventional view finder 25 is provided as well as a lens cap 26 An image is captured when the Take button 27 is pushed Captured images are transferred to the Pπnter Module 10 for subsequent pπnting, manipulation or storage The Camera Module also contains a self-timer mode similar to that found on regular cameras FIG 3 shows a Memory Module 30 compπsing a body 31, LCD 32 IN button 33, OUT button 34 and SELECT button 35 The Memory Module 30 is a standard module used for stoπng photographic images captured by the Camera 20 The memory module stores 48 images, each of which can be accessed either at full resolution or at thumbnail resolution Full resolution provides read and wπte access to individual images, and thumbnail resolution provides read access to 16 images at once in thumbnail form The Memory Module 30 attaches to other modules via a female connector 36 or male connector 37 The male and female connectors allow the module to be connected at either end of a configuration Power is provided from the Pπnter Module 10 via the Seπal Bus A Communications Module 40 is shown FIG 4 The communications module 40 consists of a connector 41 and a cable 42 that terminates in an appropπate connector for a computer port, such as a USB port, RS232 seπal port or parallel port The Communications Module 40 allows the compact pπnter system to be connected to a computer When so connected, images can be transferred between the computer and the vanous modules of the compact pnnter system The communications module allows captured images to be downloaded to the computer, and new images for pπnting to be uploaded into the pπnter module 10 A Flash Module 50 is shown in FIG 5 The Flash Module 50 is used to generate a flash with flash cell 51 when taking photographs with the Camera Module 20 The Flash Module attaches to other modules via female connector 52 and male connector 53 It contains its own power source The Flash Module is automatically selected by the Camera Module when required A simple switch allows the Flash Module to be explicitly turned off to maximize battery life FIG 6 shows a Timer Module 60 that is used to automate the taking of multiple photos with the Camera Module 20, each photo separated by a specific time interval The captured photos are stored in Memory Module 30 Any flash requirements are handled by the Camera Module 20, and can therefore be ignored by the Timer Module The Timer Module 60 consists of a body 61 housing a LCD 62 START/STOP button 63 and UNITS button 64 A SELECT button 65 allows the user to select time units and the number of units are set by UNITS button 64 The Timer Module 60 includes a male connector 66 and female connector 67 The Timer Module takes its power from the Pπnter Module 10 via the Seπal Bus A Laser Module 70 is shown in FIG 7 The Laser Module 70 consists of a body 71 containing a conventional laser pointer operated by button 72 As the Laser Module is a terminal module it only has one connector which in the example is a male connector 73 The Laser Module is an isolated module, m that it does not peπorm any image capture storage or processing It exists as a functional addition to the compact pnnter system It is provided because laser pointer services are typically incorporated into other pen-like devices The Laser Module contains its own power supply and does not appear as a device on the Seπal Bus The Effects Module shown in FIG 8 is an image processing module It allows a user to select a number of effects and applies them to the current image stored in the Pπnter Module 10 The effects include borders, clip- art, captions, warps, color changes and painting styles The Effects Module compπses a body 81 housing custom electronics and a LCD 82 A CHOOSE button 83 allows a user to choose between a number of different types of effects A SELECT button 84 allows the user to select one effect from the number of effects of the chosen type Pressing the APPLY button 85 applies the effect to image stored m the Pπnter Module 10 The Effects Module obtains power from the Senal Bus Male connector 86 and female connector 87 allow the Effects Module to be connected to other compact pnnter system modules FIG 9 shows a Character Module 90 that is a special type of Effects Module (descnbed above) that only contains character clip-art effects of a given topic or genre Examples include The Simpsons ® Star Wars ® , Batman ® , and Dilbert ® as well as company specific modules for McDonalds ® etc As such it is an image processing module It consists of a body 91 housing custom electronics and a LCD 92 SELECT button 93 allows the user to choose the effect that is to be applied with APPLY button 94 The Character Module obtains power from the Seπal Bus through male connector 95 and female connector 96 The Adaptor Module 100, shown in FIG 10, is a female/female connector that allows connection between two modules that terminate male connectors A male/male connector (not shown) allows connection between two modules that terminate m female connectors The Adaptor Module is a housekeeping module, in that it facilitates the use of other modules, and does not perform any specific processing of its own All "through" modules have a male connector at one end, and a female connector at the other end The modules can therefore be chained together, with each module connected at either end of the chain However some modules, such as the Laser Module 70, are terminating modules, and therefore have either a male or female connector only Such single-connector modules can only be connected at one end of the chain If two such modules are to be connected at the one time, an Adaptor Module 100 is required FIG 11 shows a Pen Module 110 which is a pen m a module form It is an isolated module in that it attaches to the compact pπnter system but is completely independent of any other module It does not consume or require any power The Pen Module is defined because it is a convenient extension of a pen shaped, pen sized device It may also come with a cap 111 The cap may be used to keep terminating connectors clean in the case where the chain ends with a connector rather than a terminating module To assist with accurately feeding a business card sized pnnt media into slot 13 of the pnnter module 10, a dispenser module 120 is provided as shown in FIG 12 The dispenser module 120 compπses a body 121 that holds a store of business card sized pnnt media. A Pπnter Module 10 locates into socket 122 on the dispenser module 120 When correctly aligned, a card dispensed from the dispenser module by slider 123 enters slot 13 and is pπnted In the sense that a minimum configuration compact pπnter system must be able to pnnt out photos, a minimum compact pπnter configuration contains at least a Pπnter Module 10 The Pnnter Module holds a single photographic image that can be pπnted out via its Memjet pπnter It also contains the 3V battery required to power the compact pπnter system In this minimum configuration, the user is only able to pnnt out photos Each time a user inserts a business card 130 into the slot in the Pπnter Module the image in the Pπnter Module is pπnted onto the card The same image is pπnted each time a business card is inserted into the pπnter In this minimum configuration there is no way for a user to change the image that is pπnted The dispenser module 120 can be used to feed cards 130 into the Pπnter Module with a minimum of fuss as shown in FIG 13 By connecting a Camera Module 20 to the minimum configuration compact pπnter system the user now has an instant pπnting digital camera in a pen. as shown in FIG 14 The Camera Module 20 provides the mechanism for captuπng images and the Pπnter Module 10 provides the mechanism for pπnting them out The battery in the Pnnter Module provides power for both the camera and the pπnter When the user presses the "Take" button 27 on the Camera Module 20, the image is captured by the camera 24 and transfened to the Pπnter Module 10 Each time a business card is inserted into the pπnter the captured image is pπnted out If the user presses "Take" on the Camera Module again the old image in the Pπnter Module is replaced by the new image If the Camera Module is subsequently detached from the compact pπnter system, the captured image remains in the Pπnter Module, and can be pπnted out as many times as desired The Camera Module is simply there to capture images to be placed in the Pπnter Module FIG 15 shows a further configuration in which a Memory Module 30 is connected to the configuration of FIG 14 In the embodiment of FIG 15, the user has the ability to transfer images between the Pnnter Module 10 and a storage area contained in the Memory Module 30 The user selects the image number on the Memory Module, and then either sends that image to the Pπnter Module (replacing whatever image was already stored there), or bπngs the cuπent image from the Pπnter Module to the specified image number in the Memory Module The Memory Module also provides a way of sending sets of thumbnail images to the Pπnter Module Multiple Memory Modules can be included in a given system, extending the number of images that can be stored A given Memory Module can be disconnected from one compact pnnter system and connected to another for subsequent image pπnting With the Camera Module 20 attached to a Memory Module/Pπnter Module compact pπnter system, as shown in FIG 15, the user can 'Take" an image with the Camera Module, then transfer it to the specified image number in the Memory Module. The captured images can then be pπnted out in any order By connecting a Communications Module 40 to the minimum configuration compact pπnter system, the user gains the ability to transfer images between a PC and the compact pπnter system FIG 16 shows the configuration of FIG 15 with the addition of a Communications Module 40 The Communications Module makes the Pπnter Module 10 and any Memory Modules 30 visible to an external computer system This allows the download or uploading of images The communications module also allows computer control of any connected compact pπnter modules, such as the Camera Module 20 In the general case, the Pπnter Module holds the "current" image, and the other modules function with respect to this central repository of the current image The Pπnter Module is therefore the central location for image interchange in the compact pπnter system, and the Pπnter Module provides a service to other modules as specified by user interaction A given module may act as an image source It therefore has the ability to transfer an image to the Pπnter Module A different module may act as an image store It therefore has the ability to read the image from the Pπnter Module Some modules act as both image store and image source These modules can both read images from and wnte images to the Pnnter Module's current image The standard image type has a single conceptual definition The image definition is deπved from the physical attributes of the pnnthead used in the Pnnter Module The pπnthead is 2 inches wide and pπnts at 1600dpi in cyan, magenta and yellow bi-level dots Consequently a pπnted image from the compact pπnter system is 3200 bi-level dots wide The compact pπnter system pπnts on business card sized pages (85mm x 55mm) Since the pπnthead is 2 inches wide the business cards are pπnted such that 1 line of dots is 2 inches 2 inches is 50 8mm, leaving a 2mm edge on a standard business-card sized page The length of the image is deπved from the same card size with a 2mm edge Consequently the pπnted image length is 81mm which equals 5100 1600dpi dots The pnnted area of a page is therefore 81mm x 51mm or 5100 x 3200 dots To obtain an integral contone to bi-level ratio a contone resolution of 267 ppi (pixels per inch) is chosen This yields a contone CMY page size of 850 x 534, and a contone to bi-level ratio of 1 6 in each dimension This ratio of 1 6 provides no perceived loss of quality since the output image is bi-level The pπnthead pπnts dots in cyan, magenta, and yellow ink The final output to the pnnted page must therefore be in the gamut of the pnnthead and take the attπbutes of the inks into account It would at first seem reasonable to use the CMY color space to represent images However, the pnnter' s CMY color space does not have a linear response This is definitely true of pigmented inks, and partially true for dye-based inks The individual color profile of a particular device (input and output) can vary considerably Image capture devices (such as digital cameras) typically work in RGB (red green blue) color space, and each sensor will have its own color response charactenstics Consequently, to allow for accurate conversion, as well as to allow for future image sensors, inks, and pπnters, the CIE L*a*b* color model [CIE, 1986, CIE 15 2 Coloπmetrv Technical Report (2 nd Edition), Commission Internationale De l'Eclairage] is used for the compact pπnter system L*a*b* is well defined, perceptually linear, and is a superset of other traditional color spaces (such as CMY, RGB, and HSV) The Pπnter Module must therefore be capable of converting L*a*b* images to the particular peculianties of its CMY color space However, since the compact pπnter system allows for connectivity to PCs, it is quite reasonable to also allow highly accurate color matching between screen and pπnter to be performed on the PC However the pπnter dπver or PC program must output L*a*b* Each pixel of a compact pnnter image is therefore represented by 24 bits 8 bits each of L*, a*, and b* The total image size is therefore 1,361,700 bytes (850 x 534 x 3) Each image processing module is able to access the image stored in the Pπnter Module The access is either to read the image from the Pπnter Module, or to wπte a new image to the Pnnter Module The communications protocol for image access to the Pπnter Module provides a choice of internal image organization Images can be accessed either as 850 x 534 or as 534 x 850 They can also be accessed in interleaved or planar format When accessed as interleaved, each pixel in the image is read or wntten as 24 bits 8 bits each of L*, a*, b* When accessed as planar, each of the color planes can be read or wntten independently The entire image of L* pixels, a* pixels or b* pixels can be read or wntten at a time The Image Pnnt Cham is concerned with taking an existing, stored image from memory and pπntmg it to a Memjet pπnter There are a number of steps required in the image processing chain in order to produce high quality 1600dpi pπnts from 267ppι images FIG 17 illustrates the Image Pnnt Chain The present invention is concerned with the method of converting from one tn-color space to another As previously discussed, the pπnter' s CMY color space does not have a linear response and consequently, the L*a*b* color model is used for the compact pπnter system The Pπnter Module 10 has the capability to convert from the well defined and perceptually linear L*a*b* to the particular peculianties of its CMY color space Additionally, there is the possibility of a PC performing high quality color space conversion before downloading an image to the compact Pπnter Module 10 The stored image is therefore defined in terms of the L*a*b* or CMY color space If it is m the L*a*b* color space, it must be converted to CMY before being pπnted out Rather than convert the L*a*b* to CMY in situ, the conversion is done on-the-fly duπng the pnnt process This allows the L*a*b* image to be exported from the Pnnter Module 10 in a portable color space format The transformations required for color conversion are shown m FIG 18 If the image is already in CMY (for example downloaded from a PC with CMY generated by the PC), the color conversion step is bypassed Rather than perform these transformations exhaustively excellent results can be obtained via a tπ-hnear conversion based on 3 sets of 3D lookup tables The lookup tables contain the resultant transformations for the specific entry as indexed by L*a*b* Three tables are required one mapping L*a*b* to C. one mapping L*a*b* to M and one mapping L*a*b* to Y Tπ-ltnear interpolation can be used to give the final result for those entπes not included in the tables The process is shown in FIG 19 Tn-hnear interpolation requires reading 8 values from the lookup table, and performing 7 linear interpolations (4 in the first dimension 2 in the second, and 1 in the third) High precision can be used for the intermediate values, although the output value is only 8 bits The size of the lookup table required depends on the lineanty of the transformation The recommended size for each table in this application is 17 x 17 x 17, with each entry being 8 bits A 17 x 17 x 17 table is 4913 bytes .less than 5KB) Although a 17 x 17 x 17 table will give excellent results, it is envisaged that a 9 x x conversion table (729 bytes) may be sufficient The exact size can be determined by simulation The 5KB conservative-but- defimte-results approach was chosen for the purposes of this example To index into the 17-per-dιmensιon tables, the 8-bit input color components are treated as fixed-point numbers (4 4) The 4 bits of integer give the index, and the 4 bits of fraction are used for interpolation A block diagram of the conversion process from L*a*b* to CMY can be seen in FIG 20 The conversion from L*a*b* to CMY must produce the contone buffer pixels (Buffer 2) at a rate fast enough to keep up with the Uplnterpolate-Halftone-Reformat process (the remaining steps in the Image Pnnt Chain, as shown m FIG 17) Since each contone value is used for 36 cycles (6 times in each of the X and Y dimensions), the conversion process can take up to 36 cycles This totals 108 cycles for all 3 color components The process as descnbed here only requires 14 cycles per color component The conversion is performed using tn-hnear interpolation Three 17 x 17 x 17 lookup tables are used for the conversion process L*a*b* to Cyan, L*a*b* to Magenta, and L*a*b* to Yellow However, since we have 36 cycles to perform each tn-hnear interpolation, there is no need for a fast tn-hnear interpolation unit Instead, 8 calls to a linear interpolation process are more than adequate Address generation for indexing into the lookup tables is straightforward The 4 most significant bits of each 8-bit color component are used for address generation, and the 4 least significant bits of each 8-bit color component are used for interpolating between values retneved from the conversion tables The addressing into the lookup table requires an adder due to the fact that the lookup table has dimensions of 17 rather than 16 Fortunately, multiplying a 4-bit number X by 17 is an 8-bit number XX, and therefore does not require an adder or multiplier Multiplying a 4 bit number by 17 2 (289) is only slightly more complicated, requiπng a single add Although the interpolation could be performed faster, a single adder to generate addresses and a single cycle interpolation unit is used Consequently, it is possible to calculate the interpolation for generating a single color component from L*a*b* in 14 cycles, as shown m Table 1 The process must be repeated 3 umes in order to generate cyan, magenta, and yellow Faster methods are possible, but are not necessary As shown m Table 1 , a single ADR register and adder can be used for address generation into the lookup tables 6 sets of 8-bit registers can be used to hold intermediate results - 2 registers hold values loaded from the lookup tables, and 4 registers are used for the output from the interpolation unit Note that the input to the linear interpolation unit is always a pair of 8-bit registers P1/P2, P3/P4, and P5/P6 This is done deliberately to reduce register selection logic In cycle 14, the "V" register holds the 8-bit value finally calculated The 8-bit result can be wntten to the appropπate location in Buffer 2 dunng the next cycle Assuming the process is first run to generate cyan, the resultant cyan contone pixel is stored m the cyan contone buffer within Buffer 2 The process is then run again on the same L*a*b* input to generate the magenta pixel This magenta contone pixel is stored into the magenta contone buffer of Buffer 2 Finally, the yellow contone pixel is generated from the same L*a*b* input, and the resultant yellow pixel is stored into the yellow contone buffer of Buffer 2 The address generation for wnting to the contone buffer (Buffer 2) is also straightforward A single address (and accompanying ColorSelect bits) is used to wπte to each of the three color buffers The Cyan buffer is wntten to on cycle 15, the Magenta on cycle 30, and Yellow on cycle 45 The pixel address is incremented by 1 every 75 cycles (after all 3 colors have been wntten) The line being wntten to increments with wrapping once every 6 LineSyncO pulses The order of lines being wntten to is simply 0-1-2-3-4-5-0-1-2-3 and so on If there is no conversion taking place (l e the image in Image RAM is already in CMY format), then the address generation for Buffer 2 remains the same The only difference is that the multiplexor chooses the value directly from Image RAM instead of from the result of the interpolator Although each line is 534 contone pixels, as shown m FIG 17, we only require 3200 bi-level dots for each line The scaling up by 6 by the up-mterpolator gives 3204 dots The up-mterpolator simply stops after generating 3200 dots, and does not read the final contone pixel more than twice Address generation for the Image RAM is very simple given that the image is stored in an interleaved fashion A single address register contains the cuπent address in Image RAM Dunng cycles 1, 2, and 3 of the 14 cycle group the address is read and incremented thus reading L*, a*, and b* or C, M, and Y This is done 534 times for each line and then the address generator stalls waiting for the LineSyncO to enable the process to start again The cuπent address therefore gradually progresses through the entire image A modification to the aforementioned conversion will now be descπbed for the conversion from RGB to L*a*b* color space and two extra L* components for use in sharpening an image The process for converting RGB to L*a*b* is shown in FIG 21 The color conversion process must produce contone L*a*b* pixels for the Sharpen process within 72 cycles. The sharpening process only requires the L* values coπespondmg to the first and third RGB sets, and only requires the full L*a*b* set for the second RGB set Thus, we have 72 cycles in which to perform 5 color conversions (3 sets of RGB to L*, and 1 set each of RGB to a* and RGB to b*) The process as descnbed here requires 14 cycles per color component, leading to a total of 70 cycles for 5 conversions (leaving 2 cycles spare) The conversion is performed as tn-hnear interpolation Three 17 x 17 x 17 x 8-bit lookup tables are used for the conversion process- RGB to L*, RGB to a*, and RGB to b* Address generation for indexing into the lookup tables is straightforward and is as descnbed in the previous example. Although the interpolation could be performed faster, again a single adder to generate addresses and a single cycle interpolation unit is used. Consequently, it is possible to calculate the interpolation for generating a single color component from RGB in 14 cycles, as shown in Table 2 The process must be repeated 5 times, once for each color conversion. Faster methods are possible, but are not necessary As shown in Table 2, a single ADR register and adder can still be used for address generation into the lookup tables A block diagram of the color conversion process from RGB to L*a*b* can be seen in FIG 22. As with the previous embodiment, 6 sets of 8-bit registers can be used to hold intermediate results - 2 registers hold values loaded from the lookup tables, and 4 registers are used for the output from the interpolation unit. Note that the input to the linear interpolation unit is always a pair of 8-bit registers P1/P2, P3 P4, and P5/P6 This is done deliberately to reduce register selection logic. In cycle 14, the "V" register holds the 8-bit value finally calculated The 8-bit result can be wntten to the appropnate location in Buffer 3 dunng the next cycle. The basic 14 cycle color conversion process is run 5 times as follows on RGB] to generate L*ι on RGB 2 to generate L*S on RGB, to generate L*. on RGB 2 to generate a* on RGB 2 to generate b* Address generation for wntmg to Buffer 3 makes use of the cyclical nature of Buffer 3 The address consists of a 2-bit column component (representing which of the 4 columns should be wntten to), and a 3-bit value representing L* b L* 2 L* 3 , a*, or b* The column number starts at 0 each new line and increments (with wrapping) every 72 cycles The order of wntmg to Buffer 3 is shown in Table 3 The C register is the 2-bit column component of the address All addition on C is modulo 4 (wraps within 2 bits) The present invention uses tn-hnear interpolation, but only performs a single interpolation cycle such that the generation of a single color component from a tπ-color space consumes 14 cycles One benefit of this method is the minimization of the amount of silicon used Throughout the specification the aim has been to descπbe the preferred embodiments of the invention without limiting the invention to any one embodiment or specific collection of features Persons skilled in the relevant art may realize vanations from the specific embodiments that will nonetheless fall within the scope of the invention

Claims: CLAIMS 1 A method of converting in an image processor from a first tπ-color space to a second tπ-color space, said method compnsing the steps of reading color components of pixels of an image stored in a first tπ-color space, performing tn-hnear conversion of said color components from said first color space to said second color space by executing a single interpolation in each cycle, and stonng said converted color components in a specific storage location 2 The method of claim 1 wherein said step of performing tn-hnear conversion includes the steps of looking up resultant transformation values m lookup tables for each of said pixel color components, and performing linear interpolations on said transformation values 3 The method of claim 2 wherein eight said transformation values are read from said look up tables, which require seven said linear interpolations 4 The method of claim 3 wherein, of said seven linear interpolations, four are performed in a first dimension, two are performed in a second dimension, and one is performed in a third dimension 5 The method of claim 1 wherein for one color component of said pixels, said step of performing tn-hnear conversion from said first color space to said second color space is completed in fourteen cycles, said performing step being repeated for each color component yet to be converted 6 The method of claim 1 wherein said specific storage location is a dedicated buffer for each color component of said second tn-color space 7 The method of claim 1 wherein said method is performed on-the-fly dunng a pnnt process for a converted image 8 The method of claim 1 wherein, if said first color space is the same as said second color space, said step of performing tn-hnear conversion is bypassed 9 The method of claim 1 wherein said first color space is L*a*b* form and said second color space is CMY form 10 The method of claim 1 wherein said first color space is RGB form and said second color space is L*a*b* form 11 The method of claim 10 wherein said step of performing color conversion is performed five times to produce two extra L* components for use in sharpening a converted image 12 An image processor for converting a stored image from a first tπ-color space to a second tπ-color space, said image processor compnsing a single cycle linear interpolation unit, look up tables containing values for transforming color components from a first tπ-color space to a second tπ-color space, and dedicated storage means for stonng each of said second tπ-color space color components 13 The image processor of claim 12 further compnsing a single address register and a single adder for addressing into said lookup tables 14 The image processor of claim 12 further compnsing six registers wherein two of said registers store values from said look up tables and wherein four of said registers store an output from said interpolation unit

Inventors: WALMSLEY SIMON ROBERT, WALMSLEY, SIMON, ROBERT
Applicants: SILVERBROOK RES PTY LTD, WALMSLEY SIMON ROBERT, SILVERBROOK RESEARCH PTY LTD, WALMSLEY, SIMON, ROBERT
Application year: 2000
Main classification: G06T9
IPC codes: B41J2, B41J3, B41J13, B41J23, B41J29, H04N1, H04N5