Description
Is your feature request related to a problem? Please describe.
Video software tends to have an "RGB Parade" and "Vectorscope". Would these be useful for darktable? They would provide alternate ways to visualize color/lightness data besides the regular and waveform histogram.
Describe the solution you'd like
An "RGB Parade" would be trivial to implement as a generalization to the current waveform histogram code. There would be no changes needed to the pixelpipe math, only an additional type of drawing in libs/histogram.c
. It should be fast to draw.
A Vectorscope would require more code in develop/pixelpipe_hb.c
and would use a bit more memory for a buffer. It would involve adding a bit of code to libs/histogram.c
. The polar coordinate math wouldn't be too slow so long as the scope was somewhat lo-res. It should be fast to draw once the color counts are calculated out to a buffer.
With that many histogram/scope alternatives, it would make sense to add keyboard accelerators to choose a specific scope, or to cycle through scopes.
The current histogram widget is a bit squashed for waveforms (or rgb parade), much less a circular vectorscope. It might make sense to allow the widget to resize vertically via the GUI, or to make it automatically resize depending on its contents.
I'd be happy to work on an RGB parade or vectorscope if it were of interest and there was some clarity about a good design.
Alternatives
The waveform histogram already has essentially the same data as an RGB parade, though it may take selecting/deselecting color channels to understand how a particular channel works.
A vectorscope came up in #2140 as a way to visualize how to balance color. It's possible that a home for a vectorscope would be in some sort of interactive color balancing iop, rather than in the histogram widget. Though I'd imagine the readout would be useful as a reference when using a variety of iops.
I'm also curious about whether a "power editor" would want to see multiple scopes at once, e.g. both waveform and vectorscope.
Additional context
Some articles about using scopes:
- https://www.cinema5d.com/primary-colour-correction/
- https://waondering.com/2015/05/18/continuity-of-colors-matching-exposure-and-color-balance/
- https://www.premiumbeat.com/blog/rgb-parade/
- https://www.bhphotovideo.com/explora/video/tips-and-solutions/introduction-waveforms-scopes-and-exposure
- https://thevideoproguys.com/read-histogram-vectorscope-color-correcting-tools/
There appears to be vectorscope code in qctools (https://github.com/bavc/qctools/wiki/Vectorscope). This could be helpful as a model.
I'm unclear if YUV is the standard/only vectorscope color model, or if there is one which is more preferred/useful as so much has happened since analog TV. I'm also not certain if the primary/secondary color targets on the vectorscope are that useful for photographers, except as a guidance to orient their sense of the graph.
There is also even more esoteric scopes, such as YC Waveform and YCbCr Parade. It would be interesting to hear if anyone has substantial experience with these, RGB parade, or vectorscope, and has a vision of how they might or might not be useful.