hi, can somebody can explain me that conversion of chroma from RGB source to the YV12 destination is done with interpolation (average) of two chroma samples or simple by discarding one of them?? example script: ImageSource("1080.bmp", end = 1799 , fps = 30000/1001) ConvertToYV12(interlaced=False, matrix="Rec709") AssumeFPS(30000,1001) I try to look in the avisynth source but i giveup on MMX mambo jumbo... thank you!
-------------------- What would Crockett and Tubbs do? 1994 E36 Hellrot/Black 325is 2007 E92 Jet Black/Saddle Brown 335i
RGB (4:4:4) to YV12 (4:2:0) is in AviSynth 2.5 done through an intermediate YUY2 (4:2:2) conversion. The RGB to YUY2 is done by a 1:2:1 weighed horisontal interpolation, so chroma is left aligned for a pixel pair. YUY2 to YV12 is done by a averaging chroma vertically. See more at
@Pandy: To get proper MPEG 2 chroma placement you have to interpolate. If you want to convert RGB to YUY without interpolation, use ConvertBackToYUY2(), which calculates chroma based only on the leftmost pixel. This will avoid chroma drift on YUY2 -> RGB -> YUY2. ImageSource("1080.bmp", end = 1799 , fps = 30000/1001) ConvertBackToYUY2(matrix="Rec709") ConvertToYV12() AssumeFPS(30000,1001)
Note:- ImageSource(... , fps = 30000/1001) Will use integer division and result in fps=29! Add a decimal point to either number to get floating point division, i.e 30000.0/1001.0