|
|
@ -713,8 +713,7 @@ static av_cold void init_mv_penalty_and_fcode(MpegEncContext *s) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static av_cold void init_uni_h263_rl_tab(RLTable *rl, uint32_t *bits_tab, |
|
|
|
static av_cold void init_uni_h263_rl_tab(const RLTable *rl, uint8_t *len_tab) |
|
|
|
uint8_t *len_tab) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
int slevel, run, last; |
|
|
|
int slevel, run, last; |
|
|
|
|
|
|
|
|
|
|
@ -738,10 +737,9 @@ static av_cold void init_uni_h263_rl_tab(RLTable *rl, uint32_t *bits_tab, |
|
|
|
len= rl->table_vlc[code][1]; |
|
|
|
len= rl->table_vlc[code][1]; |
|
|
|
bits=bits*2+sign; len++; |
|
|
|
bits=bits*2+sign; len++; |
|
|
|
|
|
|
|
|
|
|
|
if(code!=rl->n && len < len_tab[index]){ |
|
|
|
if (code != rl->n && len < len_tab[index]) |
|
|
|
if(bits_tab) bits_tab[index]= bits; |
|
|
|
|
|
|
|
len_tab [index]= len; |
|
|
|
len_tab [index]= len; |
|
|
|
} |
|
|
|
|
|
|
|
/* ESC */ |
|
|
|
/* ESC */ |
|
|
|
bits= rl->table_vlc[rl->n][0]; |
|
|
|
bits= rl->table_vlc[rl->n][0]; |
|
|
|
len = rl->table_vlc[rl->n][1]; |
|
|
|
len = rl->table_vlc[rl->n][1]; |
|
|
@ -749,14 +747,12 @@ static av_cold void init_uni_h263_rl_tab(RLTable *rl, uint32_t *bits_tab, |
|
|
|
bits=bits*64+run; len+=6; |
|
|
|
bits=bits*64+run; len+=6; |
|
|
|
bits=bits*256+(level&0xff); len+=8; |
|
|
|
bits=bits*256+(level&0xff); len+=8; |
|
|
|
|
|
|
|
|
|
|
|
if(len < len_tab[index]){ |
|
|
|
if (len < len_tab[index]) |
|
|
|
if(bits_tab) bits_tab[index]= bits; |
|
|
|
|
|
|
|
len_tab [index]= len; |
|
|
|
len_tab [index]= len; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
av_cold void ff_h263_encode_init(MpegEncContext *s) |
|
|
|
av_cold void ff_h263_encode_init(MpegEncContext *s) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -768,8 +764,8 @@ av_cold void ff_h263_encode_init(MpegEncContext *s) |
|
|
|
ff_rl_init(&ff_h263_rl_inter, ff_h263_static_rl_table_store[0]); |
|
|
|
ff_rl_init(&ff_h263_rl_inter, ff_h263_static_rl_table_store[0]); |
|
|
|
ff_rl_init(&ff_rl_intra_aic, ff_h263_static_rl_table_store[1]); |
|
|
|
ff_rl_init(&ff_rl_intra_aic, ff_h263_static_rl_table_store[1]); |
|
|
|
|
|
|
|
|
|
|
|
init_uni_h263_rl_tab(&ff_rl_intra_aic, NULL, uni_h263_intra_aic_rl_len); |
|
|
|
init_uni_h263_rl_tab(&ff_rl_intra_aic, uni_h263_intra_aic_rl_len); |
|
|
|
init_uni_h263_rl_tab(&ff_h263_rl_inter , NULL, uni_h263_inter_rl_len); |
|
|
|
init_uni_h263_rl_tab(&ff_h263_rl_inter, uni_h263_inter_rl_len); |
|
|
|
|
|
|
|
|
|
|
|
init_mv_penalty_and_fcode(s); |
|
|
|
init_mv_penalty_and_fcode(s); |
|
|
|
} |
|
|
|
} |
|
|
|