[FFmpeg-devel] sws_scale RGB<->YUV luminance scaling
christophelorenz
christophelorenz
Thu Jan 24 13:33:55 CET 2008
(rev 11213, using libAvC/F libs)
While playing with sws_scale, I noticed that the output range for
YUV->RGB conversion are not done in graphic level.
Source pixel values in RGB : 255,255,255
Converted to YUV420 :235,128,128
Converted back to RGB 235,235,235
(tried RGBA32, RGB24, GBR...)
I clearly understand the 16-235 range reasons and can also understand
cases where RGB in the 16-235 range can be needed...
However I'm surprised to see that the default implementation is not
symmetric.
As people will often do YUV->RGB->custom pixel op->RGB->YUV, it will
endup with videos that are low contrast and gray blacks.
Note that I tried using ffmpeg for RGB24->YUV420->RGB24 video
conversions, and the problem is not apparent in that case.
Changing the YUV format from to PIX_FMT_YUVJ420P didn't changed anything.
I also tried to change the contrast/brightness to graphic levels by
using sws_getColorspaceDetails and sws_setColorspaceDetails.
But it didn't do anything on the output...
Why is it not symmetric, and how can you output full range RGB ?
Chris.
More information about the ffmpeg-devel
mailing list