Opened 3 years ago

Last modified 3 years ago

#4829 new defect

Overflows (?) in xyz -> rgb conversion

Reported by: cehoyos Owned by:
Priority: normal Component: swscale
Version: git-master Keywords: xyz
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

http://thread.gmane.org/gmane.comp.video.ffmpeg.user/58666
The sample attached to ticket #4827 is in fact decoded fine (at least visually) by the native jpeg 2000 decoder but the colourspace conversion shows posterization artefacts.
This is also reproducible with the libopenjpeg decoder.

$ ffmpeg -i frm_000127.j2c out.png
ffmpeg version N-74866-g0cdba4a Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[jpeg2000 @ 0x33bd940] End mismatch 1
    Last message repeated 4 times
[jpeg2000 @ 0x33bd940] End mismatch 2
    Last message repeated 1 times
[jpeg2000 @ 0x33bd940] End mismatch 1
    Last message repeated 28 times
[jpeg2000 @ 0x33bd940] End mismatch 2
[jpeg2000 @ 0x33bd940] End mismatch 1
    Last message repeated 19 times
Input #0, j2k_pipe, from 'frm_000127.j2c':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: jpeg2000 (JPEG 2000 digital cinema 2K), xyz12le, 2048x858, 25 tbr, 25 tbn, 25 tbc
Output #0, image2, to 'out.png':
  Metadata:
    encoder         : Lavf56.40.101
    Stream #0:0: Video: png, rgb48be, 2048x858, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.60.100 png
Stream mapping:
  Stream #0:0 -> #0:0 (jpeg2000 (native) -> png (native))
Press [q] to stop, [?] for help
[jpeg2000 @ 0x3655fa0] End mismatch 1
    Last message repeated 4 times
[jpeg2000 @ 0x3655fa0] End mismatch 2
    Last message repeated 1 times
[jpeg2000 @ 0x3655fa0] End mismatch 1
    Last message repeated 28 times
[jpeg2000 @ 0x3655fa0] End mismatch 2
[jpeg2000 @ 0x3655fa0] End mismatch 1
    Last message repeated 19 times
frame=    1 fps=0.8 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
video:5354kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
$ ffmpeg -vcodec libopenjpeg -pix_fmt xyz12le -i frm_000127.j2c out.png
ffmpeg version N-74866-g0cdba4a Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --enable-libopenjpeg
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, j2k_pipe, from 'frm_000127.j2c':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: jpeg2000, xyz12le, 2048x858, 25 tbr, 25 tbn, 25 tbc
Output #0, image2, to 'out.png':
  Metadata:
    encoder         : Lavf56.40.101
    Stream #0:0: Video: png, rgb48be, 2048x858, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.60.100 png
Stream mapping:
  Stream #0:0 -> #0:0 (jpeg2000 (libopenjpeg) -> png (native))
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:5354kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

I don't know if this ticket is related to ticket #3643.

Change History (2)

comment:1 Changed 3 years ago by richardpl

The sample attached in ticket looks fine to me, do you have some other samples?

comment:2 Changed 3 years ago by cehoyos

The command line here still produces a png with massive artefacts (posterization) in the top left corner with current FFmpeg git head, the artefacts do not appear without a colour space conversion, see ticket #4827.
This may or may not be a duplicate of ticket #3643.

Note: See TracTickets for help on using tickets.