Opened 11 years ago

Closed 11 years ago

#2082 closed defect (fixed)

mjpeg: low quality + restart (and grayscale) = lower quality than libjpeg

Reported by: ami_stuff Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: mjpeg
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

cjpeg -targa -quality 15 -progressive -restart 17 -grayscale test.tga >q15r17.jpg
cjpeg -targa -quality 5 -progressive -restart 17 -grayscale test.tga >q5r17.jpg
cjpeg -targa -quality 1 -progressive -restart 17 -grayscale test.tga >q1r17.jpg

Please decode attached samples with ffmpeg and djpeg. The output from djpeg looks less blocky
The problem is most visible with q1r17.jpg when we compare output from ffmpeg and djpeg.

This is related to restart option, for example there is no problem while decoding:

cjpeg -targa -quality 1 -progressive -restart 0 -grayscale test.tga >q1r0.jpg

with ffmpeg (ffmpeg and djpeg output matches).

C:\>ffmpeg -i q1r17.jpg out.bmp
ffmpeg version N-48239-g69db85c Copyright (c) 2000-2012 the FFmpeg developers
  built on Dec 28 2012 02:20:50 with gcc 4.5.0 (GCC) 20100414 (Fedora MinGW 4.5.
0-1.fc14)
  configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-w32threads --enable-memalign-hack --enable-runtime-cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -
lwinmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snap
shots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/s
napshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3
--enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-
libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
  libavutil      52. 12.100 / 52. 12.100
  libavcodec     54. 81.100 / 54. 81.100
  libavformat    54. 50.102 / 54. 50.102
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 30.101 /  3. 30.101
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, image2, from 'q1r17.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, gray, 1024x768 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn,
 25 tbc
Output #0, image2, to 'out.bmp':
  Metadata:
    encoder         : Lavf54.50.102
    Stream #0:0: Video: bmp, gray, 1024x768 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s,
 90k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> bmp)
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
video:769kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.002794%

Attachments (3)

q1r17.jpg (4.0 KB ) - added by ami_stuff 11 years ago.
q5r17.jpg (9.4 KB ) - added by ami_stuff 11 years ago.
q15r17.jpg (25.5 KB ) - added by ami_stuff 11 years ago.

Download all attachments as: .zip

Change History (5)

by ami_stuff, 11 years ago

Attachment: q1r17.jpg added

by ami_stuff, 11 years ago

Attachment: q5r17.jpg added

by ami_stuff, 11 years ago

Attachment: q15r17.jpg added

comment:1 by Carl Eugen Hoyos, 11 years ago

Component: undeterminedavcodec
Keywords: mjpeg added
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-master

Reproducible with ImageMagick.

comment:2 by Michael Niedermayer, 11 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.