1. A method of decoding convolutional encoded data, including a step of setting the transition costs to non-negative values in the range 0 to M, where M is the maximum cost that can be obtained in K steps where K is the number of memory bits in the convolutional encoded data, and allocating N bits per cumulative path cost where (2̂(K+1)*M)−1<2̂N−1.