const int level= block[n][block_permute_op(i<<3)];
const int level= block[n][s->idct_permutation[i<<3]];
static inline int decide_ac_pred(MpegEncContext * s, DCTELEM block[6][64], int dir[6]){    int score0=0, score1=0;    int i, n;    for(n=0; n<6; n++){        INT16 *ac_val, *ac_val1;        ac_val = s->ac_val[0][0] + s->block_index[n] * 16;        ac_val1= ac_val;        if(dir[n]){            const int xy= s->mb_x + s->mb_y*s->mb_width - s->mb_width;            /* top prediction */            ac_val-= s->block_wrap[n]*16;            if(s->mb_y==0 || s->qscale == s->qscale_table[xy] || n==2 || n==3){                /* same qscale */                for(i=1; i<8; i++){                    const int level= block[n][block_permute_op(i   )];                    score0+= ABS(level);                    score1+= ABS(level - ac_val[i+8]);                    ac_val1[i  ]=    block[n][block_permute_op(i<<3)];                    ac_val1[i+8]= level;                }            }else{                /* different qscale, we must rescale */                for(i=1; i<8; i++){                    const int level= block[n][block_permute_op(i   )];                    score0+= ABS(level);                    score1+= ABS(level - ROUNDED_DIV(ac_val[i + 8]*s->qscale_table[xy], s->qscale));                    ac_val1[i  ]=    block[n][block_permute_op(i<<3)];                    ac_val1[i+8]= level;                }            }        }else{            const int xy= s->mb_x-1 + s->mb_y*s->mb_width;            /* left prediction */            ac_val-= 16;            if(s->mb_x==0 || s->qscale == s->qscale_table[xy] || n==1 || n==3){                /* same qscale */                for(i=1; i<8; i++){                    const int level= block[n][block_permute_op(i<<3)];                    score0+= ABS(level);                    score1+= ABS(level - ac_val[i]);                    ac_val1[i  ]= level;                    ac_val1[i+8]=    block[n][block_permute_op(i   )];                }            }else{                /* different qscale, we must rescale */                for(i=1; i<8; i++){                    const int level= block[n][block_permute_op(i<<3)];                    score0+= ABS(level);                    score1+= ABS(level - ROUNDED_DIV(ac_val[i]*s->qscale_table[xy], s->qscale));                    ac_val1[i  ]= level;                    ac_val1[i+8]=    block[n][block_permute_op(i   )];                }            }        }    }    return score0 > score1 ? 1 : 0;    }