[Okular-devel] [Bug 286440] New: Accessibility color changes produce less readable text with anti-aliased text
Jörg Walter
trouble at garni.ch
Sat Nov 12 19:17:30 UTC 2011
https://bugs.kde.org/show_bug.cgi?id=286440
Summary: Accessibility color changes produce less readable text
with anti-aliased text
Product: okular
Version: 0.13.2
Platform: Ubuntu Packages
OS/Version: Linux
Status: NEW
Severity: normal
Priority: NOR
Component: general
AssignedTo: okular-devel at kde.org
ReportedBy: trouble at garni.ch
Version: 0.13.2 (using KDE 4.7.2)
OS: Linux
When using the accessibility options to invert / change text colors,
anti-aliased text gets less readable. Especially the "good" PDFs that are not
bi-level scanned papers but actual computer-produced text PDFs get a lot less
readable. Combine that with italic fonts, small subscript letters and thin
lines widely used in algebraic formulae, the result sometimes is even harder
to read than the original.
This may be a result of the perceptual nonlinearity of such transformations. If
this was done in linear space instead of perceptual, it looks way better.
Something along these lines:
f(x) = (x/255)^gamma * 255
f-1(x) = (x/255)^1/gamma * 255
invert(x) = f(255-f-1(x))
instead of invert(x) = 255-x (for 8 bit per channel, obviously)
Something similar would be needed for the option to change light/dark colors,
especially if using a "dark" color that is brighter than the "light" color.
A gamma value of 2 would not be entirely correct, but would be easy to
calculate: f(x) = x*x/255 and f-1(x) = sqrt(x)*sqrt(255). Simulating this in
gimp is easy:
1. Open a suitable PDF in Okular. I used page 6 of
http://www.abiezzi.com/Salim/publications/Docs/NEWBASIS.pdf and page 16 of the
on-topic document http://www.poynton.com/PDFs/Rehabilitation_of_gamma.pdf
2. Select and copy a rectangle to the clipboard at any chosen view size. I used
"fit to width" with Okular at 1/2 screen width, as this is my most common
viewing situation.
3. Paste it in gimp, make sure to have zoom at 100% so that gimp doesn't
introduce any more anti-aliasing
4. Use Colors/Invert (this is the reference layer - inversion as Okular does
it)
5. Paste the same image as new layer
6. Use Colors/Levels and enter a gamma value of .5
7. Use Colors/Invert (this is inversion in linear space)
8. Use Colors/Levels and enter a gamma value of 2
9. Paste the same image as new layer
10. Use the Layers dialog to switch between the three layers and compare which
one looks
more readable.
To evaluate the image quality, in the first PDF compare the brightness of
letters with diagonals, like "w" with letters like "n" from a large distance or
with squinted eyes. In the original, w and n have similar darkness, maybe w is
a bit darker. In the non-gamma-corrected inversion, w looks noticeably fainter
than n. In the proposed inversion, w again matches n. In test images created
from the second PDF, you can easily see that naive inversion creates a very
non-uniform brightness of text blocks, while the gamma-corrected method keeps a
uniform brightness.
This can be repeated for various other gamma levels, like the human subjective
gamma of 1.25 (with the inverse of 0.8) that Poynton mentions.
Given Poynton's explanations and these tests, the gamma value of 2 probably
isn't correct at all, but it leads to fast calculation and a big visual
improvement of text. IMO there is no need for a more elaborated scheme, as the
main purpose, improving readability and overall quality, is met.
Reproducible: Always
Steps to Reproduce:
Use the accessibility settings to display a text PDF with inverted colors or
custom colors, where "dark" is brighter than "light".
Actual Results:
Overall text brightness becomes less uniform, letters vary more in their
weight. Additionally, the text looks fainter than the original.
Expected Results:
Relative brightness should be as in the original, as this aspect is an
important point of typography's readability goals. It should not become harder
to read text.
OS: Linux (x86_64) release 3.0.0-12-generic
Compiler: gcc
--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the Okular-devel
mailing list