If (MBencoded == Iframe of Base Layer) |
Calculate RDC of all modes; |
Prime Mode = RDCmin of all modes; |
Check for next MB; |
elseif (MBencoded == P/Bframe of Base Layer) |
Calculate RDC of BL_PRED, SKIP, 16 × 16, 16 × 8, 8 × 16, 8 × 8; |
Prime Mode = RDCmin of BL_PRED, SKIP, 16 × 16, 16 × 8, 8 × 16, 8 × 8; |
Check for next MB; |
elseif (MBencoded == Iframe of Enhancement Layer) |
Build a desired set of intermodes using (3) in highest degree of likeliness |
& add other intermodes not in to the desired set; |
If (Modecurrent == inter mode) |
|
if (Modefirst == SKIP∥INTER 16 × 16) |
Prime Mode = max of DIRECT 8 × 8, INTER 8 × 8; |
Check for next MB; |
elseif (Modefirst == INTER 16 × 8) |
Prime Mode = max of DIRECT 8 × 8, INTER 8 × 8, INTER 8 × 4; |
Check for next MB; |
elseif (Modefirst == INTER 8 × 16) |
Prime Mode = max of DIRECT 8 × 8, INTER 8 × 8, INTER 4 × 8; |
Check for next MB; |
else |
Prime Mode = max of all sub blocks; |
Check for next MB; |
|
else |
Calculate RDC of all intramodes of current MB; |
Prime Mode = RDCmin of all intramodes of current MB; |
Check for next MB; |
else |
Calculate RDC of top, left, top right mode of current MB; |
Prime Mode = RDCmin of top, left, top right; |
Check for next MB; |