[BUG] S905X Krypton: Horrible banding in 10 Bit videos

  • Videos encoded at 10 Bit color depth show horrible (hard) banding (lines) in Krypton.
    Gradations look perfectly smooth in Jarvis and Windows, although the videos are only being displayed at 8 Bit color depth there as well.

    Assumption:
    Jarvis and Windows properly convert the color depth to 8 Bits.
    Krypton just truncates the color depth.

    I am aware that this has been known for a while, but I still thought it makes sense to have a proper bug report thread for this.
    Maybe this can be forwarded to AMLogic somehow?

    Device type:
    S905X
    Build:
    Any Krypton build up to at least 8.0.1k
    Device:
    Mini M8S II 2GB/16GB

    How to reproduce:
    Play 10 Bit video and look out for gradation that is supposed to be smooth.

    Sample:
    view?usp=sharing

    Specs from sample video:

    Support logs:
    I don't see how a log would help in this case.

    I took pictures instead:

    Jarvis:
    zezNFby.jpg

    Krypton:
    9mtE5iI.jpg

    (It only shows 4:47 on the Jarvis picture because of Unpause Jumpback, which I set to 4 seconds. It is not installed in Krypton yet.)

    Edited once, last by jd17 (May 20, 2017 at 1:16 PM).

  • I deliberately chose a simple Blu-ray encode I made myself to avoid noise, i.e. limit this bug report to the 10 Bit issue only.

    Your file introduces 2160p, BT.2020 and HDR10 (ST 2084) as potential additional noise factors.
    However, the banding is very obvious in your sample too - in Krypton only. Jarvis again shows no banding.


    Also, your file shows all kinds of issues in Krypton, none of which are there in Jarvis.
    Signal interruption (black screens), weird bright dots...
    Again, this is why I chose a simple 1080p BT.709 encode.

    On a side note:
    There is no way to circumvent AACS 2.0 from a UHD Blu-ray.
    This PE2 sample must be a capture and in no way represents actual UHD HDR content.
    I would recommend to stick to official sample files (LG, Samsung, Sony) to show UHD/HDR related issues.

    Edited once, last by jd17 (May 20, 2017 at 1:04 PM).

  • I bet this is not Jarvis/Krypton issue but Marshmallow/Nougat kernel from Amlogic.

    Try using 7.0.3.012k and 8.0.1a. You should see the issue with the former and not see it with the latter.

    Sent from my Nexus 4 using Tapatalk

  • Yes, I know.
    This is why I also said this:


    I am aware that this has been known for a while, but I still thought it makes sense to have a proper bug report thread for this.
    Maybe this can be forwarded to AMLogic somehow?

    It is just one of the things which makes we wonder:
    Do you have to use the Nougat Kernel in Krypton?

    As far as I am concerned everything simply works better with the Marshmallow Kernel.
    No frame skips, smooth 10 Bit output, functional HDR - you name it...

    Is there anything essential that the Marshmallow Kernel can't do?
    Would it be possible to build Krypton around the Marshmallow Kernel?


    Edit:
    Sorry I read your post too fast...
    Is 8.0.1a using the Marshmallow Kernel?

    Edited once, last by jd17 (May 20, 2017 at 2:59 PM).

  • Yes, 8.0.1a is my latest build that uses MM kernel.

    Sent from my Nexus 4 using Tapatalk
    [hr]
    This isn't something that can be forwarded to Amlogic (and I don't know a way how to contact them) as I have imported only some parts of Nougat kernel. When I find time I want to make a build using "full" Nougat kernel to test.

    Actually people report something opposite: better colour reproduction and no issues with Live TV thanks to updated decoders.

    Sent from my Nexus 4 using Tapatalk

    Edited once, last by kszaq (May 20, 2017 at 5:07 PM).


  • Actually people report something opposite: better colour reproduction...

    I have yet to see any quantifyable evidence of those claims...
    There is no difference to me in content and I can't make out a difference on the Spears&Munsil pattern.

    Quote


    ...and no issues with Live TV thanks to updated decoders.

    I understand that of course. I don't use Live TV so I have not encountered any Live TV issues either.

  • I'm going to try a 8.0.1l build with this patch:

    That brings the kernel back to 8.0.1a while keeping everything else the same. If it works I'll post it online, hopefully tomorrow.

  • That sounds amazing! :) (Assuming the patches from afl1 are included in 8.0.1l...)

    Thanks for trying that, I'm looking forward to testing it.

  • Actually I have already built a version with MM kernel and all kernel updates that came along the way... but I have to test it before uploading.

  • My build finished: s905x build with MM kernel and here's the matching source. Banding is gone, but other 4k related bugs are back. I use the 'check previous episode' addon and the popup it produces when I start a out of order episode is garbled.
    I'm pretty happy with this build, but I only tested it for half an hour, maybe I'll change my mind later next week :)
    [hr]


    Actually I have already built a version with MM kernel and all kernel updates that came along the way... but I have to test it before uploading.

    Nice! I'm looking forward to that!

    Edited once, last by koenkooi (May 21, 2017 at 7:00 PM).

  • nougat kernel based librreelec is best in picture quality...but latest mm kernel based libreelec is best picture quality?what is difference between nougat based and mm based kernal libreelec?


  • 8.0.1l with MM kernel (freshly rebased on latest LE kernel)

    Should this be used with the same device tree as the nougat version?

    Edit: Current device tree works fine here.

    Edited once, last by Jaaxx (May 21, 2017 at 11:54 PM).

  • Even though you don't see conversion banding, it's still not "functional HDR" as said earlier. For true HDR output, you need to use Android. This could be done with a separate device or by dual booting.

    If you have 10 bit media and don't care about HDR or 10 bit output, the MM kernel is a great solution.

    Edited once, last by johngalt (May 22, 2017 at 5:14 AM).


  • My build finished: s905x build with MM kernel

    I only tried one thing last night with that build - I tested for frame skips.
    It looks good, the high bitrate movie played for 1h 8min via NFS and there was no frame skip. :)
    So far, so good...
    [hr]


    8.0.1l with MM kernel (freshly rebased on latest LE kernel): Index of /s905/8.0.1l-mm/

    Thanks kszaq, I will do some testing with that build too. :)
    [hr]


    nougat kernel based librreelec is best in picture quality...but latest mm kernel based libreelec is best picture quality?

    Why don't you compare and decide for yourself? ;)

    Quote


    what is difference between nougat based and mm based kernal libreelec?

    Well, this bug report is about banding in 10 Bit sources.
    10 Bit sources look infinitely better with the MM kernel.
    [hr]


    Even though you don't see conversion banding, it's still not "functional HDR" as said earlier. For true HDR output, you need to use Android. This could be done with a separate device or by dual booting.

    I was mainly referring to those black screen signal losses you currently have in Krypton when playing UHD/HDR content when I said "functional HDR".

    I know that HDR is not being output 1:1 as it should in 7.0.3.012j, but it looks fine to me. Not too different from the TV's internal media player to be honest.

    Do you know a good Android build I could test on Mini M8S II?
    The one that was initially installed on the box is horseshit. ;)

    Edited once, last by jd17 (May 22, 2017 at 7:22 AM).