All of lore.kernel.org
 help / color / mirror / Atom feed
From: Solomon Peachy <pizza@shaftnet.org>
To: Till Kamppeter <till.kamppeter@gmail.com>
Cc: "printing-architecture@lists.linux-foundation.org"
	<printing-architecture@lists.linux-foundation.org>,
	Jay Berkenbilt <ejb@ql.org>, Vikrant Malik <vikrant@iitk.ac.in>
Subject: Re: [Printing-architecture] Make use of extended color spaces on IPP printers
Date: Sat, 8 May 2021 21:38:13 -0400	[thread overview]
Message-ID: <YJc9BYPyXoSyi8X/@shaftnet.org> (raw)
In-Reply-To: <54eda145-936b-a920-b645-66a104b23ad4@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2910 bytes --]

On Sun, May 09, 2021 at 12:45:53AM +0200, Till Kamppeter wrote:
> 5. In filters where the input is raster or an image, pass it on in ts
> original color depth and color space, only convert if the printer does not
> support the color depth/space or the user wants to print in grayscale.
> Especially we also do not want to convert 8-bit input to 16-bit (if the
> printer supports both) or sRGB input to AdobeRGB as this does not improve
> the output quality.

It's worth considering that using 16bpp has benefits if any intermediate 
processing is done due to stacked quantization errors, even if the final 
sent-to-the-printer output is only 8bpp.  As for colorspace... that's 
more complicated.

> 7. As the PPD generator does not add choices for the extended color modes to
> the ColorModel option (see (1)) we need to somehow add the info of how to
> upgrade the color depth and color space for print-quality=high in (3) and
> which is the highest color depth/space supported by the printer for (5). So
> we let the PPD generator add a line like "*cupsHighQuality: 16bit,AdobeRGB"
> (exact content depends on what the printer supports).

It is is mistake to think about colorspace conversions in terms of 
"print quality" and as such something that can be "upgraded". Instead, 
one should think about it in terms of "correctness".

For example, the "T-Mobile Magenta" color is [226,0,116] in 8-bit sRGB, 
but might be [215,0,123] in 8-bit AdobeRGB, or [200,10,135] on the 
GruntMaster6000 printer on my desk.

If we're not absolutely sure [1] about the source colorspace (and the 
destination colorspace) it is logically impossible to "correctly" 
transform it.  The only sane thing to do is leave it completely alone.

If we _do_ know the source and destination colorspaces, we can (must?) 
transform from one to the other to ensure the colors are as correct as 
possible. I say "as possible" because this conversion is nearly always 
lossy: (1) there may be colors that the destination cannot represent, 
and (2) quantization step differences mean you might not be able to 
represent the exact shade you want.

Additionally, if the data is transformed from one colorspace to another, 
all associated metadata/attributes/etc *must* be updated correctly to 
reflect this.  Gotta keep ourselves internally consistent...

Anyway..

[1] Typically this means the source has been _explicitly_ tagged with 
    its corresponding ICC profile. In the case of PWG raster, this 
    means only "sRGB" and "AdobeRGB", as the others are device-dependent 
    and as such are meaningless without an ICC profile to tell us how to 
    interpret the values.

 - Solomon
-- 
Solomon Peachy			      pizza at shaftnet dot org (email&xmpp)
                                      @pizza:shaftnet dot org   (matrix)
High Springs, FL                      speachy (freenode)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2021-05-09  1:38 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-27 17:46 [Printing-architecture] Human-readable strings for standard IPP options/choices/attributes/propertirs Till Kamppeter
2021-04-27 18:02 ` Michael Sweet
2021-04-27 18:10   ` Till Kamppeter
2021-04-28  8:17   ` Till Kamppeter
2021-04-28 11:43     ` Michael Sweet
2021-05-07 18:52       ` [Printing-architecture] Make use of extended color spaces on IPP printers Till Kamppeter
2021-05-07 19:53         ` Michael Sweet
2021-05-07 22:11           ` Till Kamppeter
2021-05-08  0:04             ` Michael Sweet
2021-05-08 23:52             ` Solomon Peachy
2021-05-09  1:24               ` Michael Sweet
2021-05-09  2:24                 ` Solomon Peachy
2021-05-09  2:54                   ` Michael Sweet
2021-05-09  8:20                     ` Till Kamppeter
2021-05-09 13:41                       ` Michael Sweet
2021-05-09 14:03                         ` Solomon Peachy
2021-05-09 20:32                           ` Michael Sweet
2021-05-09 19:26                         ` Till Kamppeter
2021-05-09 20:34                           ` Michael Sweet
2021-05-09 20:43                             ` Till Kamppeter
2021-05-09 21:03                               ` Michael Sweet
2021-05-08 22:45           ` Till Kamppeter
2021-05-09  1:38             ` Solomon Peachy [this message]
2021-05-09  9:20               ` Till Kamppeter
2021-05-09 13:49                 ` Michael Sweet
2021-05-09 20:14                   ` Till Kamppeter
2021-05-09 20:55                     ` Michael Sweet
2021-05-09 21:31                       ` Till Kamppeter
2021-05-10  1:08                         ` Michael Sweet
2021-05-27 18:04                   ` Till Kamppeter
2021-05-27 19:04                     ` Solomon Peachy
2021-05-28 12:59                     ` Michael Sweet
2021-05-29 19:19                       ` Till Kamppeter
2021-05-29 22:32                         ` Michael Sweet
2021-05-30 19:56                           ` Till Kamppeter
2021-05-30 20:53                             ` Michael Sweet
2021-05-30 21:50                               ` Till Kamppeter
2021-05-31  3:12                                 ` Michael Sweet
     [not found]                                   ` <d5082b23-8eb7-be84-db5c-42bdde3ba5ac@canonical.com>
2021-05-31 13:24                                     ` Michael Sweet
2021-05-31 15:03                                       ` Till Kamppeter
2021-05-31 18:13                                         ` Michael Sweet
2021-05-31 19:38                                           ` Till Kamppeter
2021-06-01  0:54                                             ` Michael Sweet
2021-05-25 17:43         ` Till Kamppeter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YJc9BYPyXoSyi8X/@shaftnet.org \
    --to=pizza@shaftnet.org \
    --cc=ejb@ql.org \
    --cc=printing-architecture@lists.linux-foundation.org \
    --cc=till.kamppeter@gmail.com \
    --cc=vikrant@iitk.ac.in \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.