A printer cartridge includes a memory device and at least one compressed color table stored on the memory device. A compressed color table includes a losslessly compressed neutral axis, a number of nodes that correspond to seed color table nodes and a number of delta nodes that correspond to a number of delta tables. The number of delta tables indicate differences between interpolated color table nodes and corresponding actual color table nodes.
|
1. A printer cartridge, comprising:
a memory device;
at least one compressed color table provided by the memory device, comprising:
a losslessly compressed neutral axis;
a number of nodes that correspond to seed color table nodes; and
a number of delta nodes that correspond to a number of delta tables;
in which the number of delta tables indicate differences between interpolated color table nodes and corresponding actual color table nodes; and an ink reservoir to contain ink, wherein the at least one compressed color table is used during ejection of ink from the ink reservoir.
2. The printer cartridge of
a first delta table indicates a difference between an interpolated intermediate color table and an actual intermediate color table; and
a second delta table indicates a difference between an interpolated final color table and an actual final color table.
3. The printer cartridge of
4. The printer cartridge of
5. The printer cartridge of
6. The printer cartridge of
7. The printer cartridge of
8. The printer cartridge of
9. The printer cartridge of
10. The printer cartridge of
11. The printer cartridge of
12. The printer cartridge of
13. The printer cartridge of
|
Many output devices such as ink printers and laser printers implement a subtractive color model while input devices such as computer monitors, mobile phones, and other input devices implement an additive color model. For example, output devices may use a CMYK (cyan, magenta, yellow and black) color model, while input devices may use a RGB (red, green and blue) color model. To output data from an input device such as a graphic, text or a combination thereof, output devices convert the additive color model into a subtractive color model.
The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The illustrated examples do not limit the scope of the claims.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
Input devices may implement an additive color model to visually display text or images. For example, an input device may implement a RGB color model. An input device may implement various types of RGB color models. Examples of RGB color models include sRGB, Adobe® RGB and scan RGB. As used herein, the various types of RGB color models may be referred to generically as a RGB color model, or similar terminology.
Before an input image can be printed as a physical output, the input additive color model (RGB, for example) is converted to an output subtractive color model (CMYK, for example). This may be done using a color transformation table that converts RGB color data into CMYK color data.
However, current color transformation processes may produce unsatisfactory results. For example, often, the content of the color transformation from an additive model to a subtractive model is highly dependent on the output media formulation. For example, the color transformation may be dependent on fluid properties of the ink, the ink's reflective properties when printed on various substrates, and other inherent properties of the ink or toner. As a result, different cartridges, and different ink types may output different representations of input color. Additionally, the output device may rely on a number of color transform tables which can be large and take up valuable memory space.
Thus, the present disclosure describes a memory device, for example for use with, or disposed on a printer cartridge. The memory device contains a number of compressed color tables. While the attached description may refer to a single compressed color table, the memory device may contain a number of compressed color tables. A compressed color table comprises a losslessly compressed neutral axis. A number of nodes of the compressed color table correspond to a number of seed color table nodes. The compressed color table also comprises a number of delta nodes that correspond to delta values from a number of delta tables. The delta tables may indicate differences between interpolated color table nodes and corresponding actual color table nodes.
As described herein, the compressed color table stored on the memory device may allow for perceptually lossless compression of color tables at significant compression rates. Accordingly, the compressed color table may allow for lossy to lossless compression results while meeting the storage allocation of a memory device of a printer cartridge. In one example, the compressed color table preserves the neutral axis of the color table, which corresponds to those colors that are most susceptible to error perception by the human eye, thus increasing the overall quality of the compressed color table.
In one example, a memory device, that may be disposed on a printer cartridge, can be beneficial in that the color tables need not be disposed on a printer or other electronic device. The color table is optimized for the inks in the cartridge. For example, updates and adjustments to the color tables would not require pushing table updates via a printer program instruction or a printer driver update. Additionally, a memory device that comprises the compressed color table, affords greater flexibility and customization in the selection and use of various printer cartridges.
In the present specification and in the appended claims, the term “lossless compression,” or similar language, may include compression wherein the original data, may be reconstructed from the compressed data, such that the differences between the original data and the compressed data are imperceptible. More specifically, “digitally lossless compression” may include compression where there will be no digital difference between the original data and the compressed data and “perceptually lossless compression” may include compression where there may be digital differences between the original data and the compressed data, but the differences may not be visible to the consumer of the data. The neutral axis and the seed color table may be digitally losslessly compressed. Additionally, in the present specification, the term “lossy compression,” or similar language, may include compression wherein a portion of the original data is discarded during compression. As will be described below, the delta tables may be digitally lossless, perceptually lossless, or lossy.
Yet further, in the present specification and in the appended claims, the terms “seed color table,” “intermediate color table,” and “final color table” may include an initial, intermediate and final, or end-result, color table, respectively. In some examples, the seed color table may be a lower resolution color table, the intermediate color table may be a middle resolution color table, and the final color table may be a higher resolution color table. It should be noted that the final color table is different than the compressed color table. For example, the final color table is a high resolution color table that may not be compressed. By comparison, the compressed color table may be a high resolution color table that is compressed.
Yet further still, in the present specification and in the appended claims, the term “interpolated color table” or similar terminology may include a color table that comprises 1) a number of actual nodes that correspond to nodes from a lower resolution color table and 2) a number of interpolated nodes that are interpolated from the lower resolution color table using any mathematical interpolation method. The interpolated nodes may include interpolated node values.
By comparison, in the present specification, the term “seed/delta color table” or similar terminology may include a color table that comprises 1) a number of actual nodes that correspond to nodes from a lower resolution color table, 2) a number of delta nodes that are based on values from a delta table, the delta table reflecting differences between an actual color table and an interpolated version of the color table. From these differences node values may be reconstructed from the delta nodes during decompression.
Still further, in the present specification and in the appended claims, the term “neutral axis” may include a line extending from the origin of a three-dimensional color table to the node of the color table farthest from the origin. One of the origin node and the farthest node corresponds to the color white, and the other corresponds to the color black. Colors along the neutral axis may be referred to as “neutral colors,” “near-neutral colors,” or similar terminology and may be those colors where small differences or errors are most accurately discerned by the human eye. Accordingly, deviations along the neutral axis are more easily perceived by the human eye.
Lastly, as used in the present specification and in the appended claims, the term “a number of” or similar language may include any positive number comprising 1 to infinity; zero not being a number, but the absence of a number.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems, and methods may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described is included in at least that one example, but not necessarily in other examples.
A printer cartridge (103) may be used with an output device (102) to generate a physical output based on information received from an input device (101). For example, the printer cartridge (103) may be an ink cartridge that contains liquid ink for use with an inkjet printer. In another example, the printer cartridge (103) may be a toner cartridge that contains dry toner powder for use with a laser printer. As will be described below, the printer cartridge (103) may comprise a number of compressed color tables that convert an input device (101) color model to an output device (102) color model.
In some examples, a number of printer cartridges (103) may be used with an output device (102) to generate an output. For example, when used with an inkjet printer, multiple printer cartridges (103) may be used. More specifically, one printer cartridge (103) may include black ink and another printer cartridge (103) may include cyan, magenta and yellow ink. In another example, one printer cartridge (103) may include black ink, another printer cartridge (103) may include cyan ink, another printer cartridge (103) may include magenta ink, and another printer cartridge (103) may include yellow ink. Accordingly, each printer cartridge (103) may contain a number of compressed color tables corresponding to the ink colors included in the printer cartridge (103). While
As described above, the memory device (204) may store a number of compressed color tables (205) that transform received data from an input color model to an output color model. More specifically, a compressed color table (205) may specify the transformations of an input RGB model (such as sRGB, adobe RGB, scan RGB, for example) to an output CMYK model. While the present specification discusses the color transformation with regards to a three-dimensional RGB color model, the compressed color tables (205) may convert any number, and any type, of input color models into any number, and any type, of output color models. Examples of color models that may be converted include, but are not limited to, the Specifications for Web Offset Publications (SWOP) CMYK model, and the International Commission on Illumination (CIE) L*a*b* color model.
As will be described in more detail in connection with
Storing the compressed color table (205) on a memory device (204) either used with, or disposed on, a printer cartridge (103) may be beneficial in that it allows greater flexibility in output media customization. For example, updates to the color transformation may be distributed via the printer cartridges (103) as opposed to pushing printer program instructions or printer driver updates. Additionally, as the color transformation is heavily dependent on the ink or toner formulation, a more accurate representation of the input color model may be generated when the compressed color table (205) is stored on, and tailored to, a specific printer cartridge (103) rather than stored on an output device (
In general, a color table may be defined by the number of nodes along a particular axis. For example, a color table with five nodes along each axis may be referred to as a 5-cubed color table. By comparison, a color table with seventeen nodes along each axis may be referred to as a 17-cubed color table. The accuracy of the color transformation depends on the number of nodes of the color table. In some examples, the accuracy of the color transformation may be referred to as the resolution of the color table. For example, a 5-cubed color table generates a less accurate output representation of the input color model. This may also be referred to as a low-resolution color table. By comparison, a 17-cubed color table generates a more accurate output representation of the input color mode. This may be referred to as a high-resolution color table.
In some examples, the compressed color table (205) may be a high resolution color table. For example, the compressed color table (205) may consist of seventeen nodes (309) along each axis (306, 307, 308) of the cube. In another example, the compressed color table (205) may be a multi-resolution color table. More specifically, a number of nodes (309) may have an intermediate resolution, and a number of other nodes (309) may have a high resolution. For example, differences in vivid colors are less easily perceived by the human eye. Accordingly, nodes (309) corresponding to these vivid colors may have an intermediate resolution. By comparison, differences in “near-neutral” colors (i.e., colors close to a neutral axis of the cube) are more easily perceived by the human eye. Accordingly, nodes (309) corresponding to these near-neutral colors may have a higher resolution.
The compressed color table (205) may correspond to a particular media type. For example, particular paper types, or particular paper colors may have corresponding compressed color tables (205). For example, one compressed color table (205) may correspond to plain paper and another compressed color table (205) may correspond to thicker paper, such as company letterhead, or bond paper. In another example, different degrees of output quality may have different compressed color tables (205). For example, a “draft” quality may have one compressed color table (205), and a “best” quality may have a different compressed color table (205). In yet another example, different input devices (
A number of the nodes (309) of the compressed color table (205) may correspond to nodes of a seed color table. The seed color table may be a lower-resolution, and distinct, version of the compressed color table (205). For example, the compressed color table (205) may be a 17-cubed color table and the seed color table may be a 5-cubed color table.
A number of other nodes (309) of the compressed color table (205) may be delta nodes that correspond to a number of delta tables. An example of delta nodes is given as follows. According to an example, a seed color table may be a low resolution version of the compressed color table (205). For example, the seed color table may be a 5-cubed table. From this seed color table, an intermediate color table (a 9-cubed table, for example) may be interpolated using linear interpolation, tetrahedral interpolation, or any other type of interpolation. Interpolation may include generating a number of nodes unique to the intermediate color table. For example, a number of unique nodes may be interpolated by further dividing the planes of the seed color table. Accordingly, the interpolated intermediate color table may include 1) a number of nodes that correspond to the seed color table nodes and 2) a number of nodes that have been interpolated from the seed color table. The number of nodes that have been interpolated may be unique to the interpolated intermediate color table.
Regarding the nodes that are unique to the interpolated intermediate color table, the interpolated node values may be compared to node values of an actual (and not interpolated) intermediate color table, and the differences or “deltas” stored in a first delta table. From the first delta table and the seed color table, an intermediate “seed/delta” color table may be generated. As described above, the intermediate “seed/delta” color table may include 1) a number of nodes that correspond to the seed color table nodes and 2) a number of delta nodes that correspond to the first delta table.
The intermediate “seed/delta” color table may be different from the interpolated intermediate color table in that the interpolated intermediate color table includes a number of interpolated nodes while the intermediate “seed/delta” color table includes a number of delta nodes. The interpolated nodes including an interpolated node value and the delta nodes including a corresponding difference from the first delta table.
From this intermediate “seed/delta” color table, a final color table (a 17-cubed table, for example) may be interpolated using linear interpolation, tetrahedral interpolation, or any other type of interpolation. Interpolation may include generating a number of nodes unique to the final color table. For example, a number of unique nodes may be interpolated by further dividing the planes of the intermediate color table (the 9-cubed color table). As such, the interpolated final color table may include 1) a number of nodes that correspond to the seed color table nodes, 2) a number of nodes that correspond to the intermediate seed/delta color table and 3) a number of nodes that have been interpolated from the intermediate “seed/delta” color table. The number of nodes that have been interpolated may be unique to the interpolated final color table.
Regarding the nodes that are unique to the interpolated final color table, the interpolated final node values may be compared to node values of an actual (and not interpolated) final color table, and the differences or “deltas” stored in a second delta table. From the first delta table, the second delta table, and the seed color table, a compressed color table (205) may be generated. As described above, the compressed color table (205) may include 1) a number of nodes that correspond to the seed color table nodes, 2) a number of delta nodes that correspond to the number of delta tables. More specifically, the compressed color table (205) may include nodes corresponding to 1) the seed color table, 2) the first delta table indicating differences between an interpolated intermediate color table and an actual intermediate color table for those nodes in the intermediate color table and not the seed color table, and 3) the second delta table indicating differences between an interpolated final color table and an actual final color table for those nodes in the final color table and not the intermediate color table.
The compressed color table (205) may be different from the interpolated final color table in that the interpolated final color table includes a number of interpolated nodes while the compressed color table (205) includes a number of delta nodes. The interpolated nodes including an interpolated node value and the delta nodes including a value corresponding to a delta value from the second delta table.
The compressed color table (205) has a first level of compression by using the differences from the delta tables instead of actual colorant amounts for a number of nodes (309). The compressed color table (205) may have been further compressed by reducing a number of values in the delta tables. As described above, delta values may indicate the difference between an actual node value and an interpolated node value. In some examples, delta values may be reduced. For example, each delta value may be judged and potentially reduced based on colorimetry, perception, or a combination thereof. More specifically, each output colorant at each node, with its given delta, can be analyzed and a lower delta value in the delta table (a delta value closer to, or equal to zero, for example) can be assigned where the color difference is perceptually insignificant. An output colorant value for a node may be assigned that results in a lower delta value. For example, a colorant value (or amount) that gives a lower delta value may be greater or smaller than the default colorant value. In another example, the reduced values may be based on memory device (
Reduced delta values in the delta tables of the compressed color table (205) further decreases the size of the compressed color table (205) and allows the compressed color table (205) to be stored on small storage devices, such as the memory device (
A second level of compression is exhibited by the compressed color table (205) by representing a string of zero value entries in the delta tables as a length. For example, the first delta table and the second delta table may have significant repeating runs of zero delta entries. To efficiently represent data that will have many repeating zero entries, a most significant bit may indicate the beginning of a string of zero value entries. If that bit is set, the remaining bits define the number of zero delta entries. Representing a string of zero value entries may be understood as run length encoding. Representing a string of zero value entries with a most significant bit and remaining bits that indicate the string length may be beneficial in that it creates a distribution of data with low entropy that further compresses the compressed color table (205).
Another level of compression may be exhibited by the compressed color table (205) by delta tables that have been ordered in a way to improve compression. In a color table, the low chromatic input colors are more likely to generate non-zero entries in a delta table. By comparison, high chromatic input colors are more likely to generate low, or zero, delta table values. Accordingly, a delta table may be ordered from least chromatic to most chromatic color input. In such a delta table, entries that are most likely to be non-zero (the least chromatic colors) are grouped, and the entries that are most likely to have low or zero delta values (the most chromatic colors) are also grouped together. A delta table as described may have increased strings of zero value entries. A delta table that is arranged according to chromatic properties of the input colors may be beneficial in that it increases the size of zero-value runs and therefore is further compressed and has lower data entropy. While a delta table ordering based on chromatic color properties has been described, many other delta table orderings may be used. The particular delta table ordering may be based on ink properties or color table properties.
The reduced size, allows for the compressed color table (205) to be stored on the memory device (204), which as described is beneficial in that it allows for greater flexibility and customization in adjusting the color mappings. Additionally, a compressed color table (205) that comprises a number of nodes (309) that correspond to nodes of a seed color table increases the quality of the compressed color table (205) as the seed color table is less subject to entropy, thus increasing the compression amount of the compressed color table (205). It should be noted, that while 5-cubed, 9-cubed and 17-cubed versions of a color table have been indicated as seed, intermediate and final resolution values, any number and any resolution color table may be implemented as described above.
As described above, a lower resolution color table may be used to interpolate a higher resolution color table. For example, additional lines (411b), indicated as dashed lines, may further divide each axis of the color table. The intersection of a line (411b) of the second set with a line of the first set (411a) or a line of the second set (411b) may result in a second set of nodes (309b) that correspond to nodes based on the first delta table.
Similarly, additional lines (411c) indicated as dash-dot lines, may yet further divide each axis of the color table. The intersection of a line (411c) of the third set with any other line (411a, 411b, 411c) may result in a third set of nodes (309c) that correspond to nodes based on the second delta table. Accordingly, the nodes of the compressed color table (205) may include nodes (309a) that correspond to the seed color table, nodes (309b) that correspond to the first delta table, and nodes (309c) that correspond to the second delta table.
The compressed color table (205) also comprises a losslessly compressed neutral axis (510). More specifically, the losslessly compressed neutral axis (510) may be digitally lossless, which as described above, is a compression process in which no data is lost. Accordingly, the losslessly compressed neutral axis (510) may be a full-resolution neutral axis (510). As described above, changes to colors that fall along the neutral axis (510) are more easily detected by the human eye. Accordingly, it may be desirable to increase the resolution along the neutral axis (510) to increase the accuracy, or overall quality, of the compressed color table (205). In some examples, one of the origin node (309d), or the node (309e) farthest from the origin node (309d), represents the color black, while the other represents the color white. Including a losslessly compressed, or full resolution, neutral axis (510) is beneficial in that it enhances the accuracy of the color transformation, as it increases the resolution for those nodes (309) that are most likely to be noticed if they are different.
Additionally, the compressed color table (205) includes nodes (309b) that correspond to a number of delta tables. In other words, nodes that do not exist in the seed color table and do not exist in the losslessly compressed neutral axis (
The compressed color table (205) may also have been compressed using a traditional compression encoding scheme such as Lempel-Ziv-Welch (lzw) compression, Lempel-Ziv-Markov chain algorithm (lzma) compression, gzip, or other compression techniques.
A compressed data table (205) that comprises a number of nodes (309) that indicate the difference between an interpolated value and an actual value (Le., the delta tables) may be beneficial in that the size of the compressed data table (205) is reduced as just the differences are stored, rather than the actual amount of output colorant. One example of the compression rates for the compressed color table (205) is given in Table 1. Table 1 indicates the compression results for an example ink set, for printing on plain paper.
TABLE 1
Original
Run Length
Compression
Size
Run length
Encoding with
Compression
Level
(bytes)
Encoding
lzma Compression
Ratio
0 (lossless)
19652
10201
5207
3.8:1
1
19652
6134
3573
5.5:1
2
19652
4511
2807
7.0:1
3
19652
3550
2312
8.6:1
4
19652
2911
1965
10.1:1
5
19652
1936
1310
14.7:1
6
19652
1387
938
19.9:1
7 (no deltas)
19652
700
435
45.2:1
In Table 1, level 0 is a lossless compression. In other words there is no difference between the reconstructed data and the original data. At level 7, the first delta table and the second delta table are discarded.
The specification and figures describe a printer cartridge (
A memory device (
A compressed color table (
The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.
Ward, Jefferson P., Gondek, Jay S., Nichols, Stephen J.
Patent | Priority | Assignee | Title |
10165154, | Jul 08 2016 | Hewlett-Packard Development Company, L.P. | Color table compression |
10306111, | Nov 07 2016 | Purdue Research Foundation | Color table compression |
10341533, | Jul 08 2016 | Purdue Research Foundation | Color table compression |
10356285, | Jul 08 2016 | Hewlett-Packard Development Company, L.P. | Supply component comprising corrective data |
10498931, | Jul 08 2016 | Hewlett-Packard Development Company, L.P. | Printing device supply component |
10574862, | Jul 08 2016 | Hewlett-Packard Development Company, L.P. | Printing device supply component |
10602028, | Jul 08 2016 | Purdue Research Foundation | Color table compression |
10630868, | Jul 08 2016 | Hewlett-Packard Development Company, L.P.; Purdue Research Foundation | Component comprising a memory device including corrective data |
10674043, | Aug 07 2016 | Hewlett-Packard Development Company, L.P.; Purdue Research Foundation | Color table compression |
9992382, | Jul 08 2016 | Hewlett-Packard Development Company, L.P. | Color table compression |
Patent | Priority | Assignee | Title |
6519360, | Sep 17 1997 | Minolta Co., Ltd. | Image processing apparatus for comparing images based on color feature information and computer program product in a memory |
6992783, | Jul 02 1998 | Canon Kabushiki Kaisha | Image processing apparatus and method |
7009734, | Aug 22 2000 | Canon Kabushiki Kaisha | Method and apparatus for forming color transform lookup table, and image processing method |
7221473, | Aug 03 2001 | HEWLETT-PACKARD DEVELOPMENT COMPANY L P | Printing system for updating printing characteristics with a printing consumable |
20030025939, | |||
20050073731, | |||
20070080974, | |||
20070195342, | |||
20100085605, | |||
20100220926, | |||
20110299128, | |||
20130003089, | |||
20130093783, | |||
20130121574, | |||
CN1716120, | |||
JP2005269201, | |||
WO2006081253, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 25 2013 | GONDEK, JAY S | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036881 | /0125 | |
Jul 25 2013 | NICHOLS, STEPHEN J | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036881 | /0125 | |
Jul 29 2013 | WARD, JEFFERSON P | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036881 | /0125 | |
Jul 31 2013 | Hewlett-Packard Development Company, L.P. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
May 15 2020 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 20 2024 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 11 2020 | 4 years fee payment window open |
Oct 11 2020 | 6 months grace period start (w surcharge) |
Apr 11 2021 | patent expiry (for year 4) |
Apr 11 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 11 2024 | 8 years fee payment window open |
Oct 11 2024 | 6 months grace period start (w surcharge) |
Apr 11 2025 | patent expiry (for year 8) |
Apr 11 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 11 2028 | 12 years fee payment window open |
Oct 11 2028 | 6 months grace period start (w surcharge) |
Apr 11 2029 | patent expiry (for year 12) |
Apr 11 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |