Opened 9 years ago

Last modified 6 years ago

#2966 open defect

ljpeg: support 36bpp rgb

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

Description

that's the last mode supported by "My ViewPad" program for lossless jpeg

http://www1.datafilehost.com/d/a2822f88

C:\>ffmpeg -i 36bpp_rgb_lossless.jpg out.bmp
ffmpeg version N-56277-g2fcef19 Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 15 2013 02:23:39 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-pthreads --enable-memalign-hack --enable-runtime-cpudetect --
enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -lw
inmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapsh
ots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/sna
pshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3 --
enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-li
bvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-li
bopencore-amrwb --enable-libmp3lame --enable-libfreetype --enable-libvpx --disab
le-decoder=libvpx
  libavutil      52. 43.100 / 52. 43.100
  libavcodec     55. 31.101 / 55. 31.101
  libavformat    55. 16.102 / 55. 16.102
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 84.100 /  3. 84.100
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
[image2 @ 0x205fa40] Stream #0: not enough frames to estimate rate; consider inc
reasing probesize
Input #0, image2, from '36bpp_rgb_lossless.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, bgr24, 1200x1200, 25 tbr, 25 tbn, 25 tbc
Output #0, image2, to 'out.bmp':
  Metadata:
    encoder         : Lavf55.16.102
    Stream #0:0: Video: bmp, bgr24, 1200x1200, 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=-1.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
video:4219kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.000509
%

Attachments (3)

36_YCbCrK.jpg (292.5 KB ) - added by ami_stuff 6 years ago.
48_YCbCrK.jpg (295.6 KB ) - added by ami_stuff 6 years ago.
36_RGB.jpg (473.5 KB ) - added by ami_stuff 6 years ago.

Download all attachments as: .zip

Change History (10)

comment:1 by Carl Eugen Hoyos, 9 years ago

Component: undeterminedavcodec
Keywords: ljpeg mjpeg added
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-master
$ ffmpeg -i 36bpp_rgb_lossless.jpg
ffmpeg version N-56297-g7ac6c63 Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 15 2013 23:50:37 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      52. 43.100 / 52. 43.100
  libavcodec     55. 31.101 / 55. 31.101
  libavformat    55. 16.102 / 55. 16.102
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 84.100 /  3. 84.100
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
[image2 @ 0x2b3f080] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, image2, from '36bpp_rgb_lossless.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, bgr48le(12 bpc), 1200x1200, 25 tbr, 25 tbn, 25 tbc
At least one output file must be specified

comment:2 by Christophe, 8 years ago

The linked file is no longer available, can you attach it to this bug report instead?

in reply to:  2 comment:3 by ami_stuff, 8 years ago

Replying to kurosu:

The linked file is no longer available, can you attach it to this bug report instead?

It's too big, but here is a new link:

http://www.datafilehost.com/d/8f4a4787

comment:5 by Christophe, 8 years ago

Currently it decodes to 16bits per component without rescaling. It can then be encoded to format supporting 16 bits (thereby keeping the full dynamic afaik). My guess is that there are several ways to solve this:

  • actually implement support for BGR36 (that means conversion too)
  • or scale output of the jpeg decoder
  • or, seeing how the jpeg decoder already reports "bgr48le(12 bpc)", extend support for this mixed information in various codecs.

in reply to:  5 comment:6 by Carl Eugen Hoyos, 8 years ago

Replying to kurosu:

Currently it decodes to 16bits per component without rescaling. It can then be encoded to format supporting 16 bits (thereby keeping the full dynamic afaik). My guess is that there are several ways to solve this:

  • actually implement support for BGR36 (that means conversion too)

Please don't.
It was a fault that yuv with 8<bpc<16 was added, please don't add more.

  • or scale output of the jpeg decoder
  • or, seeing how the jpeg decoder already reports "bgr48le(12 bpc)", extend support for this mixed information in various codecs.

Imo, output should be rgb48 (or similar) with bits_per_coded_sample set accordingly.

by ami_stuff, 6 years ago

Attachment: 36_YCbCrK.jpg added

by ami_stuff, 6 years ago

Attachment: 48_YCbCrK.jpg added

by ami_stuff, 6 years ago

Attachment: 36_RGB.jpg added

comment:7 by ami_stuff, 6 years ago

I attached also some lossy samples.

Note: See TracTickets for help on using tickets.