maximum likelihood decoding