Ticket #2082 (open defect)

Opened 6 months ago

Last modified 6 months ago

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

q1r17.jpg Download (4.0 KB) - added by ami_stuff 6 months ago.
q5r17.jpg Download (9.4 KB) - added by ami_stuff 6 months ago.
q15r17.jpg Download (25.5 KB) - added by ami_stuff 6 months ago.

Change History

Changed 6 months ago by ami_stuff

Changed 6 months ago by ami_stuff

Changed 6 months ago by ami_stuff

comment:1 Changed 6 months ago by cehoyos

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

Reproducible with ImageMagick?.

Note: See TracTickets for help on using tickets.