diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-01-19 17:55:13 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-01-19 17:55:13 +0000 |
commit | 6772518310e6bfc952e2ffbfa02c059ce1ca60b0 (patch) | |
tree | dade31f12749f13bea175c910f75e885553839a7 /libavcodec/h263.c | |
parent | 0e5f8ab165de3b5419bd8bba3ae338bc03be94a0 (diff) | |
download | ffmpeg-6772518310e6bfc952e2ffbfa02c059ce1ca60b0.tar.gz |
finetuneing thresholds/factors
nicer mb decission
a few minor improvements & fixes
Originally committed as revision 1472 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h263.c')
-rw-r--r-- | libavcodec/h263.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/libavcodec/h263.c b/libavcodec/h263.c index 025288b03f..27fc223f4f 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -74,8 +74,10 @@ static inline int ff_mpeg4_pred_dc(MpegEncContext * s, int n, UINT16 **dc_val_pt extern UINT32 inverse[256]; -static UINT16 uni_DCtab_lum [512][2]; -static UINT16 uni_DCtab_chrom[512][2]; +static UINT8 uni_DCtab_lum_len[512]; +static UINT8 uni_DCtab_chrom_len[512]; +static UINT16 uni_DCtab_lum_bits[512]; +static UINT16 uni_DCtab_chrom_bits[512]; #ifdef CONFIG_ENCODERS static UINT16 (*mv_penalty)[MAX_MV*2+1]= NULL; @@ -1309,8 +1311,8 @@ static void init_uni_dc_tab(void) uni_len++; } } - uni_DCtab_lum[level+256][0]= uni_code; - uni_DCtab_lum[level+256][1]= uni_len; + uni_DCtab_lum_bits[level+256]= uni_code; + uni_DCtab_lum_len [level+256]= uni_len; /* chrominance */ uni_code= DCtab_chrom[size][0]; @@ -1324,8 +1326,8 @@ static void init_uni_dc_tab(void) uni_len++; } } - uni_DCtab_chrom[level+256][0]= uni_code; - uni_DCtab_chrom[level+256][1]= uni_len; + uni_DCtab_chrom_bits[level+256]= uni_code; + uni_DCtab_chrom_len [level+256]= uni_len; } } @@ -1446,6 +1448,8 @@ void h263_encode_init(MpegEncContext *s) s->intra_ac_vlc_last_length= uni_mpeg4_intra_rl_len + 128*64; s->inter_ac_vlc_length = uni_mpeg4_inter_rl_len; s->inter_ac_vlc_last_length= uni_mpeg4_inter_rl_len + 128*64; + s->luma_dc_vlc_length= uni_DCtab_lum_len; + s->chroma_dc_vlc_length= uni_DCtab_chrom_len; s->ac_esc_length= 7+2+1+6+1+12+1; break; case CODEC_ID_H263P: @@ -1957,10 +1961,10 @@ static inline void mpeg4_encode_dc(PutBitContext * s, int level, int n) level+=256; if (n < 4) { /* luminance */ - put_bits(s, uni_DCtab_lum[level][1], uni_DCtab_lum[level][0]); + put_bits(s, uni_DCtab_lum_len[level], uni_DCtab_lum_bits[level]); } else { /* chrominance */ - put_bits(s, uni_DCtab_chrom[level][1], uni_DCtab_chrom[level][0]); + put_bits(s, uni_DCtab_chrom_len[level], uni_DCtab_chrom_bits[level]); } #else int size, v; |