lock is skipped), a decoder must wait untilmb_field_decoding_flag for the bottom macroblock is read (when the bottom macroblock is not skipped) or the value of mb_field_decoding_flag is inferred as specified above (when the bottom macroblock is also skipped) before it starts the decoding process for the top macroblock. end_of_slice_flag equal to 0 specifies that another macroblock is following in the slice. end_of_slice_flag equal to 1 specifies the end of the slice and that no further macroblock follows. The function NextMbAddress( used in the slice data syntax table is specified in clause 8.2.2. 7.4.5 Macroblock layer semantics mb_type specifies the macroblock type. The semantics of mb_type depend on the slice type. Tables and semantics are specified for the various macroblock types for I, SI, P, SP, and B slices. Each table presents the value of nb_type, the name of mb_type, the number of macroblock partitions used (given by the NumMbPa mb_type) function), the prediction mode of the macroblock (when it is not partitioned) or the first partition (given by the MbPartPredMode( mb_type, 0) function) and the prediction mode of the second partition (given by the MbPartPredMode( mb_type, 1) function). When a value is not applicable it is designated by "na". In the text, the value of mb_type may be referred to as the macroblock type, the value of MbPartPredMode() may be referred to in the text by "macroblock (partition) prediction mode", and a value X of MbPartPredMode() may be referred to in the text by "X macroblock (partition) prediction mode" or as "X prediction macroblocks". Table 7-10 shows the allowed collective macroblock types for each slice_type. NOTE 1 - There are some macroblock types with Pred_L0 macroblock (partition) prediction mode(s) that are classified as B macroblock types. Table 7-10 - Allowed collective macroblock types for slice_type slice_type allowed collective macroblock types I (slice) I (see Table 7-11) (macroblock types) P (slice) P (see Table 7-13) and I (see Table 7-11) (macroblock types)