1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

SDR & HDR 1080p/4k capable setup with Hyperion-NG for Media Center

Discussion in 'Hyperion Setup Showcase' started by Awawa, 27 July 2020.

  1. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    I've tested on default settings for signal detection and it works as intended:
    Code:
     2020-10-04T20:55:53.584Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:766:init_device()) Set framerate to 30 fps
    2020-10-04T20:55:53.584Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:100:loadLutFile()) LUT file found: /home/pi/.hyperion/lut_lin_tables.3d
    2020-10-04T20:55:53.584Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:109:loadLutFile()) Index 1 for HDR YUV
    2020-10-04T20:55:53.682Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:131:loadLutFile()) LUT file has been loaded
    2020-10-04T20:55:53.682Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:790:init_device()) Pixel format=YUYV
    2020-10-04T20:55:53.691Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Multithreading for V4L2 is enabled. Available thread's count 4
    2020-10-04T20:55:53.694Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Started
    2020-10-04T20:55:53.695Z [hyperiond V4L2:/DEV/VIDEO0] (ERROR) Frame too small: 0 != 1572864
    2020-10-04T20:55:55.449Z [hyperiond V4L2:/DEV/VIDEO0] (ERROR) Previous line repeats 3 times
    2020-10-04T20:55:55.450Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Signal lost
    2020-10-04T20:55:56.468Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 240 is now inactive
    2020-10-04T20:55:56.468Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 255
    2020-10-04T20:55:56.468Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:538:handlPriorityChangedLedDevice()) priority[255], previousPriority[240]
    2020-10-04T20:55:56.468Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:541:handlPriorityChangedLedDevice()) No source left -> switch LED-Device off
    2020-10-04T20:56:08.785Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Signal detected
    2020-10-04T20:56:08.785Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 240 is now active
    2020-10-04T20:56:08.785Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 240
    I've paused the movie on the intro black frame and then I resumed it.
     
    • Thank you Thank you x 1
  2. pclin

    pclin Active Member

    Messages:
    384
    Hardware:
    +nodeMCU/ESP8266
    Then it will probably be due to my settings for (VMin, Hmin, VMax, Hmax), I'll try that out.

    Thanks and regards pclin
     
  3. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    As I write earlier I experience the same. Could not calibrated it in SDR as I want.
    I've got idea than maybe I can revert color processing procedure and restore old configuration from the classic Hyperion but it's one way ticket.
    Must be remembered that HDR lut correction isn't 100% bulletproof: there are some information lost and it's only a try (good one I think) to make it look as on the TV and even with old color procedure there will be some differences. Fortunately mainly in dark areas of the frame.
     
  4. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    Good news!
    How to eat a cake and have a cake? Yes, now it's possible for the color calibration at least.
    I added old Hyperion calibration panel with most settings.
    And yes, saturation & luminance control is back now :-D
    [​IMG]

    It's possible now to switch between new/old calibration panel to compare result. On default settings there will be no difference of course.
    Dont know..maybe I'm too stupid, there are too many settings or my lack of patient cause I could not set calibration with new Hyperion.NG panel.
    Old one was clean & simply.

    And one more important thing.
    Because I included latest patches from Hyperion.NG there is a support for sk9822 now.
    Most users think that they have APA102.
    In fact most (if not all) models of leds sold on Aliexpress are their chipper clone sk9822.
    You can find on the internet how to recognize them.
    However the protocol is not 100% compatible with APA102 and it may cause different problems (flickering?).
    I think even after included it the Hyperion.NG the protocol isn't fixed.
    In my fork I added patch found in FastLed to make it work better but I could not test it.

    New prerelease:
    https://github.com/awawa-dev/HyperHDR/releases/tag/v9.2.0.8
     
    Last edited: 9 October 2020
    • Like Like x 3
    • Thank you Thank you x 1
  5. panec

    panec New Member

    Messages:
    15
    Hardware:
    RPi3
    Sorry for a slight off topic: Is there a list best grabbers that will work with this software? the one that is suggested in first thread is: "ezcap 269" but are there any other? Also the mentioned one is capable of HDR [email protected] but with new consoles coming in are there valid approaches to have HDR [email protected]20 ideally with VRR support?
     
  6. pho08

    pho08 Member

    Messages:
    40
    awesome thank you! will try this over the weekend!
     
  7. amachongz

    amachongz New Member

    Messages:
    2
    Hardware:
    RPi3, +Arduino
    Hi awawa,

    I have clean install v9.2.0.8 on my Pi 3 b+
    But, I have issue with LED DEVICE wont turn ON at remote control section.
     
  8. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    Hard to say...as I tested moment ago on my setup it worked.
     
  9. amachongz

    amachongz New Member

    Messages:
    2
    Hardware:
    RPi3, +Arduino
    It happen when i select controller type ws281x. Maybe u can check it
     
  10. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
  11. pclin

    pclin Active Member

    Messages:
    384
    Hardware:
    +nodeMCU/ESP8266
    @Awawa
    Would it be possible to set the values for temperature, saturation & luminance with hyperion-remote?
    I really like the old options in hyperion-ng.

    Regards pclin
     
  12. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
  13. pclin

    pclin Active Member

    Messages:
    384
    Hardware:
    +nodeMCU/ESP8266
    OK. thanks.

    hyperion-remote --help
    hyperion-remote:
    version : (detached from fb413cd) (GitHub-66bef6b/fb413cd-1566231780
    build time: Apr 7 2020 11:01:42
    Simple application to send a command to hyperion using the Json interface
    Build time: Apr 7 2020 11:01:36

    Usage: hyperion-remote [OPTIONS]

    Parameters:
    -a, --address <arg> Set the address of the hyperion server [default: localhost:19444]
    -p, --priority <arg> Use to the provided priority channel (the lower the number, the higher the priority) [default: 100]
    -d, --duration <arg> Specify how long the leds should be switched on in millseconds [default: infinity]
    -c, --color <arg> Set all leds to a constant color (either RRGGBB hex value or a color name. The color may be repeated multiple time like: RRGGBBRRGGBB)
    -i, --image <arg> Set the leds to the colors according to the given image file
    -e, --effect <arg> Enable the effect with the given name
    --effectArgs <arg> Arguments to use in combination with the specified effect. Should be a Json object string.
    -l, --list List server info and active effects with priority and duration
    -x, --clear Clear data for the priority channel provided by the -p option
    --clearall Clear data for all active priority channels
    -q, --qualifier <arg> Identifier(qualifier) of the transform to set
    -s, --saturation <arg> !DEPRECATED! Will be removed soon! Set the HSV saturation gain of the leds
    -v, --value <arg> !DEPRECATED! Will be removed soon! Set the HSV value gain of the leds
    -u, --saturationL <arg> Set the HSL saturation gain of the leds
    -m, --luminance <arg> Set the HSL luminance gain of the leds
    -n, --luminanceMin <arg> Set the HSL luminance minimum of the leds (backlight)
    -g, --gamma <arg> Set the gamma of the leds (requires 3 space seperated values)
    -t, --threshold <arg> Set the threshold of the leds (requires 3 space seperated values between 0.0 and 1.0)
    -b, --blacklevel <arg> !DEPRECATED! Will be removed soon! Set the blacklevel of the leds (requires 3 space seperated values which are normally between 0.0 and 1.0)
    -w, --whitelevel <arg> !DEPRECATED! Will be removed soon! Set the whitelevel of the leds (requires 3 space seperated values which are normally between 0.0 and 1.0)
    --print Print the json input and output messages on stdout
    -h, --help Show this help message and exit
    -y, --qualifier <arg> !DEPRECATED! Will be removed soon! Identifier(qualifier) of the correction to set
    -Y, --correction <arg> !DEPRECATED! Will be removed soon! Set the correction of the leds (requires 3 space seperated values between 0 and 255)
    -z, --qualifier <arg> Identifier(qualifier) of the temperature correction to set
    -Z, --temperature <arg> Set the temperature correction of the leds (requires 3 space seperated values between 0 and 255)
    -j, --qualifier <arg> Identifier(qualifier) of the adjustment to set
    -R, --redAdjustment <arg> Set the adjustment of the red color (requires 3 space seperated values between 0 and 255)
    -G, --greenAdjustment <arg> Set the adjustment of the green color (requires 3 space seperated values between 0 and 255)
    -B, --blueAdjustment <arg> Set the adjustment of the blue color (requires 3 space seperated values between 0 and 255)
    hyperion-remote --help
    hyperion-remote:
    Version : 9.2.0.8 (master (GitHub-962442e5/2a0e81b8-1602255424))
    build time: Oct 10 2020 10:24:03
    Usage: hyperion-remote [options]
    Application to send a command to hyperion using the Json interface

    Options:
    -a, --address <address> Set the address of the
    hyperion server [default:
    127.0.0.1:19444]
    -t, --token <token > If authorization tokens
    are required, this token is
    used
    -I, --instance <instance> Select a specific target
    instance by name for your
    command. By befault it uses
    always the first instance
    -p, --priority <priority> Used to the provided
    priority channel (suggested
    2-99) [default: 50]
    -d, --duration <duration> Specify how long the leds
    should be switched on in
    milliseconds [default:
    infinity]
    -c, --color <color> Set all leds to a constant
    color (either RRGGBB hex
    getColors or a color name.
    The color may be repeated
    multiple time like:
    RRGGBBRRGGBB)
    -i, --image <image> Set the leds to the colors
    according to the given
    image file
    -e, --effect <effect> Enable the effect with the
    given name
    --effectFile <effectFile> Arguments to use in
    combination with
    --createEffect
    --effectArgs <effectArgs> Arguments to use in
    combination with the
    specified effect. Should be
    a Json object string.
    --createEffect <createEffect> Write a new Json Effect
    configuration file.
    First parameter = Effect
    name.
    Second parameter = Effect
    file (--effectFile).
    Last parameter = Effect
    arguments (--effectArgs.)
    --deleteEffect <deleteEffect> Delete a custom created
    Json Effect configuration
    file.
    -l, --list List server info and
    active effects with
    priority and duration
    -s, --sysinfo show system info
    -x, --clear Clear data for the
    priority channel provided
    by the -p option
    --clearall Clear data for all active
    priority channels
    -E, --enable <enable> Enable the Component with
    the given name. Available
    Components are [SMOOTHING,
    BLACKBORDER, FORWARDER,
    BOBLIGHT_SERVER, GRABBER,
    V4L, LEDDEVICE]
    -D, --disable <disable> Disable the Component with
    the given name. Available
    Components are [SMOOTHING,
    BLACKBORDER, FORWARDER,
    BOBLIGHT_SERVER, GRABBER,
    V4L, LEDDEVICE]
    -q, --qualifier <qualifier> Identifier(qualifier) of
    the adjustment to set
    -L, --brightness <brightness> Set the brightness gain of
    the leds
    --brightnessCompensation <brightnessCompensation> Set the brightness
    compensation
    -n, --backlightThreshold <backlightThreshold> threshold for activating
    backlight (minimum
    brightness)
    --backlightColored <backlightColored> 0 = white backlight; 1 =
    colored backlight
    -g, --gamma <gamma> Set the overall gamma of
    the leds
    --print Print the json input and
    output messages on stdout
    -h, --help Show this help message and
    exit
    -R, --redAdjustment <redAdjustment> Set the adjustment of the
    red color (requires colors
    in hex format as RRGGBB)
    -G, --greenAdjustment <greenAdjustment> Set the adjustment of the
    green color (requires
    colors in hex format as
    RRGGBB)
    -B, --blueAdjustment <blueAdjustment> Set the adjustment of the
    blue color (requires colors
    in hex format as RRGGBB)
    -C, --cyanAdjustment <cyanAdjustment> Set the adjustment of the
    cyan color (requires colors
    in hex format as RRGGBB)
    -M, --magentaAdjustment <magentaAdjustment> Set the adjustment of the
    magenta color (requires
    colors in hex format as
    RRGGBB)
    -Y, --yellowAdjustment <yellowAdjustment> Set the adjustment of the
    yellow color (requires
    colors in hex format as
    RRGGBB)
    -W, --whiteAdjustment <whiteAdjustment> Set the adjustment of the
    white color (requires
    colors in hex format as
    RRGGBB)
    -b, --blackAdjustment <blackAdjustment> Set the adjustment of the
    black color (requires
    colors in hex format as
    RRGGBB)
    -m, --ledMapping <ledMapping> Set the methode for image
    to led mapping valid
    values: multicolor_mean,
    unicolor_mean
    -V, --videoMode <videoMode> Set the video mode valid
    values: 2D, 3DSBS, 3DTAB
    --sourceSelect <sourceSelect> Set current active
    priority channel and
    deactivate auto source
    switching
    --sourceAutoSelect Enables auto source, if
    disabled prio by manual
    selecting input source
    --off Deactivates hyperion
    --on Activates hyperion
    --configGet Print the current loaded
    Hyperion configuration file
    --schemaGet Print the json schema for
    Hyperion configuration
    --configSet <configSet> Write to the actual loaded
    configuration file. Should
    be a Json object string.
    Regards pclin
     

    Attached Files:

  14. pclin

    pclin Active Member

    Messages:
    384
    Hardware:
    +nodeMCU/ESP8266
    In the HyperionControl plugin (Dreambox), we use hyperion-remote to set the values.
    So you have live changes directly when you make changes to the color settings, and not only when saving as with hyperion-ng. That makes it much easier to calibrate the colors.

    Regards pclin
     
    Last edited: 18 October 2020
  15. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    @pclin I will look into this.

    And for advanced users as I don't have a plan to release new version in a few next weeks:

    After some experiments I think I improved the LUT table generator. Main changes:
    - gamma promotion was too strong, a lot of details were lost in the dark scenes. Now I reduced a bit gamma curve to bring the details back, at least for some level as we cant have real HDR on SDR capture device.
    - promote blue, and some red for a cost of a green component.

    First LUT generator was optimized for HDR promo demos as a proof of concept. The problem was that they were too bright, real movies aren't.
    For example in Avanpost in the dark scene dark blue color turns into celadon and that was annoying.

    New improved LUT table for tests.
    https://github.com/awawa-dev/HyperHDR/releases/download/v9.2.0.8/experimental_lut_lin_tables.7z
     
    • Like Like x 1
  16. NeeeeB

    NeeeeB Active Member

    Messages:
    178
    Hardware:
    RPi3, +Arduino, +nodeMCU/ESP8266
    Hello !!
    I have a little problem with HyperHDR on a pi3.
    I use your latet version but I can't find the setting for baud rate anymore with adalight..
    upload_2020-10-18_19-27-24.png

    Before we could set the baud rate, now it is not possible and of course my Leds don't work.
    Is it normal that it was removed?
     
  17. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    use expert level settings in Hyperion.NG, things that you are missing are hidden on default
     
    • Like Like x 2
  18. NeeeeB

    NeeeeB Active Member

    Messages:
    178
    Hardware:
    RPi3, +Arduino, +nodeMCU/ESP8266
    Oh...totally missed that...thanks.
     
  19. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    • Like Like x 1
  20. Awawa

    Awawa Active Member

    Messages:
    227
    Hardware:
    RPi1/Zero, RPi3, +nodeMCU/ESP8266
    Out of schedule but I've got some new ideas and time due to the pandemic situation in the country.
    1. I found some place to improve how the mean color from the input source (grabber or other) is computed.
      In Hyperion.NG it's done by averaging red,green,blue.

      Why it isn't optimal algorithm is explained here:


      So I've introduced two new option for LED color processing
      [​IMG]
      • Advanced option:
        Mean color is computed as square root of average color component to second power.
        LED are generally brighter.
        You can see the difference on the following screenshots.

        Hyperion default mean color:
        averaging sum of color component causes red to be reduced by the black surrounding.
        [​IMG]

        New advanced option:
        preserves the brightness
        [​IMG]


      • Advanced weighted: the algorithm I prefer.
        For each led the input image box is divided in a half: first closer to the (TV) edge and the second.
        The mean color is computed as advanced option for each box, then final mean color is computed as 3/4 of 1' and 1/4 of 2".
        This cause that the part of the image that is closer to the TV edge has greater impact on the LED.

      Algorithms are optimized so it shouldn't have any significant impact on the main thread performance (we have a lot of room as the grabber is moved to other threads)

    2. Improved LUT table. The first idea came from the FastHDR project. I understand now what it works. I think that was a lucky shot...but really good one.
      Even now I think that it produces far better results than ITE base algorithm. But it lost some details in the dark scenes so I've introduced some elements of ITE to bring them back. But FastHDR concept is still dominant.
      BT2020 to BT709 option is removed as it wasn't necessary and it shifted image towards the red.

    3. At last :) LUT table now is included in the DEB & RPM installers! But check logs in the debug mode to make sure if it's work as it's the first release of that type.

    4. @pclin I've added luminescence,saturation & temperature control for hyperion-remote. Option 'Hyperion classic calibration" must be activated first in the color calibration web panel.
    Make sure that you removed LUT table from the previous version!
    https://github.com/awawa-dev/HyperHDR/releases/tag/v10.2.0.8A
    This is a pre-release for advanced users for now.
     
    Last edited: 23 October 2020
    • Like Like x 2
    • Thank you Thank you x 1