tition mbPartIdx, a sub-macroblock partition subMbPartIdx. Outputs of this process are: luma motion vectors mvL0 and mvL1 and when ChromaArrayType is not equal to 0, the chroma motion vectors mvCL0 and mvCL1, reference indices refIdxL0 and refIdxL1, prediction list utilization flags predFlagL0 and predFlagL1, a motion vector count variable subMyCnt. Rec. ITU-T H.264 (01/2012) For the derivation of the variables mvL0 and mvL1 as well as refIdxL0 and refIdxL1, the following applies: If mb_type is equal to P_Skip, the derivation process for luma motion vectors for skipped macroblocks in P and SP slices in clause 8.4.1.1 is invoked with the output being the luma motion vectors mvL0 and reference indices refIdxL0, and predFlagL0 is set equal to 1. mvL1 and refldxL1 are marked as not available and predFlagL1 is set equal to 0. The motion vector count variable subMvCnt is set equal to 1. Otherwise, if mb_type is equal to B_Skip or B_Direct_16x16 or sub_mb_type[ mbPartIdx ] is equal to B_Direct_8x8, the derivation process for luma motion vectors for B_Skip, B_Direct_16x16, and B_Direct 8x8 in B slices in clause 8.4.1.2 is invoked with mbPartIdx and subMbPartIdx as the input and the output being the luma motion vectors mvL0, mvL1, the reference indices refIdxL0, refIdxL1, the motion vector count variable subMvCnt, and the prediction utilization flags predFlagL0 and predFlagL1. Otherwise, for X being replaced by either 0 or 1 in the variables predFlagLX, mvLX, refIdxLX, and in Pred_LX and in the syntax elements ref_idx_IX and mvd_IX, the following applies: 1. The variables refIdxLX and predFlagLX are derived as follows: If MbPartPredMode( mb_type, mbPartIdx) or SubMbPredMode(sub_mb_type| mbPartIdx ]) is equal to Pred LX or to BiPred, refIdxLX (=ref_idx_IX[mbPartIdx) = (8-168) predFlagLX = 1 (8-169) Otherwise, the variables refIdxLX and predFlagLX are specified by refIdxLX = -1 (8-170) predFlagLX = 0 (8-171) The motion vector count variable subMvCnt is set equal to predFlagL0 + predFlagL1. 3. The variable currSubMbType is d