A state-space partitioning approach to trellis decoding