• 1
  • 221
  • 222
  • 223(current)
  • 224
  • 225
  • 260
Intel NUC - Haswell (4th Generation CPU)
(2014-07-20, 06:14)voip-ninja Wrote: What's the story on proper color with the latest versions of OE? To my 65VT30 Panasonic via Denon X4000 looks a little different than my other GPU.

set xrandr broadcast rgb full in autostart.sh and enable the 16-235 option in the video settings and you should be good to go.
Reply
(2014-07-20, 17:49)furii Wrote:
(2014-07-20, 06:14)voip-ninja Wrote: What's the story on proper color with the latest versions of OE? To my 65VT30 Panasonic via Denon X4000 looks a little different than my other GPU.

set xrandr broadcast rgb full in autostart.sh and enable the 16-235 option in the video settings and you should be good to go.

Hey thanks! I will give that a try and update accordingly later today.
Reply
I did what I think I needed to do to set the RGB range to full, but from looking at xrandr can't tell if anything happened... ideas?

Code:
OpenELEC:~ # xrandr --output HDMI1 --set "Broadcast RGB" "Full"
OpenELEC:~ # xrandr
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 698mm x 392mm
   1920x1080     60.00*+  59.94    24.00    23.98  
   1920x1080i    60.00    59.94  
   2880x480      60.00    59.94  
   1280x720      60.00    59.94  
   1024x768      60.00  
   1440x480      60.00    59.94  
   1440x480i     60.00    59.94  
   800x600       60.32  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Reply
(2014-07-21, 04:13)voip-ninja Wrote: I did what I think I needed to do to set the RGB range to full, but from looking at xrandr can't tell if anything happened... ideas?
You can use
Code:
xrandr --query --verbose
to make sure the settings are ok.

Then just set xbmc to 16-235 and use avshd709 (or other patterns of your choice) to verify.

I recommend also checking the resolution patterns. Sometimes xbmc scales the picture unnecessarily.
Reply
(2014-07-21, 04:36)lmyllari Wrote:
(2014-07-21, 04:13)voip-ninja Wrote: I did what I think I needed to do to set the RGB range to full, but from looking at xrandr can't tell if anything happened... ideas?
You can use
Code:
xrandr --query --verbose
to make sure the settings are ok.

Then just set xbmc to 16-235 and use avshd709 (or other patterns of your choice) to verify.

I recommend also checking the resolution patterns. Sometimes xbmc scales the picture unnecessarily.

Hi Imyllari!

Thanks for responding. This is actually turning into a deeper rabbit hole than I had hoped.

I discovered that with the RGB set to "full" even with 16-235 output selected in XBMC the picture was too dark. My TV is a 65VT30 using an ISF calibration preset on one of the HDMI inputs and the color range is set to "auto"... changing it manually to 16-235 doesn't seem to change things so I'm guessing that auto is selecting 16-235 for this content.

As a benchmark/comparison I am playing same source file from original BD on a PS4, using a different input (with same video settings) through my Denon X4000.

The closest I can get is when I don't override RGB output to full (so I'm guessing it is limited) and I set 16-235 on in the menus. It is close, but still slightly different than the original BD.

Interestingly with this "close" setting, the XBMC menus look terrible, very very gray, but content seems as close to original as I can get.

All in all very confusing and a little disappointing.

Here's the output (after reboot so didn't mess with RGB) of xrandr;

Code:
OpenELEC:~ # xrandr --query --verbose
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
HDMI1 connected 1920x1080+0+0 (0xaf) normal (normal left inverted right x axis y axis) 698mm x 392mm
    Identifier: 0x43
    Timestamp:  1460540861
    Subpixel:   unknown
    Gamma:      1.0:1.0:1.0
    Brightness: 1.0
    Clones:    
    CRTC:       0
    CRTCs:      0 1 2
    Transform:  1.000000 0.000000 0.000000
                0.000000 1.000000 0.000000
                0.000000 0.000000 1.000000
               filter:
    EDID:
        00ffffffffffff0011ee3a0001010101
        00170103800000780adaffa3584aa229
        17494b21080001010101010101010101
        010101010101023a801871382d40582c
        4500ba882100001e011d8018711c1620
        582c2500ba882100009e000000fc0044
        454e4f4e2d41565248440a20000000fd
        00173d0f440f000a20202020202001ce
        020332714d9005200403020706010e23
        0f24350f7f073d1ec01507505f7e0157
        0600677e004d0200835f000065030c00
        1500023a801871382d40582c45001009
        0000001e011d8018711c1620582c2500
        10090000009e011d803e73382d407e2c
        458010090000001e011d007251d01e20
        6e28550010090000001e000000000042
    Broadcast RGB: Automatic
        supported: Automatic, Full, Limited 16:235
    audio: auto
        supported: force-dvi, off, auto, on
  1920x1080 (0x48) 148.500MHz +HSync +VSync +preferred

And here's some sample photos;

Intel i3 NUC;
Image

And PS4 with original BD;
Image
Reply
Here's a better idea of what I'm seeing.

You'll note in this first image from the NUC that you can barely see any detail in the shadowy area of the soldier's arm/torso;

Image

And here's close to the same frame from the original BD on the PS4;
Image

The PS4 image is noticeably better.
Reply
Calibrating PC's is a pain in the butt at the best of times.

I had an HTPC about 5 years ago and gave up on it purely down to problems calibrating black level. Having just bought an NUC (and I use windows rather than openlec) I fully expected to hit the exact same issues and I did. Luckily, I got the black level/shadow detail just right after masses of tweaking and hair-pulling only to find that setting everything back to the defaults worked more or less perfectly with minor tweaking within XBMC and the TV. I did not repeat the main source of the problem I had last time of trying to calibrate both the HTPC's desktop and video settings - they counteract each other to some extent and best to calibrate video if thats your main use and live with whatever the desktop ends up at (generally its slightly brighter).

I use AVS HD 709 as recommended above (the "Black Clipping" pattern in Basic Settings) and it nails the black level providing you use the correct settings and adjustments (easier said than done, I know), BUT BEWARE, in getting the correct setting for XMBC you may then lose your PS4 black level settings if you are using the same input on your TV (I use a Lumagen Mini which allows multiple settings from different devices on the same TV input), if you use different inputs on your TV you should be be fine. Also, your TV may well be doing some manipulation of the signal, it might be converting it to RGB or whatever and it may be set to full instead of limited etc, etc. Its a minefield and its easy to despair over, been there done that.

Remember, no two devices have the same color/black level output on your TV, they all need tweaking to some extent. Its better to tweak the device itself if it has the appropriate controls rather than tweak using the TVs controls. Your PS4 may just have been pretty near perfect out of the box, thats more luck than anything else. Your NUC on someone elses TV may give perfect shadow detail, again, luck. A calibrated TV is only calibrated for the sources it had attached to it when it was calibrated, add in a new source and it may very well be that the display from said device is not optimal and the device and/or TV needs recalibrated. If possible, calibrate the source device to the TV, although sometimes its just easier to tweak the TV as usually it has full controls but as said before, if you have one input in use for all devices chances are one or more devices will end up with a less than optimal display - for example, in general, brightness can't be set at different levels on the same input for different devices (I know some TVs can do this, a lot can't).

Try a different input for the NUC and tweak away without disturbing the PS4 settings if you can. Getting the black level etc right on a PC can be done but its more difficult given the multitude of settings on both the NUC and your Telly, any mismatch in settings on either of them and you have a bad picture.

If someone has the same setup as you, they may be able to give specific advice (I use a Pioneer Kuro and the best setting for me in the TV is having the NUC connected as a "Video" source rather than a "PC" source - far better picture and only allows 16-235 input, makes things a bit easier to correct if it goes wrong, also inputting YCbcr rather than RGB gave me the best gamma level which also affects black detail).

Good luck, you'll get there, just don't give up as it is all do-able, just takes time and a bit of thinking through the problem. Its not rocket science, but at times it feels like it is, like I said been there done that and still have the bald patches to show for it!
Reply
Thanks for comments Boris. I use a single input on the TV since I run everything through a pretty good AVR. The AVR might also offer some video enhancements that can be used to tweak the NUC input specifically.

Can someone remind me if there is a way to send the test pattern to the OpenElec display through the shell? I recall there was a way to do that but can't remember it now.

As it is currently with the NUC set to 16-236, the picture is tolerable, just not as good as it could be. Frustrating to spend too much time with it, but that's the way things are these days if you care about PQ.
Reply
(2014-07-21, 16:23)boris blank Wrote: Remember, no two devices have the same color/black level output on your TV, they all need tweaking to some extent.
Hi Boris,

I mostly agree with your post, but the above is incorrect. The NUC (at least using OpenELEC) is very well behaved and will match other (digital) video sources with correct output levels.

There are three variables and if you understand these, finding the right settings should be pretty easy. If you don't want to go into the details, there are two basic setups that should work on any standards compliant TV (and at least one should work on the rest..)

  1. Everything at default. XBMC will output full range, GPU will scale full range signal to limited range and signal to the TV that signal is limited range. This should work on any TV using the standard 1080p modes. Blacker-than-black and whiter-than-white will be clipped and there will be some banding.
  2. Full range output. This is set up using xrandr. XBMC will output full range and GPU will pass it through and signal to the TV that signal is full range. (Some TVs and receivers will happily ignore this and crush blacks and whites.) Blacker-than-black and whiter-than-white will be clipped and there will be some banding. (Banding can be fixed by adding dithering to XBMC, I have a proof of concept patch for this.)

If you just want a setting that works, pick one of the above and use avshd709 to verify. Note that both will clip BtB and WtW (video signal levels below 16 and above 235).

If you want to go a little further, here are the three variables you should consider:
  1. Scaling applied by XBMC. By default XBMC takes the original 16-235 levels and expands them to 0-255. This clips BtB and WtW and introduces banding. To avoid this, XBMC can be set to 16-235 levels and it will pass the video through with BtB and WtW intact.
  2. Scaling applied by GPU. If the output range is set to full, GPU passes the signal through unmodified. If the output range is set to limited, GPU will take the XBMC output and scale 0-255 to 16-235 levels; if XBMC is outputting full range, original levels are restored, but the clipping and banding caused by the previous 16-235 -> 0-255 are not fixed. If the output range is set to auto, limited range will be used for standard video modes.
  3. Signaling to the TV. The GPU sends AVI infoframes along with the video, and they include a bit that specifies the signal level. This bit is set according to the output range set using xrandr.

From these you can see how the two settings I suggested above work (and why they should work on any TV). If your TV ignores the infoframes and assumes limited range, setting XBMC to 16-235 and GPU to full range gives the best quality.

You can also see why setting both XBMC and GPU to limited range gives you incorrect levels.

It is possible to patch the driver to allow untouched output with infoframes telling it is limited range. This should work on all TVs and matches what a standalone player typically does.

While checking the levels, it's important to keep in mind whether the BtB/WtW are passed through the whole chain (XBMC, GPU and whatever other devices may be between your PC and TV - a receiver, signal processor, splitter or anything else). It doesn't matter much for real content, but may cause loss of hair while checking the levels.

edit: Be sure to have XBMC contrast/brightness neutral when looking for the correct settings. No adjustment on the NUC is needed to get correct levels.

(2014-07-21, 17:01)voip-ninja Wrote: Can someone remind me if there is a way to send the test pattern to the OpenElec display through the shell? I recall there was a way to do that but can't remember it now.
Why not download the mp4 version of avshd709 and play the files with XBMC as you would any other video files? This gives you the exact same video path that you're trying to verify.
Reply
(2014-07-21, 17:23)lmyllari Wrote: Why not download the mp4 version of avshd709 and play the files with XBMC as you would any other video files? This gives you the exact same video path that you're trying to verify.

OK, I will give this a try and see if I get anywhere.

Your description of the video chain is excellent, and I suspect that the problem I am seeing is due to incorrect setup for my display (maybe my display on "auto" is not behaving correctly) or my AVR.

Perhaps with the test patterns I can figure it out.
Reply
(2014-07-21, 18:01)voip-ninja Wrote: OK, I will give this a try and see if I get anywhere.

Your description of the video chain is excellent, and I suspect that the problem I am seeing is due to incorrect setup for my display (maybe my display on "auto" is not behaving correctly) or my AVR.

Perhaps with the test patterns I can figure it out.
The difference between UI and video you mentioned made me think of the contrast/brightness adjustments (added to the original post) but also the swfilter setting.

It's been a while since I looked into this, but I think if you're trying to get untouched limited range output, you'll need to either disable VAAPI or use swfilter. The VAAPI driver uses hardcoded coefficients for YCbCr->RGB transform which scale from 16-235 to 0-255 levels. swfilter gets around this limitation by grabbing the original frames.
Reply
XBMC's limited range setting 16-235 can ONLY work if graphics is set to full range (and AVR passes the signal through)

@lmyllari is correct, the setting does not make much sense with VAApi rendering because we can't influence YUV-RGB conversion done inside VAAPI.

Some AVRs convert full range to limited and you can do anything about it. In this case leave gfx to default which is limited and set TV to limited as well.
Reply
(2014-07-21, 18:31)FernetMenta Wrote: XBMC's limited range setting 16-235 can ONLY work if graphics is set to full range (and AVR passes the signal through)

@lmyllari is correct, the setting does not make much sense with VAApi rendering because we can't influence YUV-RGB conversion done inside VAAPI.

Some AVRs convert full range to limited and you can do anything about it. In this case leave gfx to default which is limited and set TV to limited as well.

So I've been doing some testing, and what I'm seeing is this;

I'm using Greyscale-Steps.mp4 to test this, just to see if BTB and WTW is visible;

With SW decode, RGB set to "full" and 16-235 set in XBMC I see BTB and WTW in the test pattern, the image looks as close as I've seen to the PS4... but I do have some video overscan issues going on.

With HW decode I am having a hard time getting it to look the same;

With RGB set to "full" and 16-235 turned on, I get black crush. No BTB and no WTW in test pattern.

With RGB set to "full" and 16-235 turned OFF, I get even worse black crush. No BTB and no WTW in test pattern.

With RGB set to default and 16-235 turned off, I get the closest picture to the SW decode (at least I think). No BTB and no WTW in test pattern.

With RGB set to default and 16-235 turned ON, the XBMC menus look noticeably washed out... video though is pretty close to RGB = limited and 16-235 set to off... which I guess is the default... weird.

So, at the end of the day it looks like possibly best PQ is with software decode which is kind of a bummer. Will have to tinker some more.

Also, I had never checked the color/etc video settings on the PS4. I just did, and color as well as YcBR, etc, are all set to "automatic". I haven't found a way to mount my USB stick on the PS4 so I was not able to run the same test pattern on it to check BTB and WTW.
Reply
(2014-07-22, 01:19)voip-ninja Wrote: With SW decode, RGB set to "full" and 16-235 set in XBMC I see BTB and WTW in the test pattern, the image looks as close as I've seen to the PS4... but I do have some video overscan issues going on.
This tells you that your TV ignores the range in infoframes and will take limited range signal. This is good for your purposes. Smile

Quote:With HW decode I am having a hard time getting it to look the same;
Did you enable software filtering? My guess is that might fix it.

Quote:With RGB set to "full" and 16-235 turned on, I get black crush. No BTB and no WTW in test pattern.
Assuming I was right above, you are actually getting full range signal from VAAPI, and your TV is still showing it as limited range. This leads to loss of near black and near white.

Quote:With RGB set to "full" and 16-235 turned OFF, I get even worse black crush. No BTB and no WTW in test pattern.
Not sure why this is different. Video is probably getting rendered with the wrong assumption about its range.

Quote:With RGB set to default and 16-235 turned off, I get the closest picture to the SW decode (at least I think). No BTB and no WTW in test pattern.
I think you're getting full range video scaled to limited range by your GPU. You'll notice banding in the grayscale ramp (in misc patterns)

Quote:With RGB set to default and 16-235 turned ON, the XBMC menus look noticeably washed out... video though is pretty close to RGB = limited and 16-235 set to off... which I guess is the default... weird.
The menus look washed out because they are first scaled to limited range by XBMC, then again by the GPU - this puts black too high and white too low. Video goes through a different path (which may expect limited range output from the decoder when VAAPI is giving full range).

Quote:So, at the end of the day it looks like possibly best PQ is with software decode which is kind of a bummer. Will have to tinker some more.
It sounds like your TV behaves the same as mine. I am happily using hardware decoding with correct levels, so there's just some setting missing.
Reply
Thanks, I will try with software filtering and check out the results... based on what I've reported, what do you think my best shot is?
Reply
  • 1
  • 221
  • 222
  • 223(current)
  • 224
  • 225
  • 260

Logout Mark Read Team Forum Stats Members Help
Intel NUC - Haswell (4th Generation CPU)7