There are two "modes" to the RLE algorithm used in both QGF/QFF:
128
octets
length
= marker - 128
length
number of octets follow directly after the marker octet128
length
= marker
length
times.Decoder pseudocode:
while !EOF
marker = READ_OCTET()
if marker >= 128
length = marker - 128
for i = 0 ... length-1
c = READ_OCTET()
WRITE_OCTET(c)
else
length = marker
c = READ_OCTET()
for i = 0 ... length-1
WRITE_OCTET(c)