b->bit_size[a] += dv_rl2vlc_size(run, b->mb[k]); run = 0; } else ++run;
b->bit_size[a] += dv_rl2vlc_size(k - prev - 1, b->mb[k]); prev= k; } else { b->next[prev] = b->next[k]; }
static inline void dv_guess_qnos(EncBlockInfo* blks, int* qnos){    int size[5];    int i, j, k, a, run;    EncBlockInfo* b;        do {       b = blks;       for (i=0; i<5; i++) {          if (!qnos[i])	      continue;	  	  qnos[i]--;	  size[i] = 0;          for (j=0; j<6; j++, b++) {	     for (a=0; a<4; a++) {	        if (b->area_q[a] != dv_quant_shifts[qnos[i] + dv_quant_offset[b->cno]][a]) {		    b->bit_size[a] = (a==3)?4:0;		    b->area_q[a]++;		    run = b->prev_run[a];		    for (k=mb_area_start[a]; k<mb_area_start[a+1]; k++) {		       b->mb[k] /= 2;		       if (b->mb[k]) {                           b->bit_size[a] += dv_rl2vlc_size(run, b->mb[k]);	                   run = 0;                       } else                           ++run;		    }		}		size[i] += b->bit_size[a];	     }	  }       }    } while ((vs_total_ac_bits < size[0] + size[1] + size[2] + size[3] + size[4]) &&              (qnos[0]|qnos[1]|qnos[2]|qnos[3]|qnos[4]));}