pper-left luma sample of a macroblock, a macroblock type mbType, when mbType is equal to P_8x8, P_8x8ref0, or B_8x8, a list of sub-macroblock types subMbType with 4 elements. Outputs of this process are: a macroblock partition index mbPartIdx, a sub-macroblock partition index subMbPartIdx. The macroblock partition index mbPartIdx is derived as follows: If mbType specifies an I macroblock type, mbPartIdx is set equal to 0. Otherwise (mbType does not specify an I macroblock type), mbPartIdx is derived by mbPartIdx = ( 16 / MbPartWidth( mbType) ) * ( yP / MbPartHeight( mbType ) ) + xP/MbPartWidth(mbType)) (6-41) The sub-macroblock partition index subMbPartIdx is derived as follows: If mbType is not equal to P_8x8, P_8x8ref0, B_8x8, B_Skip, or B_Direct_16x16, subMbPartIdx is set equal to 0. Otherwise, if mbType is equal to B_Skip or B_Direct_16x16, subMbPartIdx is derived by subMbPartIdx = =2*((yP%8)/4)+((xP%8)/4) (6-42) Rec. ITU-T H.264 (01/2012) Otherwise (mbType is equal to P_8x8, P_8x8ref0, or B_8x8), subMbPartIdx is derived by subMbPartIdx = / SubMbPartWidth( subMbType[ mbPartIdx * ( ( yP % ) / SubMbPartHeight( subMbType[ mbPartIdx ]) ) + ( ( xP % 8) / SubMbPartWidth( subMbType[ mbPartIdx ]) ) (6-43) Syntax and semantics Method of specifying syntax in tabular form The syntax tables specify a superset of the syntax of all allowed bitstreams. Additional constraints on the syntax may be specified, either directly or indirectly, in other clauses. NOTE - An actual decoder should implement means for identifying entry points into the bitstream and means to identify and handle non-conforming bitstreams. The methods for identifying and handling errors and other such situations are not specified here. The following table lists examples of pseudo code used to describe the syntax. When syntax_element appears, it specifies that a syntax element is parsed from the bitstream and the bitstream pointer is advanced to the next position beyond the syntax element in the bitstream parsing process. Descriptor /* A statement can be a 