11.08.2025, 22:56
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
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