HDR Issue - Color is apparently being converted from rec709 to rec2020 space when rec2020 output options are selected

  • I'm working on another HDR project, and with the newest beta of Voukoder I'm having some issues with color in HDR. Working with HDR in Premiere is a bit of a weird thing. Basically, you have to import in the raw, unprocessed 10bit footage, which Premiere will assume as rec709 color. This will look all washed out and incorrect, unless you have an HDR monitor that can take this raw ST2084 encoded footage, and display it in HDR correctly, which I have.


    So, Premiere thinks you're working with rec709 footage, even though the footage is actually rec2020 underneath. This is necessary, because if you give Premiere an actual correctly-flagged rec2020/st2084 video, it will convert those colors into something that will display more correctly on an SDR display, but can not be encoded to HDR correctly aside from Adobe's own codec, and can not be displayed on an HDR monitor correctly, for monitoring while editing.


    When I select rec2020 for output in Voukoder, there appears to be some color space conversion going on, which causes a serious shift in colors, making everything appear greenish. I'm guessing Voukoder sees the footage as rec709, and wants to convert the colors to rec2020, but even though Premiere interprets it as rec709, the footage is actually rec2020 and so should need no conversion. Here is a raw frame as it appears in Premiere on a normal monitor:

    Pre-Voukoder.jpg

    and here is how that frame gets encoded with Voukoder set to rec2020:

    Post-Voukoder.jpg


    Right away, even in the unprocessed raw footage you should be able to tell that colors appear more washed out, and more green tinted. But here are the same two images, with HDR-to-SDR tonemapping applied, to give you a more "correct" look at how the images would display:


    Pre-Tonemapped.jpgPost-Tonemapped.jpg


    That's a major shift in color, and looks really bad.


    I actually noticed this issue before, while encoding my previous project in Voukoder 2.0.8. However, that version had two different options for color space. In the normal Premiere window, I set color space to rec709, because that's essentially what Premiere assumes it is, but then in Voukoder's advanced x265 settings I set these options that specified to encode in rec2020 and ST2084/PQ


    --colorprim bt2020

    --transfer smpte2084

    --colormatrix bt2020nc


    This allowed the raw image to pass through mostly unaffected (although there's always a slight tint seemingly applied to all encodes I make with x264 & x265 from Premiere, voukoder or not). These options are apparently gone now, in favor of a single color space selector in the main window.


    Since Voukoder appears to correctly assume that the transfer characteristics (ST2084/PQ) are inherent to the source, and not something that needs to be converted, it should do the same for color space. When you select color space, you should be selecting what the source already is, not what you want to convert it to.


    I hope this is something that could be fixed somewhat soon, but if not I can always go back and install the older version which worked better.

  • I'm currently facing the same issue, it would be nice if the new version could add those options again.


    Can you paste the mediainfo of your original file ? Your raw video is in 8 or 10 bits ? And what type of HDR it is ? PQ or HLG ?

  • MediaInfo from my source file, the one I'm editing in Premiere?



    I specifically tell my Ninja Inferno to record in rec709 mode, so that the footage appears in its raw form in Premiere, which is what's necessary for monitoring in HDR, and what's necessary for the Voukoder HDR output. But it's 10bit, PQ, rec2020, in a rec709 container.


    As I said before, if I allow Premiere to import it as correctly tagged HDR footage, then Premiere will display it somewhat correctly on an SDR monitor, but there will be no way to monitor it correctly in HDR, and the output won't be in the correct format for what x265 needs, as it will essentially pass a 100-nit clipped SDR version to Voukoder, instead of the raw HDR video.

  • First some questions:


    1. Did this work with version 2.2 properly?

    2. Can you please take a look in your log file (%LOCALAPPDATA%\Voukoder) and tell me the pixel format that is mentioned next to:

    "Requesting pixel format:"

    Stay up-to-date and follow me on Twitter. Tell me your feedback.


    Help to improve this plugin and support me on patreon. Thank you.

  • First some questions:


    1. Did this work with version 2.2 properly?

    2. Can you please take a look in your log file (%LOCALAPPDATA%\Voukoder) and tell me the pixel format that is mentioned next to:

    "Requesting pixel format:"

    [03:52:20] Requesting pixel format: yuv420p10le

    [03:52:21] Applying video filters: colorspace=range=mpeg:space=bt2020ncl:trc=bt2020-10:primaries=bt2020,format=pix_fmts=yuv420p10le


    I wonder if that's the problem right there, the video filters. Those are most likely performing conversions. You shouldn't need those. Just set the correct options in x265, as described above. Or, perhaps you should be using ispace, itrc, and iprimaries instead maybe?


    Most likely ffmpeg is assuming bt709 as the input color space, so when you tell it what the output color space should be, it feels the need to do a conversion, causing this issue. That being said, it's not performing a conversion on transfer characteristics, so I'm not entirely sure. But maybe that part's because of the yuv420p10le format.


    2.2 doesn't save any of my advanced x265 settings, so I can't exactly encode HDR properly, but outputting with bt2020 settings in the main Premiere window does in fact cause the same color shift.


    ----


    In the meantime I've found using a rec2020 to rec709 conversion LUT, applied in Lumetri Color is a workaround to this issue, but of course this limits the color gamut to SDR color, so it's not ideal.

  • Vouk

    Added the Label Fixed
  • Vouk

    Set the Label from Adobe Premiere / MediaEncoder to Independent
  • Vouk

    Set the Label from 2.3 to 2.2