View Single Post
Old 14th November 2019, 18:54   #7  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
Quote:
Originally Posted by astronob View Post
Well, adding color=0 and color=1 both give me a picture with Qtinput, but color=0 output is noticeably darker than color=1 (RGB24, vs RGB32), but is closer to the source color. Here is the info from using Qtinput in avisynth+. As mentioned in another thread in doom9, mode=4 gives me very similar, but not quite identical color. On the source, the whites are a little brighter, but I compared using qtinput with mode=0, color=4 (or color=0, both produce identical output) and straight ffms2 to input the video, and the output looks the same to me. It's a shame Qtinput hasn't been further developed to allow the input of 10bit and greater video bit depth. Perhaps if we all raised a petition we could persuade tateu to develop it a bit more. :-P
color=4 doesn't exist. QTinput's color= parameter only has values up to 2; clearly, if you use something >2, it just forces it back to 0.

Converting to RGB from a YUV source is going to entail things like full vs. limited range, which QTinput (or Quicktime 7 on Windows, which is itself deprecated, unsupported by Apple, and hasn't gotten security updates in years) is probably not handling, or not handling correctly. There is also the fairly well-known "Quicktime gamma bug" that messes with full vs. limited range when decoding H.264. Who knows, maybe other formats like uncompressed v210 are included in that. And if you're trying to resize up to 720p or something, then the conversion between BT.601 and BT.709 is going to come into play somewhere in this too. There's lots of places subtly wrong color conversions can occur.

And not knowing anything about how QT7 handled >8bit I/O, I can't say whether that's something that has latent color conversion bugs (or they might be considered "features") Apple never fixed before abandoning it.

At least by using FFMS2 or LSMASH, you're not limited to 32bit - both plugins can be used under 64-bit AviSynth+, and you're dealing with the original YUV422P10 content, so any necessary color conversions can be handled by internal filters or external plugins outside the source filter that can be counted on to be correct. There's also the option of using AviSynth+'s multithreading capabilities to speed up the processing filters (FFMS2 and LSMASH use libavcodec's internal multithreading anyway, but being source filters, have to be used in MT_MODE_SERIALIZED, which might cause a bottleneck).
qyot27 is offline   Reply With Quote