 mbType with PicSizeInMbs elements specifying macroblock types for the macroblocks of the current layer representation, a (PicSizeInMbs)x16 array ipred4x4 specifying Intra_4x4 prediction modes for macroblocks of the current layer representation, a (PicSizeInMbs)x4 array ipred8x8 specifying Intra_8x8 prediction modes for macroblocks of the current layer representation. Output of this process is a modified version of the array ipred4x4. The 4x4 blocks indexed by c4x4BlkIdx = 0..15 are processed in increasing order of c4x4BlkIdx, and for each 4x4 block, the following ordered steps are specified: 1. The derivation process for neighbouring 4x4 luma blocks as specified in clause 6.4.11.4 is invoked with c4x4BlkIdx as the input and the outputs are assigned to mbAddrA, c4x4BlkIdxA, mbAddrB, and c4x4BlkIdxB. For this invocation of the process in clause 6.4.11.4, the modifications specified in items a) through c) in clause G.8.3.1 apply. 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, or I_4x4. Otherwise, availableFlagN is set equal to 0. The variable dcPredModePredictedFlag is derived as follows: If availableFlagA or availableFlagB is equal to 0, dcPredModePredictedFla; is set equal to 1. Otherwise (availableFlagA is equal to 1 and availableFlagB is 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 ][ c4x4BlkIdxN ]. Otherwise, if dcPredModePredictedFlag is equal to 0 and mbType[ mbAddrN ] is e