iosvideometalvideo-editingimage-editing

Right sequence of applying Color Adjustments to Image


I am working on Video Editing application for iOS powered with Metal. I'm implementing Filters and Adjustments for Videos and Images. For now I have all appropriate shaders to change Video's or Image's brightness, exposure, contrast, saturation, hue and vibrance. The part I do not understand is the right order to apply adjustments, because the final result depends on the order (and the results are very different).

For example should I apply

Brightness -> Exposure -> Contrast -> Saturation

or

Exposure -> Contrast -> Brightness -> Saturation

or any other order?

I cannot find any resource online that can clarify the right sequence of applying adjustments. If there is any sequence that is considered right, what it is, and why?

Thanks.


Solution

  • When making image adjustment it's important to avoid R, G, and/or B values of pixels to clip at 0 (left side) or 255 (right side). In an RGB histogram this can be seen as a high spike at 0 and/or 255.

    Let's see what four adjustments you mentioned do with the histogram roughly. I describe only a positive adjustment (the negative is simply the reverse).

    Note that especially exposure and contrast adjustments have overlapping effects and that brightness does similar things as well.

    Based on the above (and my experience as a photographer plus having built the image processing pipeline of the Lapse app), I'd say that to get the best results you should:

    As you can see, which adjustment you apply depends on the image. And, there are many many more adjustments that, when combined, can result on almost the same end result.

    Personally I hardly use brightness when I edit images manually.

    For some more background on histograms and image adjustments have a look at these fabulous articles from Cambridge in Colour:

    And, there's a whole list of related ones.