(2013-12-05 00:51)furii Wrote:
(2013-12-04 22:27)lmyllari Wrote: The only thing missing is my hack that allows you to output full range and tell the display it is a limited range signal. It is only usable with software decoding and Gotham. Consider it an expert setting for now. See https://github.com/laurimyllari/OpenELEC...e8b603144a
can you explain why one would want to output full range but tell the display it is a limited range signal?
i'm currently using an nvidia card but am strongly considering switching to haswell and have been following your fixes which i assume translate to haswell in general and is not confined simply to the nuc. i have a vt50 and have yet to have it professionally calibrated (why bother when you aren't getting perfect input?) because of an issue i see with 1-Grayscale Ramp.mp4 where there is banding. from other posts on the forum it seems this is a result of xbmc expanding from limited to full and back or something. the comment in your commit leads me to believe this would be fixed.
I have a professionally calibrated plasma and can recommend it.
I think you mostly got the idea. It's not really about outputting full range, but rather not modifying the signal.
The banding comes from expanding luma from 16-235 to 0-255. This is done for typical PC monitors, which expect a full range signal. New Intel linux drivers by default give TVs a limited range signal, taking the expanded 0-255 and scaling it to 16-235. This does not eliminate the banding that was created by the original expansion, and original information below 16 and above 235 was already lost in that same step. (Why do they do it? It's the right thing according to the standards, and some TVs don't like full range -> crushed blacks.)
If the player software (xbmc in this case) decodes to 16-235 (meaning "don't change luminance, keep black at 16 and white at 235"), the video card outputs full range 0-255 (meaning "don't scale the levels, just output what you're given"), and display is set to limited range input (meaning "16 is black, 235 white"), we eliminate the banding in greyscale ramp (because the range is not scaled at any point) and keep blacker-than-black (luma values under 16) and white-than-white (luma values above 235).
If your plasma defaults to limited range RGB (and doesn't listen to the infoframes in the HDMI stream) or you can set limited range manually, you don't need anything special. Just set your player software to 16-235 (which you can now do with Gotham and software decoding) and make sure the video card doesn't change the signal (the xrandr broadcast range "Full" setting mentioned a lot in this thread). In my case, the monitor obeys the infoframes (and there are other devices connected to the same input preventing a manual setting), so I need a patch to switch it to limited range without altering the video signal.