Encoded data using reversible variable length code words is input to a
forward decoder (123) to be decoded in the forward direction. When an
error is detected in the encoded data in the forward decode processing,
backward decode processing is started by a backward decoder (126). A
decode value determination unit (125) determines a decode value by using
the forward and backward decode results and the error detection positions
in the encoded data in units of bits and syntax which are respectively
detected in the forward decoding and the backward decoding.