diff options
Diffstat (limited to 'liblss16_optimise.3')
-rw-r--r-- | liblss16_optimise.3 | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/liblss16_optimise.3 b/liblss16_optimise.3 new file mode 100644 index 0000000..0a9d6e5 --- /dev/null +++ b/liblss16_optimise.3 @@ -0,0 +1,81 @@ +.TH LIBLSS16_OPTIMISE 3 LIBLSS16 +.SH NAME +liblss16_optimise \- Optimise an image for best compression with LSS16 + +.SH SYNOPSIS +.nf +#include <liblss16.h> + +struct liblss16_colour { + uint8_t \fIr\fP; + uint8_t \fIg\fP; + uint8_t \fIb\fP; +}; + +struct liblss16_header { + uint16_t \fIwidth\fP; + uint16_t \fIheight\fP; + struct liblss16_colour \fIcolour_map\fP[16]; +}; + +void liblss16_optimise(struct liblss16_header *\fIheader\fP, uint8_t *\fIpixels\fP); +.fi +.PP +Link with +.IR -llss16 . + +.SH DESCRIPTION +The +.BR liblss16_optimise () +function reorders and deduplicates the colour palette +for an image so that it will compress optimally with LSS16. +.PP +.I header->width +shall be the width, in pixels, of the image. +.PP +.I header->height +shall be the height, in pixels, of the image. +.PP +.I header->colour_map +shall be the image's colour palette. +.PP +.I pixels +shall be a buffer of the colour index for +.I header->width*header->height +pixels. Ordered primarily from the top down +and secondarily from left to right. The colour +of a pixel encoded with the value +.I P +is determined by +.IR header->colour_map[P] . +Each +.B struct liblss16_colour +is encoded in sRGB with either 6 bits per channel +or 8 bits per channel +.RI ( .r +for the red channel, +.I .g +for the green channel, and +.I .b +for the blue channel). +.PP +Values in +.I pixels +must be 15 or less. The function will not validate the input. + +.PP +The function will rewrite +.I header->colour_map +and +.IR pixels . + +.SH RETURN VALUE +None. + +.SH ERRORS +The +.BR liblss16_optimise () +function cannot fail. + +.SH SEE ALSO +.BR liblss16 (7) |