or neighbouring 8x8 luma blocks as specified in clause 6.4.11.2 is invoked with c8x8BlkIdx as the input and the outputs are assigned to mbAddrA, c8x8BlkIdxA, mbAddrB, and c8x8BlkIdxB. For this invocation of the process in clause 6.4.11.2, the modifications specified in items a) through c) in clause G.8.3.1 apply. 2. For N being replaced by A and B, the variables availableFlagN are derived as follows: If the macroblock mbAddrN is available and any of the following conditions are true, availableFlagN is set equal to 1: constrained_intra_pred_flag is equal to 0, mbType[ mbAddrN ] is equal to I_PCM and tcoeff_level_prediction_flag is equal to 1, mbType[ mbAddrN ] is equal to I_PCM and baseModeFlag[ mbAddrN ] is equal to 0, mbType[ mbAddrN ] is equal to I_16x16,I_8x8,orI_4x4. Otherwise, availableFlagN is set equal to 0. The variable dcPredModePredictedFlag is derived as follows: If availableFlagA or availableFlagB is equal to 0, dcPredModePredictedFlag is set equal to 1. Otherwise (availableFlagA is equal to 1 and availableFlagB are equal to 1), dcPredModePredictedFlag is set equal to 0. 4. For N being replaced by A and B, the variables intraMxMPredModeN are derived as follows: If dcPredModePredictedFlag is equal to 0 and mbType[ mbAddrN ] is equal to I_4x4, intraMxMPredModeN is set equal to ipred4x4[ mbAddrN ][ c8x8BlkIdxN c4x4Idx ] with the variable c4x4Idx being derived as follows: If N is equal to B, c4x4Idx is set equal to 2. Otherwise, if fieldMbFlag[ CurrMbAddr ] is equal to 0, fieldMbFlag[ mbAddrN ] is equal to 1, and c8x8BlkIdx is equal to 2, c4x4Idx is set equal to 3. Otherwise (N is equal to A and (fieldMbFlag[ CurrMbAddr is equal to 1 or fieldMbFlag[ mbAddrN ] is equal to 0 or c8x8BlkIdx is not equal to 2)), c4x4Idx is set equal to 1. Otherwise, if dcPredModePredictedFlag is equal to 0 and mbType[ mbAddrN ] is equal to 8x8, intraMxMPredModeN is set equal to ipred8x8[ mbAddrN ][ c8x8BlkIdxN ]. Otherwise (dcPredModePredictedFlag is equal to 1 or (mbType[ mbAddrN ] is not equal to I_4x4 and mbType[ mbAddrN ] 