Rocky wrote: ↑Thu Jun 15, 2023 7:41 am
I don't understand your question. DGCube is agnostic to PQ/HLG. And we have our PG to HLG filter. Please clarify.
My answer was indeed a bit fuzzy.
If I recall well, the conversion from PQ to SDR is a single DGCube line.
When we need to convert from PQ to HLG, the real bottleneck is that we have to use two conversions, before and after DGCube. AFAIK the reason is that DGCube can convert 4:2:0 only and you can't specify the resizing kernel or dithering.
propclearall()
z_ConvertFormat(pixel_type="RGBP16", colorspace_op="2020:st2084:2020:limited=>rgb:st2084:2020:full", resample_filter_uv="Spline64", dither_type="error_diffusion", use_props=0)
DGCube("1a_PQ1000_HLG_mode-nar_in-nar_out-nar_nocomp.cube", in="full", lut="full", out="full")
z_ConvertFormat(pixel_type="YUV420P16", colorspace_op="rgb:std-b67:2020:full=>2020:std-b67:2020:limited", resample_filter_uv="Spline64", dither_type="error_diffusion", use_props=0)
That annihilates the huge gpu speed gain. You were thinking about rewrite a zimg CUDA porting but I can understand is a real PITA. At least we need those two conversions in CUDA.