ative) This clause does not form an integral part of this Recommendation | International Standard. Inputs to this process are decisions that are to be encoded and written. Outputs of this process are bits that are written to the RBSP. This informative clause describes an arithmetic encoding engine that matches the arithmetic decoding engine described in clause 9.3.3.2. The encoding engine is essentially symmetric with the decoding engine, i.e., procedures are called in the same order. The following procedures are described in this section: InitEncoder, EncodeDecision, EncodeBypass, EncodeTerminate, which correspond to InitDecoder, DecodeDecision, DecodeBypass, and DecodeTerminate, respectively. The state of the arithmetic encoding engine is represented by a value of the variable codILow pointing to the lower end of a sub-interval and a value of the variable codIRange specifying the corresponding range of that sub- interval. 9.3.4.1 Initialisation process for the arithmetic encoding engine (informative) This clause does not form an integral part of this Recommendation | International Standard. This process is invoked before encoding the first macroblock of a slice, and after encoding any pcm_alignment_zero_bit and all pcm_sample_luma and pcm_sample_chroma data for a macroblock of type I PCM. Outputs of this process are the values codILow, codIRange, firstBitFlag, bitsOutstanding, and BinCountsInNALunits of the arithmetic encoding engine. In the initialisation procedure of the encoder, codILow is set equal to 0, and codIRange is set equal to 510. Furthermore, firstBitFlag is set equal to 1 and the counter bitsOutstanding is set equal to 0. Depending on whether the current slice is the first slice of a coded picture, the following applies: If the current slice is the first slice of a coded picture, the counter BinCountsInNALunits is set equal to 0. Otherwise (the current slice is not the first slice of a coded picture), the counter BinCountsInNALunits is not modified. The value of BinCountsInNALunits is the result o