今日发现使用 O16 mod BitDepth() 位移转换 10-bit 至 8-bit 与 AviSynth+ ConvertBits()、f3kdb 不同。
使用 ConvertBits 与 f3kdb 的效果应当是相同的。
ConvertFromStacked(10).ConvertBits(16, fulls=False).ConvertToStacked()
f3kdb(Y=0, Cb=0, Cr=0, grainY=0, grainC=0, keep_tv_range=false, input_mode=1, input_depth=10, output_mode=1, output_depth=16)
而使用 BitDepth 转换则不同。
BitDepth(input_depth=10, output_depth=16, input_TVrange=True, output_TVrange=True)
拉出 Y 平面来看十分明显,但 U、V 较不明显(差异还是有)。
将结果用 Down10(10, True, -1) 转换回 10-bit,发现结果仍有细微差异。
这个差异不只发生在位移,扩张法也有差异。