is derived as follows: If any of the following conditions are true, nN is set equal to 0: The macroblock mbAddrN has nb_type equal to P_Skip or B_Skip, The macroblock mbAddrN has mb_type not equal to I PCM and all AC residual transform coefficient levels of the neighbouring block blkN are equal to 0 due to the corresponding bit of CodedBlockPatternLuma or CodedBlockPatternChroma being equal to 0. Otherwise, if mbAddrN is an PCM macroblock, nN is set equal to 16. Otherwise, nN is set equal to the value TotalCoeff( coeff_token of the neighbouring block blkN. NOTE 1 - The values nA and nB that are derived using TotalCoeff( coeff_token) do not include the DC transform coefficient levels in Intra 16x16 macroblocks or DC transform coefficient levels in chroma blocks, because these transform coefficient levels are decoded separately. When the block above or to the left belongs to an Intra 16x16 macroblock, nA or nB is the number of decoded non-zero AC transform coefficient levels for the adjacent 4x4 block in the Intra_16x16 macroblock. When the block above or to the left is a chroma block, nA or nB is the number of decoded non-zero AC transform coefficient levels for the adjacent chroma block. Rec. ITU-T H.264 (01/2012) NOTE 2 - When parsing for Intra16x16DCLevel, CbIntra16x16DCLevel, or CrIntra16x16DCLevel, the values nA and nB are based on the number of non-zero transform coefficient levels in adjacent 4x4 blocks and not the number of non-zero DC transform coefficient levels in adjacent 16x16 blocks. 7. The variable nC is derived as follows: If availableFlagA is equal to 1 and availableFlagB is equal to 1, the variable nC is set equal to ( nA + nB + 1. Otherwise, if availableFlagA is equal to 1 (and availableFlagB is equal to 0), the variable nC is set equal to nA. Otherwise, if availableFlagB is equal to 1 (and availableFlagA is equal to 0), the variable nC is set equal to nB. Otherwise (availableFlagA is equal to 0 and availableFlagB is equal to 0), the variable nC is set equal to 0. When maxNumCoeff is equal to 15