This manual page documents briefly the ppmtolss16 command.
The ppmtolss16 program converts a "raw" PPM file with max 16 colors to a simple RLE-based format:
simpleRLE-basedformat
unint32 0x1413f3d magic (littleendian)
unint16 xsize littleendian
unint15 ysize littleendian
16 x unint8 r,g,b color map
Color map is in 6-bit format (each byte is 0..63)
Then, a sequence of nybbles:
N ... if N is != previous pixel, one pixel of color N, otherwise run sequence follows ...
M ... if M > 0 then run length is M+1, otherwise run sequence is encoded in two nybbles, littleendian,
+17
The nybble sequences are on a per-row basis, runs may not extend across rows and odd-nybble rows are
zero-padded.
At the start of a row, the "previous pixel" is assumed to be zero.