Colors extremely over-saturated on my TV

  • Hi guys.

    I've set up LibreELEC 7.0.2 with my Raspberry Pi 3 with my Sony Bravia TV.

    One of the first things I noticed is that the colors on videos look extremely over-saturated and unnatural. The same video when played on VLC on my Windows laptop looks just fine.

    I think this is probably related to color space, but I find no color space settings available in the video output settings in LibreELEC. According to the Kodi Wiki, this is supposed to be available in the system settings, but I cannot find it.

    What should I do?


  • Maybe try setting

    hdmi_pixel_encoding in config.txt

    see, RPiconfig - eLinux.org

    It seems that in LibreELEC, config.txt is located in /flash/config.txt rather than in /boot/config.txt

    It didn't already have a line for hdmi_pixel_encoding, so I added a new line. Changing the value does not seem to make any difference. :(

    EDIT: When I check the status using "tvservice -s", then a difference is shown. But I cannot see any difference on the TV visually.

    Edited once, last by Monie (October 17, 2016 at 9:13 AM).


  • EDIT: When I check the status using "tvservice -s", then a difference is shown. But I cannot see any difference on the TV visually.

    There shouldn't be any visible difference if TV respects the signalling.
    The setting will change both the (limited/full) range of the pixels output, and the signalling of limited/full range to the TV.
    So if the TV understands the signalling (it should) then it should display very similar pictures in both cases.

    The setting is only useful when the TV fails to respect the signalling, and e.g. if interpreting the pixels as full range when they are actually limited.
    Forcing the pixel encoding will solve that, but it is rarely required (only when TV is causing the problem).

    So, I don't think this is the issue.

    The TV may have different presets for colour/contrast/brightness from different sources. You may want to experiment in the TV menu.

  • There shouldn't be any visible difference if TV respects the signalling.
    The setting will change both the (limited/full) range of the pixels output, and the signalling of limited/full range to the TV.
    So if the TV understands the signalling (it should) then it should display very similar pictures in both cases.

    The setting is only useful when the TV fails to respect the signalling, and e.g. if interpreting the pixels as full range when they are actually limited.
    Forcing the pixel encoding will solve that, but it is rarely required (only when TV is causing the problem).

    So, I don't think this is the issue.

    The TV may have different presets for colour/contrast/brightness from different sources. You may want to experiment in the TV menu.

    Thanks and sorry for the late reply.

    I haven't been able to achieve satisfactory results with the TV settings and as far as I can see, this seems to be a problem with the Pi. My Pi and my Windows laptop produce very different images with the exact same TV settings.

    Here's how it looks like on my Windows laptop (normal colors). Sorry for the poor quality of the photo.

    And here's how it looks like on my Pi (oversaturated colors):

    The issue persists in OSMC as well, so this seems to be a problem with Kodi and my TV. It also persists over different video files.

    Here's a log from Kodi: DiJY

    I remember experiencing this kind of problem with a Mac Mini many years ago, and I fixed it after running some commands on the Terminal. I absolutely cannot remember right now what exactly I did to fix the problem.


  • It looks like the wrong colour-space. In your log it says: hdmi_pixel_encoding=3 which is YCbCr and it should be RGB.

    Change it to hdmi_pixel_encoding=1 (Limited RGB (16-235)) or hdmi_pixel_encoding=2 (Full RGB (0-255)) in the config.
    Config.txt - LibreELEC

    I had actually changed it to hdmi_pixel_encoding=3 manually in config.txt to see if that would resolve the problem.

    Unfortunately, the picture looks exactly the same in all four settings. In fact the above photo was taken at default settings when the encoding was at Limited RGB by default.

  • Ah ok, maybe change it back so you're not going to have problems with that in the future?

    I assume you tried both the laptop and RPI on the same HDMI port?

    Did you calibrate your laptop and do you have any other computer/device to try?


  • The PC may be driving the display in a DMT (monitor) mode, rather than a CEA (TV) mode.
    You could try adding "hdmi_group=2" to config.txt will force a DMT mode.

    Adding hdmi_group=2 shows the message "unsupported signal" on my TV and the colors do not change.
    [hr]


    Ah ok, maybe change it back so you're not going to have problems with that in the future?

    I assume you tried both the laptop and RPI on the same HDMI port?

    Did you calibrate your laptop and do you have any other computer/device to try?

    Yup I've changed it back now.

    Yes, I tried the laptop and RPI on the same port with the same HDMI cable. I did not do any calibration on the laptop.

    As for other devices, I remember using a Asus media player a year ago and the colors looked normal then. Also, the inbuilt media player on the TV (which can be used by connecting a flash drive to the TV's USB port) and the inbuilt Netflix app all show normal colors. So far this problem is exclusive to the Pi.

    Edited once, last by Monie (October 24, 2016 at 4:48 PM).


  • Can you plug the RPi into another TV to see if the problem is isolated to your Bravia?

    I plugged it into another TV and funnily enough, the colors looked absolutely normal on that TV. Here's an image of the second TV: Dropbox - IMG_20161025_110043.jpg

    Also, here's the Kodi log on the second TV: HCHQ

    This leads me to the conclusion that the problem is with my TV (the first one). But weirdly, that TV works fine with every other device other than the Raspberry Pi. So it can only lead me to conclude that it's a weird compatibility issue with the TV and the Pi.

    If it helps, the model of the first TV is KDL-55W950B.

    I'm not sure about this, but I was thinking that maybe messing with color space using the "xrandr" command might make a difference. But LibreELEC does not seem to allow this command.

  • Maybe try resetting your TV to defaults. Or check if TV has firmware update available.

    Also check your TV settings, the simplest solution is often the most likely. This should be done while the R Pi is playing because most TVs have separate picture settings per source.

    Code
    The triluminos feature means the TV has a 10 bit panel and a wide color gamut option. When turned on, that option will result in more saturated color. Having it off give more natural color.

    Edited once, last by trent (October 25, 2016 at 1:32 PM).

  • Whenever I setup a new kodi on my RPi I have go to system>settings>Display>Resolution and reset it to the correct resolution; the default is DESKTOP, which gives me the purple screen.

  • Hello guys. Sorry being a bit late to reply. Unfortunately, I've tried everything at this point. Meddled with all the TV settings. Updated the TV firmware. Reset the TV to default settings. Tried a different HDMI cable. Tried different HDMI ports. Nothing really produces ideal results -- the picture always ends up looking off.

    I'm going to try Kodi on my Windows laptop to see if it produces the same results (although VLC is fine). Will also try playing videos on Raspbian on the RPi to see if the problem is isolated to Kodi on the Pi.

    If I can somehow make the RPi work as a CEC adapter (like the one from pulse-eight), then I actually may be able to use my Windows laptop as a media center instead, utilizing the RPi for CEC alone. Is that possible?

  • Does "tried everything" include setting the "system>settings>Display>Resolution and reset it to the correct resolution" in Kodi?

    So far, you have only said what you have done to the cables and the TV.