A method of decoding context based adaptive arithmetic entropy encoded data comprising the steps of: a) decoding the encoded data to produce first decoded data comprising a plurality of N-bit symbols; b) entropy encoding the first decoded data to produce second encoded data, the entropy encoding comprising: dividing at a first leading one detector each N-bit symbol into first and second streams and encoding the position of the leading one of each N-bit symbol as a first value and sending the least significant bits of the N-bit symbol below the leading one as the first stream; for the second stream, in parallel with the sending of the first stream, dividing at a second leading one detector the first value into third and fourth streams and encoding the position of the leading one of the first value as a second value and sending the least significant bits of the first value below the leading one as the third stream; for the fourth stream, in parallel with the sending of the third stream, dividing at a third leading one detector the second value into fifth and sixth streams and encoding the position of the leading one of the second value as a third value and sending the least significant bits of the second value below the leading one as the fifth stream; for the sixth stream, in parallel with the sending of the fifth stream, compressing the third value using context based adaptive arithmetic encoding to output a seventh stream; c) storing the second encoded data comprising the first, third, fifth and seventh streams in a first in first out (FIFO) memory; d) reading the second encoded data from the FIFO memory; and e) decoding the data read from the FIFO memory to produce the first decoded data. a) decoding the encoded data to produce first decoded data comprising a plurality of N-bit symbols; b) entropy encoding the first decoded data to produce second encoded data, the entropy encoding comprising: dividing at a first leading one detector each N-bit symbol into first and second streams and encoding the position of the leading one of each N-bit symbol as a first value and sending the least significant bits of the N-bit symbol below the leading one as the first stream; for the second stream, in parallel with the sending of the first stream, dividing at a second leading one detector the first value into third and fourth streams and encoding the position of the leading one of the first value as a second value and sending the least significant bits of the first value below the leading one as the third stream; for the fourth stream, in parallel with the sending of the third stream, dividing at a third leading one detector the second value into fifth and sixth streams and encoding the position of the leading one of the second value as a third value and sending the least significant bits of the second value below the leading one as the fifth stream; for the sixth stream, in parallel with the sending of the fifth stream, compressing the third value using context based adaptive arithmetic encoding to output a seventh stream; dividing at a first leading one detector each N-bit symbol into first and second streams and encoding the position of the leading one of each N-bit symbol as a first value and sending the least significant bits of the N-bit symbol below the leading one as the first stream; for the second stream, in parallel with the sending of the first stream, dividing at a second leading one detector the first value into third and fourth streams and encoding the position of the leading one of the first value as a second value and sending the least significant bits of the first value below the leading one as the third stream; for the fourth stream, in parallel with the sending of the third stream, dividing at a third leading one detector the second value into fifth and sixth streams and encoding the position of the leading one of the second value as a third value and sending the least significant bits of the second value below the leading one as the fifth stream; for the sixth stream, in parallel with the sending of the fifth stream, compressing the third value using context based adaptive arithmetic encoding to output a seventh stream; c) storing the second encoded data comprising the first, third, fifth and seventh streams in a first in first out (FIFO) memory; d) reading the second encoded data from the FIFO memory; and e) decoding the data read from the FIFO memory to produce the first decoded data.