- if( h->mb.i_partition == D_16x16 )
- {
- if( b_list[0][0] && b_list[1][0] )
- {
- bs_write_ue( s, 3 );
- }
- else if( b_list[1][0] )
- {
- bs_write_ue( s, 2 );
- }
- else
- {
- bs_write_ue( s, 1 );
- }
- }
- else
- {
- if( i_mb_type == B_BI_BI )
- {
- bs_write_ue( s, 20 + (h->mb.i_partition == D_16x8 ? 0 : 1 ) );
- }
- else if( b_list[0][0] && b_list[1][0] )
- {
- /* B_BI_LX* */
- bs_write_ue( s, 16 + (b_list[0][1]?0:2) + (h->mb.i_partition == D_16x8?0:1) );
- }
- else if( b_list[0][1] && b_list[1][1] )
- {
- /* B_LX_BI */
- bs_write_ue( s, 12 + (b_list[0][1]?0:2) + (h->mb.i_partition == D_16x8?0:1) );
- }
- else if( b_list[1][1] )
- {
- /* B_LX_L1 */
- bs_write_ue( s, 6 + (b_list[0][0]?2:0) + (h->mb.i_partition == D_16x8?0:1) );
- }
- else if( b_list[0][1] )
- {
- /* B_LX_L0 */
- bs_write_ue( s, 4 + (b_list[0][0]?0:6) + (h->mb.i_partition == D_16x8?0:1) );
- }
- }