Selur's Little Message Board

Full Version: Low Precision of Cube luts with YUV 8-bit inputs
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Currently, when injesting 420 8-bit video the TimeCube converts to an RGB24 format, which isn't clean or ideal when going between YUV-RGB conversions due to rounding error/clipping in 8-bit between the two. 

Ideally for luts, content should be converted to RGB48 at least or ideally a planar RGB format for cube, if this default behavior is intended I think having an option for forcing a higher depth conversion, or allowing gimmick force 16-bit on TimeCube and ColorMatrix, currently the only option is "ApplyOnlyTo"

Currently when using 420 it'll apply 

# adjusting color space from YUV420P8 to RGB24 for vsTimeCubeclip = core.resize.Bicubic(clip=clip, format=vs.RGB24, matrix_in_s="470bg", range_s="limited")


A workaround I use is to use a filter with 0 strength with a gimmick of 16-bit, which produces 
# adjusting color space from YUV444P16 to RGB48 for vsTimeCube
giving me the expected results of my LUTs
Atm. there are multiple ways about this:
  • You can enable the 'Gimmick'-Option (Filtering->Vapoursynth->
  • you could add a Filtering->Vapoursynth->Custom section before it and insert
    Code:
    # requires RGB48
  • if you are aiming for 16bit output anyway, activating 'Filtering->Vapoursynth->Source->Convert to target color space after source filter'
  • do it like you did

But I agree, that the Gimmick options should be available for ColroMatrix and TimeCube.
=> Will add an option later today after work.

Cu Selur
Had a quick look at it before work, but noticed a general bug that should be fixed first, but I think I should get that fixed too this evening.

Cu Selur
Uploaded a new dev version, had to change quite a bit to fix a bit related to the problem, so let me know if you run into strange behavior.

Cu Selur