_8x8 and subMbType[ CurrMbAddr ][ mbPartIdx ] is equal to B_Direct_8x8. Otherwise, isDirectFlag is set equal to 0. The variable numSubMbPart is derived as follows: If isDirectFlag is equal to 1 and DQId is equal to 0 (nal_unit_type is not equal to 20), numSubMbPart is set equal to 4. Otherwise, if isDirectFlag is equal to 1 (and DQId is greater than 0 and nal_unit_type is equal to 20), numSubMbPart is set equal to 1. Otherwise (isDirectFlag is equal to 0), numSubMbPart is set equal to NumSubMbPart( subMbType| CurrMbAddr ][ mbPartIdx ]). 3. The sub-macroblock partition index subMbPartIdx proceeds over values 0..(numSubMbPart - 1), and for each value of subMbPartIdx the SVC derivation process for luma motion vector components and reference indices of a macroblock or sub-macroblock partition as specified in clause G.8.4.1.1 is invoked with mbPartIdx, subMbPartIdx, isDirectFlag, sliceIdc, fieldMbFlag, mbType subMbType, predFlagL0, predFlagL1, refIdxL0, refIdxL1, mvL0, mvL1, mvCnt, refIdxILPredL0, refIdxILPredL1, mvILPredL0, mvILPredL1, and, when DQId is equal to 0 and (slice_type % 5 5) is equal to 1, the reference picture list refPicList1 as the inputs and the outputs are modified versions of the arrays predFlagL0, predFlagL1, refIdxL0, refIdxL1, mvL0, mvL1, and mvCnt. G.8.4.1.1 SVC derivation process for luma motion vector components and reference indices of a macroblock or sub-macroblock partition This clause is only invoked when mbType[ CurrMbAddr ], which is specified as input to this clause, is not equal to I_PCM,I_16x16,I_8x8,I_4x4,orI_BL. Inputs to this process are: a variable mbPartIdx specifying the current macroblock partition, a variable subMbPartIdx specifying the current sub-macroblock partition, a variable isDirectFlag specifying whether the current macroblock partition is coded in direct mode, a one-dimensional array sliceIdc with PicSizeInMbs elements specifying slice identifications for the macroblocks of the current layer representation, a one-dimensional array fieldMbFlag with PicSizeInMbs element