Skip to Main Content
The Bahl-Cocke-Jelinek-Raviv (BCJR) algorithm is an important channel decoding method. We extend it to trellis rate-distortion data compression. Beginning from source coding principles, the derivation of the algorithm avoids channel coding or soft output ideas. The encoder does not use entropy coding; equiprobable reproducer letters are emphasized since these maximize entropy. The BCJR method is demonstrated by tests of a tail-biting variant. It performs much better than the ordinary Viterbi algorithm for short and medium blocks. However, the improvement stems from tail biting; the role of the BCJR is to achieve tail biting in a relatively simple way. Some issues that arise with tail biting are explored. It is shown that there is an optimal trellis state size for each block length.