Opened 7 years ago

Closed 6 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 7 years ago.
q5r17.jpg (9.4 KB) - added by ami_stuff 7 years ago.
q15r17.jpg (25.5 KB) - added by ami_stuff 7 years ago.

Download all attachments as: .zip

Change History (5)

Changed 7 years ago by ami_stuff

Changed 7 years ago by ami_stuff

Changed 7 years ago by ami_stuff

comment:1 Changed 7 years ago by cehoyos

  • Component changed from undetermined to avcodec
  • Keywords mjpeg added
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

Reproducible with ImageMagick?.

comment:2 Changed 6 years ago by michael

  • Resolution set to fixed
  • Status changed from open to closed
Note: See TracTickets for help on using tickets.