how to do differential decoding without error propagation