chnagolombencode implements adaptive Golomb coding of the channel sequence, channel (CHN format). chnagolombencode calls QccENTAdaptiveGolombEncodeChannel(3) , which encodes the channel symbols, and outputs binary codewords to the output bitstream.
chnagolombencode initially outputs a few bytes of header information (original number of symbols in channel, symbol alphabet size) to bitstream. The byte-packed bitstream produced by the adaptive Golomb coding follows.
Normally, chnagolombencode prints to stdout the rate achieved by the adaptive Golomb coding, expressed in terms of bits per channel symbol. This output may be suppressed by the -s option (silent mode). The -vo option indicates that only the value of the rate is to be printed (terse output). The -s option overrides the -vo option.
Golomb coding originated in the 1966 paper by Golomb; the adaptive variant described here is due to Langdon. Apparently, this adaptive Golomb coding is also known as runlength/Rice coding.
G. G. Langdon, Jr., "An adaptive run-length coding algorithm," IBM Technical Disclosure Bulletin, vol. 26, no. 7B, pp. 3783-3785, December 1983.
S. W. Golomb, "Run-Length Encodings," IEEE Transactions on Information Theory, vol. 12, pp. 399-401, July 1966.
Copyright (C) 1997-2021 James E. Fowler