aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/SideChains/Colourful/Implementation/RGB/ICompanding.cs
blob: f170307f1330b01e1578e1093251aeec2d0b8faf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
namespace Colourful.Implementation.RGB
{
    /// <summary>
    /// Pair of companding functions for <see cref="IRGBWorkingSpace" />.
    /// Used for conversion to XYZ and backwards.
    /// See also: <seealso cref="IRGBWorkingSpace.Companding" />
    /// </summary>
    public interface ICompanding
    {
        /// <summary>
        /// Companded channel is made linear with respect to the energy.
        /// </summary>
        /// <remarks>
        /// For more info see:
        /// http://www.brucelindbloom.com/index.html?Eqn_RGB_to_XYZ.html
        /// </remarks>
        double InverseCompanding(double channel);

        /// <summary>
        /// Uncompanded channel (linear) is made nonlinear (depends on the RGB color system).
        /// </summary>
        /// <remarks>
        /// For more info see:
        /// http://www.brucelindbloom.com/index.html?Eqn_XYZ_to_RGB.html
        /// </remarks>
        double Companding(double channel);
    }
}