Browse Source

fixing msmpeg4v3 dc-scale for quantizers 24-31

Originally committed as revision 427 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer 23 years ago
parent
commit
bb71e31757
4 changed files with 9 additions and 9 deletions
  1. +1
    -3
      libavcodec/h263dec.c
  2. +1
    -3
      libavcodec/mpegvideo.c
  3. +0
    -1
      libavcodec/mpegvideo.h
  4. +7
    -2
      libavcodec/msmpeg4.c

+ 1
- 3
libavcodec/h263dec.c View File

@@ -199,9 +199,7 @@ static int h263_decode_frame(AVCodecContext *avctx,
#endif #endif
//fprintf(stderr,"\nFrame: %d\tMB: %d",avctx->frame_number, (s->mb_y * s->mb_width) + s->mb_x); //fprintf(stderr,"\nFrame: %d\tMB: %d",avctx->frame_number, (s->mb_y * s->mb_width) + s->mb_x);
/* DCT & quantize */ /* DCT & quantize */
if (s->h263_msmpeg4) {
msmpeg4_dc_scale(s);
} else if (s->h263_pred) {
if (s->h263_pred && s->msmpeg4_version!=2) {
h263_dc_scale(s); h263_dc_scale(s);
} else { } else {
/* default quantization values */ /* default quantization values */


+ 1
- 3
libavcodec/mpegvideo.c View File

@@ -1439,9 +1439,7 @@ static void encode_mb(MpegEncContext *s, int motion_x, int motion_y)
} }
#endif #endif
/* DCT & quantize */ /* DCT & quantize */
if (s->h263_msmpeg4) {
msmpeg4_dc_scale(s);
} else if (s->h263_pred) {
if (s->h263_pred && s->msmpeg4_version!=2) {
h263_dc_scale(s); h263_dc_scale(s);
} else { } else {
/* default quantization values */ /* default quantization values */


+ 0
- 1
libavcodec/mpegvideo.h View File

@@ -490,7 +490,6 @@ void msmpeg4_encode_ext_header(MpegEncContext * s);
void msmpeg4_encode_mb(MpegEncContext * s, void msmpeg4_encode_mb(MpegEncContext * s,
DCTELEM block[6][64], DCTELEM block[6][64],
int motion_x, int motion_y); int motion_x, int motion_y);
void msmpeg4_dc_scale(MpegEncContext * s);
int msmpeg4_decode_picture_header(MpegEncContext * s); int msmpeg4_decode_picture_header(MpegEncContext * s);
int msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size); int msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size);
int msmpeg4_decode_mb(MpegEncContext *s, int msmpeg4_decode_mb(MpegEncContext *s,


+ 7
- 2
libavcodec/msmpeg4.c View File

@@ -411,7 +411,8 @@ void msmpeg4_encode_mb(MpegEncContext * s,
} }




/* strongly inspirated from MPEG4, but not exactly the same ! */
#if 0
/* identical to mpeg4 for msmpeg4v3 but not msmpeg4v2 */
void msmpeg4_dc_scale(MpegEncContext * s) void msmpeg4_dc_scale(MpegEncContext * s)
{ {
if (s->qscale < 5 || s->msmpeg4_version==2){ if (s->qscale < 5 || s->msmpeg4_version==2){
@@ -420,11 +421,15 @@ void msmpeg4_dc_scale(MpegEncContext * s)
}else if (s->qscale < 9){ }else if (s->qscale < 9){
s->y_dc_scale = 2 * s->qscale; s->y_dc_scale = 2 * s->qscale;
s->c_dc_scale = (s->qscale + 13)>>1; s->c_dc_scale = (s->qscale + 13)>>1;
}else{
}else if(s->qscale < 25){
s->y_dc_scale = s->qscale + 8; s->y_dc_scale = s->qscale + 8;
s->c_dc_scale = (s->qscale + 13)>>1; s->c_dc_scale = (s->qscale + 13)>>1;
}else{
s->y_dc_scale = 2 * s->qscale - 16;
s->c_dc_scale = s->qscale - 6;
} }
} }
#endif


/* dir = 0: left, dir = 1: top prediction */ /* dir = 0: left, dir = 1: top prediction */
static int msmpeg4_pred_dc(MpegEncContext * s, int n, static int msmpeg4_pred_dc(MpegEncContext * s, int n,


Loading…
Cancel
Save