AN2121 Freescale Semiconductor / Motorola, AN2121 Datasheet - Page 15

no-image

AN2121

Manufacturer Part Number
AN2121
Description
JPEG2000 Arithmetic Encoding on StarCore SC140
Manufacturer
Freescale Semiconductor / Motorola
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
AN2121SC
Manufacturer:
TERIDIAN
Quantity:
40
Subinterval [0.01, 0.0111) becomes the new interval
Decoding the third symbol
Subinterval [0.010011, 0.0111) becomes the new interval.
When the lower bound of the interval is equal to C, the end of the symbol stream for the code word has
been reached.
There are several practical issues which must be resolved before making use of arithmetic coding. All of
these issues have been addressed by the JPEG2000 arithmetic coder.
2.4
The JPEG2000 standard utilizes a specific type of efficient, statistical binary arithmetic coding (BAC)
which has been adapted from the so called Q-Coder [5]. It deals with the following issues that arise when
trying to implement a practical BAC:
JPEG2000 has 19 possible contexts. The JPEG2000 BAC can be thought of as 19 independent coders that
produce intermixed output. The contexts input to the BAC are used to choose between these coders by
indexing different Q
machine but move among the various states in different ways.
As an aid to understanding the following discussion, certain figures from the JPEG 2000 Part 1 Final Draft
International Standard [4] are reproduced in Appendix C. The diagrams in Appendix C describe the
operation of the encoder. Note the figure labels correspond to those in the FDIS.
Figure C-1 shows the arithmetic coder inputs, the context (CX) and data (D) pairs which are provided by
the coefficient bit modeler. In the example provided in Appendix A, these pairs are stored in an input array.
The output from the arithmetic coder is a stream of compressed data (CD).
Figure C-2 is a top level flow diagram for the encoder. It includes an initialization and a flushing
procedure, which are described in detail in Section 3.1.1 and Section 3.1.2 respectively.
The encoder has separate procedures for coding 0 and 1 data inputs. It must first be established whether the
input data symbol is an MPS or an LPS. The data values for an MPS for each context are stored in an array
which is simply looked up for each input. If the data is an MPS, then CODEMPS (Figure C-7) is used;
otherwise CODELPS (Figure C-6) is used.
Figure C-8 shows the renormalization procedure, and Figure C-9 shows how a byte is output to the bit
stream.
Given: interval [0.01, 0.0111) with subintervals [0.01, 0.010011) and [0.010011, 0.0111)
Since C = 0.010011 lies within [0.010011, 0.0111), the third symbol must be ‘T’.
removing the multiplication operations required for each symbol encoding/decoding
dealing with conditional exchange of the MPS sense, which arises when the resulting interval for
an LPS exceeds that of the corresponding MPS
making the arithmetic coder adaptive
dealing with finite precision
problems associated with the growing length of the code word and carry propagation
software versus hardware implementation.
JPEG2000 Arithmetic Coding
e
values in the state machine defined in Table C-2. The 19 coders use the same state
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
Background Theory
JPEG2000 Arithmetic Coding
11

Related parts for AN2121