aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--LIBCOLOUR_CIE1960UCS.767
-rw-r--r--LIBCOLOUR_CIELAB.770
-rw-r--r--LIBCOLOUR_CIELUV.777
-rw-r--r--LIBCOLOUR_CIEUVW.774
-rw-r--r--LIBCOLOUR_CIEXYY.764
-rw-r--r--LIBCOLOUR_CIEXYZ.765
-rw-r--r--LIBCOLOUR_SRGB.775
-rw-r--r--LIBCOLOUR_YCGCO.761
-rw-r--r--LIBCOLOUR_YDBDR.764
-rw-r--r--LIBCOLOUR_YIQ.765
-rw-r--r--LIBCOLOUR_YPBPR.766
-rw-r--r--LIBCOLOUR_YUV.764
-rw-r--r--Makefile28
13 files changed, 837 insertions, 3 deletions
diff --git a/LIBCOLOUR_CIE1960UCS.7 b/LIBCOLOUR_CIE1960UCS.7
new file mode 100644
index 0000000..95dff79
--- /dev/null
+++ b/LIBCOLOUR_CIE1960UCS.7
@@ -0,0 +1,67 @@
+.TH LIBCOLOUR_CIE1960UCS 7 libcolour
+.SH NAME
+LIBCOLOUR_CIE1960UCS - CIE 1960 UCS
+.SH DESCRIPTION
+CIE 1960 UCS
+colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_cie1960ucs_f libcolour_cie1960ucs_f_t;\fP
+ \fBtypedef struct libcolour_cie1960ucs_lf libcolour_cie1960ucs_lf_t;\fP
+ \fBtypedef struct libcolour_cie1960ucs_llf libcolour_cie1960ucs_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_cie1960ucs_f
+is defined as
+.nf
+
+ \fBstruct libcolour_cie1960ucs_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIu\fP\fB;\fP
+ \fBfloat\fP \fIv\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_CIE1960UCS .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .cie1960ucs
+is used for CIE 1960 UCS colours.
+.P
+.IR .u ,
+.IR .v ,
+and
+.I .Y
+hold the u, v, and, Y (luma) values.
+.P
+Y is 0 in black and 1 in white.
+u is defined as 4X / (X + 15Y + 3Z), and
+v is defined as 6X / (X + 15Y + 3Z), where
+X, Y, and Z are CIE 1931 XYZ values.
+.P
+The Y value is not part of CIE 1960 UCS,
+but is added, and borrowed from CIE 1931 XYZ
+and CIE xyY, so that colours of all lumas
+can be specified.
+.P
+CIE 1960 UCS is not additive.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_CIELAB.7 b/LIBCOLOUR_CIELAB.7
new file mode 100644
index 0000000..853a04f
--- /dev/null
+++ b/LIBCOLOUR_CIELAB.7
@@ -0,0 +1,70 @@
+.TH LIBCOLOUR_CIELAB 7 libcolour
+.SH NAME
+LIBCOLOUR_CIELAB - CIE L*a*b*
+.SH DESCRIPTION
+CIE L*a*b*
+colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_cielab_f libcolour_cielab_f_t;\fP
+ \fBtypedef struct libcolour_cielab_lf libcolour_cielab_lf_t;\fP
+ \fBtypedef struct libcolour_cielab_llf libcolour_cielab_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_cielab_f
+is defined as
+.nf
+
+ \fBstruct libcolour_cielab_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIL\fP\fB;\fP
+ \fBfloat\fP \fIa\fP\fB;\fP
+ \fBfloat\fP \fIb\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_CIELAB .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .cielab
+is used for CIE L*a*b* colours.
+.P
+.IR .L ,
+.IR .a ,
+and
+.I .b
+hold the L*, a*, and b* values, respectively.
+.P
+L* is 0 in black and 100 in white.
+Negative a* values are green,
+positive a* values are red.
+Negative b* values are blue,
+positive b* values are yellow.
+.P
+CIE L*a*b* is not additive, since conversion from
+CIE 1931 XYZ is non-linear. It’s white point is the
+CIE Standard Illuminant D50.
+.P
+CIE L*a*b* approximates human colour perception with a
+lightness parameter (L*) and two chromaticity parameters
+(a* and b*), it is therefore useful in image
+manipulation applications.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_CIELUV.7 b/LIBCOLOUR_CIELUV.7
new file mode 100644
index 0000000..24d5d88
--- /dev/null
+++ b/LIBCOLOUR_CIELUV.7
@@ -0,0 +1,77 @@
+.TH LIBCOLOUR_CIELUV 7 libcolour
+.SH NAME
+LIBCOLOUR_CIELUV - CIE 1976 (L*, u*, v*)
+.SH DESCRIPTION
+CIE 1976 (L*, u*, v*) (also known simply as CIE L*u*v*)
+colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_cieluv_f libcolour_cieluv_f_t;\fP
+ \fBtypedef struct libcolour_cieluv_lf libcolour_cieluv_lf_t;\fP
+ \fBtypedef struct libcolour_cieluv_llf libcolour_cieluv_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_cieluv_f
+is defined as
+.nf
+
+ \fBstruct libcolour_cieluv_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIL\fP\fB;\fP
+ \fBfloat\fP \fIu\fP\fB;\fP
+ \fBfloat\fP \fIv\fP\fB;\fP
+ \fBstruct libcolour_ciexyz\fP \fIwhite\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_CIELUV .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .cieluv
+is used for CIE L*u*v* colours.
+.P
+.IR .L ,
+.IR .u ,
+and
+.I .v
+hold the L*, u*, and v* values, respectively, and
+.I .white
+holds the white point.
+.P
+L* is 0 in black and 100 in white.
+.P
+The call
+.BI libcolour_proper(& c )
+on a
+.B struct libcolour_cieluv_t
+.I c
+sets
+.I c.white.model
+to
+.BR LIBCOLOUR_CIEXYZ .
+Zero is always returned in this case.
+.P
+CIE L*u*v* is not additive, since conversion from
+CIE 1931 XYZ is non-linear.
+.P
+CIE 1976 (L*, u*, v*) approximates
+uniform human colour perception.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_CIEUVW.7 b/LIBCOLOUR_CIEUVW.7
new file mode 100644
index 0000000..6cb42af
--- /dev/null
+++ b/LIBCOLOUR_CIEUVW.7
@@ -0,0 +1,74 @@
+.TH LIBCOLOUR_CIEUVW 7 libcolour
+.SH NAME
+LIBCOLOUR_CIEUVW - CIE 1964 (U*, V*, W*)
+.SH DESCRIPTION
+CIE 1964 (U*, V*, W*) (also known simply as CIE UVW)
+colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_cieuvw_f libcolour_cieuvw_f_t;\fP
+ \fBtypedef struct libcolour_cieuvw_lf libcolour_cieuvw_lf_t;\fP
+ \fBtypedef struct libcolour_cieuvw_llf libcolour_cieuvw_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_cieuvw_f
+is defined as
+.nf
+
+ \fBstruct libcolour_cieuvw_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIU\fP\fB;\fP
+ \fBfloat\fP \fIV\fP\fB;\fP
+ \fBfloat\fP \fIW\fP\fB;\fP
+ \fBfloat\fP \fIu0\fP\fB;\fP
+ \fBfloat\fP \fIv0\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_CIEUVW .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .cieuvw
+is used for CIE 1964 (U*, V*, W*) colours.
+.P
+.IR .U ,
+.IR .V ,
+.IR .W ,
+.IR .u0 ,
+and
+.I .v0
+hold the U*, V*, W*, u\(aq chromaticity coordinate of a
+\(dqspecified white object\(dq and, v\(aq chromaticity
+coordinate of a \(dqspecified white object\(dq, respectively.
+.P
+.I .u0
+and
+.I .v0
+are not part of the colour, but rather part of the colour space.
+.P
+Y is 0 in black and 1 in white.
+u\(aq is defined as 4X / (X + 15Y + 3Z), and
+v\(aq is defined as 9X / (X + 15Y + 3Z), where
+X, Y, and Z are CIE 1931 XYZ values of the
+\(dqspecified white object\(dq.
+.P
+CIE 1964 (U*, V*, W*) is not additive.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_CIEXYY.7 b/LIBCOLOUR_CIEXYY.7
new file mode 100644
index 0000000..989b170
--- /dev/null
+++ b/LIBCOLOUR_CIEXYY.7
@@ -0,0 +1,64 @@
+.TH LIBCOLOUR_CIEXYY 7 libcolour
+.SH NAME
+LIBCOLOUR_CIEXYY - CIE xyY
+.SH DESCRIPTION
+CIE xyY colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_ciexyy_f libcolour_ciexyy_f_t;\fP
+ \fBtypedef struct libcolour_ciexyy_lf libcolour_ciexyy_lf_t;\fP
+ \fBtypedef struct libcolour_ciexyy_llf libcolour_ciexyy_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_ciexyy_f
+is defined as
+.nf
+
+ \fBstruct libcolour_ciexyy_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIx\fP\fB;\fP
+ \fBfloat\fP \fIy\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_CIEXYY .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .ciexyy
+is used for CIE xyY colours.
+.P
+.IR .x ,
+.IR .y ,
+and
+.I .Y
+hold the unscaled x, y, and Y values, respectively.
+.P
+CIE xyY is not additive, nor is it linearily
+isomorphic to CIE 1931 XYZ. Rather, it is defined by
+x = X/(X + Y + Z), y = Y/(X + Y + Z), where X, Y, and
+Z are the CIE 1931 XYZ values (with the same names)
+for the same colour. The value Y is the same in both
+colour models.
+.P
+This colour model is derived from CIE 1931 XYZ and
+is primarily used for representing chromaticities.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_CIEXYZ.7 b/LIBCOLOUR_CIEXYZ.7
new file mode 100644
index 0000000..cb5cd31
--- /dev/null
+++ b/LIBCOLOUR_CIEXYZ.7
@@ -0,0 +1,65 @@
+.TH LIBCOLOUR_CIEXYZ 7 libcolour
+.SH NAME
+LIBCOLOUR_CIEXYZ - CIE 1931 XYZ
+.SH DESCRIPTION
+CIE 1931 XYZ (also known simply as CIE XYZ)
+colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_ciexyz_f libcolour_ciexyz_f_t;\fP
+ \fBtypedef struct libcolour_ciexyz_lf libcolour_ciexyz_lf_t;\fP
+ \fBtypedef struct libcolour_ciexyz_llf libcolour_ciexyz_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_ciexyz_f
+is defined as
+.nf
+
+ \fBstruct libcolour_ciexyz_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIX\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fBfloat\fP \fIZ\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_CIEXYZ .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .ciexyz
+is used for CIE 1931 XYZ colours.
+.P
+.IR .X ,
+.IR .Y ,
+and
+.I .Z
+hold the unscaled X, Y, and Z values, respectively.
+.P
+CIE 1931 XYZ is additive, since it is linearly
+isomorphic to CIE 1931 RGB, which is additive because
+it is an RGB colour space.
+.P
+This colour model is derived from CIE 1931 RGB and is
+used as an intermediary representation when converting
+between many colour spaces and colour models, making
+it very useful for device independent colour
+representation.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_SRGB.7 b/LIBCOLOUR_SRGB.7
new file mode 100644
index 0000000..fd6f819
--- /dev/null
+++ b/LIBCOLOUR_SRGB.7
@@ -0,0 +1,75 @@
+.TH LIBCOLOUR_SRGB 7 libcolour
+.SH NAME
+LIBCOLOUR_SRGB - Standard RGB
+.SH DESCRIPTION
+sRGB colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_srgb_f libcolour_srgb_f_t;\fP
+ \fBtypedef struct libcolour_srgb_lf libcolour_srgb_lf_t;\fP
+ \fBtypedef struct libcolour_srgb_llf libcolour_srgb_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_srgb_f
+is defined as
+.nf
+
+ \fBstruct libcolour_srgb_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIR\fP\fB;\fP
+ \fBfloat\fP \fIG\fP\fB;\fP
+ \fBfloat\fP \fIB\fP\fB;\fP
+ \fBint\fP \fIwith_transfer\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_SRGB .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .srgb
+is used for sRGB colours.
+.P
+.IR .R ,
+.IR .G ,
+and
+.I .B
+hold the red, green, and blue values, respectively,
+and shall have a value between 0 and 1, inclusively,
+for the colour to be in gamut.
+.I .with_transfer
+shall be set to a non-zero value if the sRGB transfer
+function (\(dqgamma function\(dq) is applied, and zero
+otherwise, meaning colours are linearly encoded.
+.P
+The RGB color model, of which sRGB is a specific colour
+space, is an additive colour model, that is, without a
+transfer function applied, linearily isomorphic to
+CIE 1931 XYZ.
+.P
+This is the colour model and colour space normally
+used on computers, it is however not the colour space
+your monitor have, although it is close to it. sRGB
+is designed after the human eye, but fails to take
+into account how the brain process the input to figure
+out which colour it actually receives.
+.SH SEE ALSO
+.BR libcolour (7),
+.BR libcolour_srgb_encode (3),
+.BR libcolour_srgb_decode (3)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_YCGCO.7 b/LIBCOLOUR_YCGCO.7
new file mode 100644
index 0000000..095cb0a
--- /dev/null
+++ b/LIBCOLOUR_YCGCO.7
@@ -0,0 +1,61 @@
+.TH LIBCOLOUR_YCGCO 7 libcolour
+.SH NAME
+LIBCOLOUR_YCGCO - YCgCo
+.SH DESCRIPTION
+YCgCo colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_ycgco_f libcolour_ycgco_f_t;\fP
+ \fBtypedef struct libcolour_ycgco_lf libcolour_ycgco_lf_t;\fP
+ \fBtypedef struct libcolour_ycgco_llf libcolour_ycgco_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_ycgco_f
+is defined as
+.nf
+
+ \fBstruct libcolour_ycgco_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fBfloat\fP \fICg\fP\fB;\fP
+ \fBfloat\fP \fICo\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_YCGCO .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .ycgco
+is used for YCgCo colours.
+.P
+.IR .Y ,
+.IR .Cg ,
+and
+.I .Co
+hold the Y (luma), Cg (chrominance green), and
+Co (chrominance orange) values, respectively.
+.P
+Y is 0 in black and 1 in white.
+.P
+YCgCo is additive, since it is linearly isomorphic
+to CIE 1931 XYZ. It's white point is the
+CIE Standard Illuminant D65.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_YDBDR.7 b/LIBCOLOUR_YDBDR.7
new file mode 100644
index 0000000..6281813
--- /dev/null
+++ b/LIBCOLOUR_YDBDR.7
@@ -0,0 +1,64 @@
+.TH LIBCOLOUR_YDBDR 7 libcolour
+.SH NAME
+LIBCOLOUR_YDBDR - YDbDr
+.SH DESCRIPTION
+YDbDr colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_ydbdr_f libcolour_ydbdr_f_t;\fP
+ \fBtypedef struct libcolour_ydbdr_lf libcolour_ydbdr_lf_t;\fP
+ \fBtypedef struct libcolour_ydbdr_llf libcolour_ydbdr_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_ydbdr_f
+is defined as
+.nf
+
+ \fBstruct libcolour_ydbdr_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fBfloat\fP \fIDb\fP\fB;\fP
+ \fBfloat\fP \fIDr\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_YDBDR .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .ydbdr
+is used for YDbDr colours.
+.P
+.IR .Y ,
+.IR .Db ,
+and
+.I .Dr
+hold the Y (luma), Db, and Dr values, respectively.
+.P
+Y is 0 in black and 1 in white.
+Db is the difference (with a factor) between Y and blue.
+Dr is the difference (with a factor) between Y and red.
+.P
+YDbDr is additive, since it is linearly isomorphic
+to CIE 1931 XYZ. It's white point is the
+CIE Standard Illuminant D65. Additionally, conversion
+between YDbDr and YUV is done with a diagonal matrix
+multiplication.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_YIQ.7 b/LIBCOLOUR_YIQ.7
new file mode 100644
index 0000000..e618217
--- /dev/null
+++ b/LIBCOLOUR_YIQ.7
@@ -0,0 +1,65 @@
+.TH LIBCOLOUR_YIQ 7 libcolour
+.SH NAME
+LIBCOLOUR_YIQ - YIQ
+.SH DESCRIPTION
+YIQ colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_yiq_f libcolour_yiq_f_t;\fP
+ \fBtypedef struct libcolour_yiq_lf libcolour_yiq_lf_t;\fP
+ \fBtypedef struct libcolour_yiq_llf libcolour_yiq_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_yiq_f
+is defined as
+.nf
+
+ \fBstruct libcolour_yiq_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fBfloat\fP \fII\fP\fB;\fP
+ \fBfloat\fP \fIQ\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_YIQ .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .yiq
+is used for YIQ colours.
+.P
+.IR .Y ,
+.IR .I ,
+and
+.I .Q
+hold the Y (luma), I (in-phase), and
+Q (quadrature) values, respectively.
+.P
+Y is 0 in black and 1 in white.
+Negative I values are blue,
+positive I values are orange.
+Negative Q values are green,
+positive Q values are purple.
+.P
+YIQ is additive, since it is linearly isomorphic
+to CIE 1931 XYZ. It's white point is the
+CIE Standard Illuminant D65.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_YPBPR.7 b/LIBCOLOUR_YPBPR.7
new file mode 100644
index 0000000..380e1e4
--- /dev/null
+++ b/LIBCOLOUR_YPBPR.7
@@ -0,0 +1,66 @@
+.TH LIBCOLOUR_YPBPR 7 libcolour
+.SH NAME
+LIBCOLOUR_YPBPR - YPbPr
+.SH DESCRIPTION
+YPbPr [the \(aqb\(a and the \(aqr\(aq should be in subscript and capitalised]
+colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_ypbpr_f libcolour_ypbpr_f_t;\fP
+ \fBtypedef struct libcolour_ypbpr_lf libcolour_ypbpr_lf_t;\fP
+ \fBtypedef struct libcolour_ypbpr_llf libcolour_ypbpr_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_ypbpr_f
+is defined as
+.nf
+
+ \fBstruct libcolour_ypbpr_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fBfloat\fP \fIPb\fP\fB;\fP
+ \fBfloat\fP \fIPr\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_YPBPR .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .ypbpr
+is used for YPbPr colours.
+.P
+.IR .Y ,
+.IR .Pb ,
+and
+.I .Pr
+hold the Y (luma), Pb [the \(aqb\(aq should be in
+subscript and capitalised], and Pr [the \(aqr\(aq
+should be in subscript and capitalised] values,
+respectively.
+.P
+Y is 0 in black and 1 in white.
+Pb is the difference between Y and blue.
+Pr is the difference between Y and red.
+.P
+YPbPr is additive, since it is linearly isomorphic
+to CIE 1931 XYZ. It's white point is the
+CIE Standard Illuminant D65.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/LIBCOLOUR_YUV.7 b/LIBCOLOUR_YUV.7
new file mode 100644
index 0000000..784a60b
--- /dev/null
+++ b/LIBCOLOUR_YUV.7
@@ -0,0 +1,64 @@
+.TH LIBCOLOUR_YUV 7 libcolour
+.SH NAME
+LIBCOLOUR_YUV - YUV
+.SH DESCRIPTION
+YUV colours are presented with either of
+.nf
+
+ \fBtypedef struct libcolour_yuv_f libcolour_yuv_f_t;\fP
+ \fBtypedef struct libcolour_yuv_lf libcolour_yuv_lf_t;\fP
+ \fBtypedef struct libcolour_yuv_llf libcolour_yuv_llf_t;\fP
+
+.fi
+These
+.BR struct s
+use
+.BR float ,
+.BR double ,
+and
+.BR long\ double ,
+respecitively, for the values stored in them,
+and are otherwise identical.
+.B struct libcolour_yuv_f
+is defined as
+.nf
+
+ \fBstruct libcolour_yuv_f {\fP
+ \fBenum libcolour_model\fP \fImodel\fP\fB;\fP
+ \fBfloat\fP \fIY\fP\fB;\fP
+ \fBfloat\fP \fIU\fP\fB;\fP
+ \fBfloat\fP \fIV\fP\fB;\fP
+ \fB};\fP
+
+.fi
+.I .model
+shall be set to
+.BR LIBCOLOUR_YUV .
+In
+.BR union\ libcolour_colour_f ,
+.BR union\ libcolour_colour_lf ,
+and
+.BR union\ libcolour_colour_llf ,
+.I .yuv
+is used for YUV colours.
+.P
+.IR .Y ,
+.IR .U ,
+and
+.I .V
+hold the Y (luma), U, and V values, respectively.
+.P
+Y is 0 in black and 1 in white.
+U is the difference (with a factor) between Y and blue.
+V is the difference (with a factor) between Y and red.
+.P
+YUV is additive, since it is linearly isomorphic
+to CIE 1931 XYZ. It's white point is the
+CIE Standard Illuminant D65. Additionally, conversion
+between YUV and YDbDr is done with a diagonal matrix
+multiplication.
+.SH SEE ALSO
+.BR libcolour (7)
+.SH AUTHORS
+Mattias Andrée
+.RI < maandree@kth.se >
diff --git a/Makefile b/Makefile
index 4ab5b6b..0b52b45 100644
--- a/Makefile
+++ b/Makefile
@@ -18,9 +18,31 @@ TEMPLATES =\
libcolour-template.c
MAN7 =\
- libcolour.7
-
-MAN3 =
+ libcolour.7\
+ LIBCOLOUR_RGB.7\
+ LIBCOLOUR_SRGB.7\
+ LIBCOLOUR_CIEXYY.7\
+ LIBCOLOUR_CIEXYZ.7\
+ LIBCOLOUR_CIELAB.7\
+ LIBCOLOUR_CIELUV.7\
+ LIBCOLOUR_CIELCHUV.7\
+ LIBCOLOUR_YIQ.7\
+ LIBCOLOUR_YDBDR.7\
+ LIBCOLOUR_YUV.7\
+ LIBCOLOUR_YPBPR.7\
+ LIBCOLOUR_YCGCO.7\
+ LIBCOLOUR_CIE1960UCS.7\
+ LIBCOLOUR_CIEUVW.7
+
+MAN3 =\
+ libcolour_convert.3\
+ libcolour_srgb_encode.3\
+ libcolour_srgb_decode.3\
+ libcolour_delta_e.3\
+ libcolour_proper.3\
+ libcolour_get_rgb_colour_space.3\
+ libcolour_marshal.3\
+ libcolour_unmarshal.3
MAN3_SYMLINKS =\
libcolour_convert_f.3\