Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manipulate gamma ramp for non color server case #34

Closed
beku opened this issue Feb 18, 2018 · 2 comments
Closed

Manipulate gamma ramp for non color server case #34

beku opened this issue Feb 18, 2018 · 2 comments

Comments

@beku
Copy link
Member

beku commented Feb 18, 2018

Support non GPU setups:

  • detect color server is not running on the GPU - check _ICC_COLOR_DESKTOP root window atom / oydiColorServerActive()
  • dump device link for a particular monitor, including effects, simulation ...
  • convert a gray ramp using the device link
  • embed the altered gray ramp into a VCGT
    • along the original VCGT, for recovering
    • write a profile
    • icc-examin should contain already some VideoCardGammaTable code
  • integrate into oyranos-monitor-white-point
    • call xcalib with the VCGT profile
  • publish Invert, Brighten, Darken, ... ICC effect profile

More details and ideas in the original xcalib issue:
OpenICC/xcalib#4

beku added a commit to compiz-reloaded/compicc that referenced this issue Feb 19, 2018
The bug appeared in preparation of the xcalib -i -a  effect simulation
inside oyranos-monitor.

oyranos-cms/oyranos#34
OpenICC/xcalib#4
@beku
Copy link
Member Author

beku commented Feb 19, 2018

Conversions will apply to both a global gamma ramp system like traditional 1D LUTs and ICC conversions in some applications. Thus care must be taken to not mix them and result in no double conversions, like double invert or double white point adjustments.
Split the effect profiles, which are solely contrast based / curves, like invert, brighten, dim or black n white + reddish and white point adjustment, to become candidates for linear ramp manipulations.
All other effects, like grayer, sepia or disability simulations etc., should only be applied only to full ICC conversions.

Add to the effect a meta attribute

  • EFFECT_class="...,linear,..."
  • EFFECT_linear="yes"

beku added a commit that referenced this issue Feb 21, 2018
Thus they can be used for 1D VCGT conversions and should be ignored in
double conversion situations.

see as well:
Manipulate gamma ramp for non color server case #34
#34
beku added a commit that referenced this issue Feb 21, 2018
The new option is state dependent. Use typical:
$ oyranos-monitor -cf vcgt -d 0 -o vcgt.icc
It allows to alter a contained vcgt tag to obtain additional white point and
possibly effect information inside the new video card gamma table. Oyranos
uses xcalib for VCGT setting.

Here is the complete sequence:
1. detect if a XCM color server is active
1.1. stop if XCM_COLOR_SERVER_MANAGEMENT is active
2. get user effect profile and display white point effect
2.1. get effect profile and decide if it can be embedded into a VGCT tag
     pick the oyPROFILE_EFFECT
     accept if it contains EFFECT_linear=yes meta information
2.2. get the display white point effect
     it is a actual monitor wtpt to oyBEHAVIOUR_DISPLAY_WHITE_POINT
     set as display.icc_profile.abstract.white_point.automatic option
3. extract a existing VCGT
4. create conversion, fill ramp and convert
5. mix the two ramps
6. create a new VCGT tag and exchange the tag
7. write the profile

Hint:
The target white point needs to be previously set in order to see an effect
in the vcgt tag:
$ oyranos-monitor-white-point -ma 3000

see as well:
Manipulate gamma ramp for non color server case #34
#34
@beku
Copy link
Member Author

beku commented Feb 22, 2018

The oyranos-monitor-white-point code path and the effect profile sections are covered
in #36 and #35 .
So this one is almost done and obsolete.

@beku beku closed this as completed Feb 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant