macroblock partition CurrMbAddr\mbPartIdx\subMbPartIdx and its availability status, mbAddrC\mbPartIdxC\subMbPartIdxC: specifying the macroblock or sub-macroblock partition to the right-above of the current macroblock and its availability status, or the sub-macroblock partition CurrMbAddr\mbPartIdx\subMbPartIdx and its availability status, mbAddrD\mbPartIdxD\subMbPartIdxD: specifying the macroblock or sub-macroblock partition to the left-above of the current macroblock and its availability status, or the sub-macroblock partition CurrMbAddr\mbPartIdx\subMbPartIdx and its availability status. mbAddrN, mbPartIdxN, and subMbPartIdxN (with N being A, B, C, or D) are derived as specified by the following ordered steps: The inverse macroblock partition scanning process as described in clause 6.4.2.1 is invoked with mbPartIdx as the input and (x, y ) as the output. 2. The location of the upper-left luma sample inside a macroblock partition (xS, yS ) is derived as follows: If mb_type is equal to P_8x8, P 8x8ref0 or B_8x8, the inverse sub-macroblock partition scanning process as described in clause 6.4.2.2 is invoked with subMbPartIdx as the input and xS, yS) as the output. Otherwise, (xS, yS) are set to (0,0). The variable predPartWidth in Table 6-2 is specified as follows: If mb_type is equal to P_Skip, B_Skip, or B_Direct_16x16, predPartWidth = 16. Rec. ITU-T H.264 (01/2012) Otherwise, if mb_type is equal to 8x8, the following applies: If currSubMbType is equal to B_Direct_8x8, predPartWidth = 16. NOTE 1 - When currSubMbType is equal to B_Direct_8x8 and direct_spatial_mv_pred_flag is equal to 1, the predicted motion vector is the predicted motion vector for the complete macroblock. Otherwise, predPartWidth 1=SubMbPartWidth(sub_mb_type[mbPartIdx]). : Otherwise, if mb_type is equal to P_8x8 P_8x8ref0, predPartWidth = SubMbPartWidth( sub_mb_type[ mbPartIdx ]). Otherwise, predPartWidth = MbPartWidth( mb_type). The difference of luma location (xD, yD ) is set according to Table 6-2. The neighbouring luma location ( NN, yN ) i