From bd57cae86fb2032f2e49c8909b2da72c3076254c Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 15 Mar 2010 16:37:02 +0000 Subject: [PATCH] use mpeg2 quantization bias for mjpeg. this seems to improve RD performance. Originally committed as revision 22550 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpegvideo_enc.c | 5 +---- tests/codec-regression.sh | 2 +- tests/ref/lavf/jpg | 6 +++--- tests/ref/seek/%02d.jpg.ref | 2 +- tests/ref/seek/mjpeg.avi.ref | 40 ++++++++++++++++++------------------ tests/ref/vsynth1/mjpeg | 8 ++++---- tests/ref/vsynth2/mjpeg | 8 ++++---- 7 files changed, 34 insertions(+), 37 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index cb41c57398..4d282951fc 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -503,10 +503,7 @@ av_cold int MPV_encode_init(AVCodecContext *avctx) // return -1; } - if(s->codec_id==CODEC_ID_MJPEG){ - s->intra_quant_bias= 1<<(QUANT_BIAS_SHIFT-1); //(a + x/2)/x - s->inter_quant_bias= 0; - }else if(s->mpeg_quant || s->codec_id==CODEC_ID_MPEG1VIDEO || s->codec_id==CODEC_ID_MPEG2VIDEO){ + if(s->mpeg_quant || s->codec_id==CODEC_ID_MPEG1VIDEO || s->codec_id==CODEC_ID_MPEG2VIDEO || s->codec_id==CODEC_ID_MJPEG){ s->intra_quant_bias= 3<<(QUANT_BIAS_SHIFT-3); //(a + x*3/8)/x s->inter_quant_bias= 0; }else{ diff --git a/tests/codec-regression.sh b/tests/codec-regression.sh index 8eb13eeabc..ce958ce78e 100755 --- a/tests/codec-regression.sh +++ b/tests/codec-regression.sh @@ -150,7 +150,7 @@ do_video_decoding fi if [ -n "$do_mjpeg" ] ; then -do_video_encoding mjpeg.avi "-qscale 10" "-an -vcodec mjpeg -pix_fmt yuvj420p" +do_video_encoding mjpeg.avi "-qscale 9" "-an -vcodec mjpeg -pix_fmt yuvj420p" do_video_decoding "" "-pix_fmt yuv420p" fi diff --git a/tests/ref/lavf/jpg b/tests/ref/lavf/jpg index 8b2ab409c7..9e5be55f85 100644 --- a/tests/ref/lavf/jpg +++ b/tests/ref/lavf/jpg @@ -1,3 +1,3 @@ -d56c19d41e9754939ea0f15d09bc4a32 *./tests/data/images/jpg/02.jpg -./tests/data/images/jpg/%02d.jpg CRC=0xb8bc5a32 -31763 ./tests/data/images/jpg/02.jpg +131878fee153a086d740543fbf2ab359 *./tests/data/images/jpg/02.jpg +./tests/data/images/jpg/%02d.jpg CRC=0x8b019f23 +28406 ./tests/data/images/jpg/02.jpg diff --git a/tests/ref/seek/%02d.jpg.ref b/tests/ref/seek/%02d.jpg.ref index d968f3e072..88964cad05 100644 --- a/tests/ref/seek/%02d.jpg.ref +++ b/tests/ref/seek/%02d.jpg.ref @@ -1,4 +1,4 @@ -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: -1 size: 31351 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: -1 size: 28070 ret:-EINVAL st:-1 flags:0 ts:-1.000000 ret:-EINVAL st:-1 flags:1 ts: 1.894167 ret:-EINVAL st: 0 flags:0 ts: 0.800000 diff --git a/tests/ref/seek/mjpeg.avi.ref b/tests/ref/seek/mjpeg.avi.ref index 98db70cee0..b0f975b715 100644 --- a/tests/ref/seek/mjpeg.avi.ref +++ b/tests/ref/seek/mjpeg.avi.ref @@ -1,46 +1,46 @@ -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12650 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12096 ret: 0 st:-1 flags:0 ts:-1.000000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12650 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12096 ret: 0 st:-1 flags:1 ts: 1.894167 -ret: 0 st: 0 flags:1 dts: 1.880000 pts: 1.880000 pos: 656618 size: 15508 +ret: 0 st: 0 flags:1 dts: 1.880000 pts: 1.880000 pos: 627866 size: 14811 ret: 0 st: 0 flags:0 ts: 0.800000 -ret: 0 st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos: 258298 size: 13522 +ret: 0 st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos: 247500 size: 12959 ret:-1 st: 0 flags:1 ts:-0.320000 ret:-1 st:-1 flags:0 ts: 2.576668 ret: 0 st:-1 flags:1 ts: 1.470835 -ret: 0 st: 0 flags:1 dts: 1.480000 pts: 1.480000 pos: 502632 size: 15224 +ret: 0 st: 0 flags:1 dts: 1.480000 pts: 1.480000 pos: 480770 size: 14528 ret: 0 st: 0 flags:0 ts: 0.360000 -ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos: 115666 size: 12453 +ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos: 111012 size: 11927 ret:-1 st: 0 flags:1 ts:-0.760000 ret:-1 st:-1 flags:0 ts: 2.153336 ret: 0 st:-1 flags:1 ts: 1.047503 -ret: 0 st: 0 flags:1 dts: 1.040000 pts: 1.040000 pos: 341140 size: 14170 +ret: 0 st: 0 flags:1 dts: 1.040000 pts: 1.040000 pos: 326684 size: 13489 ret: 0 st: 0 flags:0 ts:-0.040000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12650 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12096 ret: 0 st: 0 flags:1 ts: 2.840000 -ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 687716 size: 15576 +ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 657534 size: 14881 ret: 0 st:-1 flags:0 ts: 1.730004 -ret: 0 st: 0 flags:1 dts: 1.720000 pts: 1.720000 pos: 594720 size: 15432 +ret: 0 st: 0 flags:1 dts: 1.720000 pts: 1.720000 pos: 568664 size: 14746 ret: 0 st:-1 flags:1 ts: 0.624171 -ret: 0 st: 0 flags:1 dts: 0.640000 pts: 0.640000 pos: 204894 size: 13273 +ret: 0 st: 0 flags:1 dts: 0.640000 pts: 0.640000 pos: 196428 size: 12719 ret: 0 st: 0 flags:0 ts:-0.480000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12650 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12096 ret: 0 st: 0 flags:1 ts: 2.400000 -ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 687716 size: 15576 +ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 657534 size: 14881 ret: 0 st:-1 flags:0 ts: 1.306672 -ret: 0 st: 0 flags:1 dts: 1.320000 pts: 1.320000 pos: 442576 size: 14799 +ret: 0 st: 0 flags:1 dts: 1.320000 pts: 1.320000 pos: 423494 size: 14119 ret: 0 st:-1 flags:1 ts: 0.200839 -ret: 0 st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos: 66366 size: 12233 +ret: 0 st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos: 63872 size: 11714 ret: 0 st: 0 flags:0 ts:-0.920000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12650 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5660 size: 12096 ret: 0 st: 0 flags:1 ts: 2.000000 -ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 687716 size: 15576 +ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 657534 size: 14881 ret: 0 st:-1 flags:0 ts: 0.883340 -ret: 0 st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos: 285502 size: 13726 +ret: 0 st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos: 273520 size: 13131 ret:-1 st:-1 flags:1 ts:-0.222493 ret:-1 st: 0 flags:0 ts: 2.680000 ret: 0 st: 0 flags:1 ts: 1.560000 -ret: 0 st: 0 flags:1 dts: 1.560000 pts: 1.560000 pos: 533212 size: 15322 +ret: 0 st: 0 flags:1 dts: 1.560000 pts: 1.560000 pos: 509938 size: 14597 ret: 0 st:-1 flags:0 ts: 0.460008 -ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 153232 size: 12726 +ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146970 size: 12168 ret:-1 st:-1 flags:1 ts:-0.645825 diff --git a/tests/ref/vsynth1/mjpeg b/tests/ref/vsynth1/mjpeg index 4f6bf83719..fe54d6f978 100644 --- a/tests/ref/vsynth1/mjpeg +++ b/tests/ref/vsynth1/mjpeg @@ -1,4 +1,4 @@ -af7ddc0d60cb2d1d83b0bfd829cc7b3a *./tests/data/vsynth1/mjpeg.avi -1570366 ./tests/data/vsynth1/mjpeg.avi -556ba548fe2b1b4ca98ef3f5d5e94bb8 *./tests/data/mjpeg.vsynth1.out.yuv -stddev: 7.92 PSNR: 30.15 bytes: 7603200/ 7603200 +8bbf9513b1822945539f27a6eff3c7fa *./tests/data/vsynth1/mjpeg.avi +1516140 ./tests/data/vsynth1/mjpeg.avi +c6ae81b5b896e4d05ff584311aebdb18 *./tests/data/mjpeg.vsynth1.out.yuv +stddev: 7.87 PSNR: 30.21 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth2/mjpeg b/tests/ref/vsynth2/mjpeg index cf5c424c4e..0b501f9f4f 100644 --- a/tests/ref/vsynth2/mjpeg +++ b/tests/ref/vsynth2/mjpeg @@ -1,4 +1,4 @@ -765b2637f313eda33afdcdc384bfbc06 *./tests/data/vsynth2/mjpeg.avi -704100 ./tests/data/vsynth2/mjpeg.avi -3dc419bf8ddc7482d811e4c9dcf9d418 *./tests/data/mjpeg.vsynth2.out.yuv -stddev: 4.38 PSNR: 35.29 bytes: 7603200/ 7603200 +89df32b46c977fb4cb140ec6c489dd76 *./tests/data/vsynth2/mjpeg.avi +673224 ./tests/data/vsynth2/mjpeg.avi +a96a4e15ffcb13e44360df642d049496 *./tests/data/mjpeg.vsynth2.out.yuv +stddev: 4.32 PSNR: 35.40 bytes: 7603200/ 7603200