This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Coversion Dolby Vision to SDR
#1
Hello Selur,

   It seems that to convert Dolby Vision to SDR in Hybrid there is available only the Vapoursynth filter "ToneMap (Placebo)"
   I noted that this filter is very slow, especially in "preview" and in the initial encoding, 
   This filter should support the GPU, but in input I don't see any option to enable the GPU for this filter.
   Do you know if this filter is able to use the GPU ?

   As additional observation, if one as defined in "Video Usability Information" to propagate the matrix, transfer, primes from input to output. 
   In case of conversion these values will be wrong and this option should be disabled.  

Dan
Reply
#2
Quote:This filter should support the GPU, but in input I don't see any option to enable the GPU for this filter.
Do you know if this filter is able to use the GPU ?
I don't see any option over at https://github.com/Lypheo/vs-placebo that offers any gpu accelleration.

Quote: As additional observation, if one as defined in "Video Usability Information" to propagate the matrix, transfer, primes from input to output.
In case of conversion these values will be wrong and this option should be disabled.
Yes, when doing HDR -> SDR conversions you should check the VUI settings.

Cu Selur
Reply
#3
this filter is an interface to libplacebo and libplacebo currently supports Vulkan (including MoltenVK), OpenGL, and Direct3D 11. It currently has the following minimum hardware requirements:
  • Vulkan: Core version 1.2
  • OpenGL: GLSL version >= 130 (GL >= 3.0, GL ES >= 3.0)
  • Direct3D: Feature level >= 9_1

So I guess that is automatically supported since, as you said, there is not option in the filter regarding the GPU support  Undecided
Reply
#4
Yes, there is no option to disable or enable gpu support:
placebo.Tonemap(clip clip[, int src_csp, int dst_csp, int dst_prim, float src_max, float src_min, float dst_max, float dst_min, int dynamic_peak_detection, float smoothing_period, float scene_threshold_low, scene_threshold_high, int intent, int gamut_mode, int tone_mapping_function, int tone_mapping_mode, float tone_mapping_param, float tone_mapping_crosstalk, bool use_dovi, bool visualize_lut])
so its probably using whatever it finds.

As a side note: TimeCube also has matrices for dvhe0509.

Cu Selur
Reply
#5
Hello Selur,

  I tried the LUT dvhe0509_to_BT709.cube, but for my sample it was unable to properly map the colors.
  Mediainfo report the HDR format: Dolby Vision, Version 1.0, dvhe.05.06, BL+RPU
 
  The filter Tonemap (Placebo) was the only filter able to to map the colors to SDR but with a quite dark results.
  To get a good result I had to apply the following filters

# adjusting color space from YUV420P10 to YUV444P16 for vsToneMapPlacebo
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, range_s="limited")
# color adjustment using ToneMap (Placebo)
clip = core.placebo.Tonemap(clip=clip, src_csp=3, dst_csp=0, src_min=0.0050, src_max=1000.0000, dst_min=0.2023, dst_max=203.0000, dynamic_peak_detection=1, tone_mapping_param=0.000, use_dovi=True)
# adjusting color space from YUV444P16 to RGB48 for vsLevels
clip = core.resize.Bicubic(clip=clip, format=vs.RGB48, matrix_in_s="2020ncl", range_s="limited")
# Color Adjustment using Levels on RGB48 (16 bit)
clip = core.std.Levels(clip=clip, min_in=4096, max_in=60160, min_out=4096, max_out=60160, gamma=1.30)
# adjusting color space from RGB48 to YUV444P16 for vsTweak
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, matrix_s="2020ncl", range_s="limited")
# Color Adjustment
clip = adjust.Tweak(clip=clip, hue=-5.00, sat=1.05, cont=1.01, bright=2560, coring=True)

     In the Tweak GUI settings I set the Brightness to "10", but in the code this value has been changed in "2560" (strange), but the code worked, so should not be a problem...

Dan
Reply
#6
About the number change: you enter values 0-255 for 8bit which Hybrid converts to the color depth that is present where you use the filter. Smile
In your case 16bit. Smile

Cu Selur
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)