First stage is to identify whether the original source was analog or digital. If analog, there will be a few extra techniques that should be used, prior to any deinterlace or inverse telecine. Such as dot-crawl removal (FFmpeg’s dedot filter is good for this). You will often see dot-crawl on analog sources, especially on title-cards.
Next stage is to identify whether dealing with studio source (24fps), or TV source (29.97i). If studio source it may need inverse telecine (pullup, fieldmatch) to revert the 29.97i back to 23.98p. Or if PAL 25fps it will need consideration as to whether it contained euro-pulldown or reversing speedups. Your goal is to preserve the natural original field rate of the source. It is very easy to inadvertently throw away half of your temporal resolution.
If it was an analog digitization, then there is likely to need to be a temporal denoise, especially in the chroma plane. hqdn3d is a very good filter for this.
The above preprocessing can be done with either plain-old FFmpeg (dedot + bwdif deinterlace + hqdn3d denoise) or Avisynth (dedot + qtgmc). You may also choose to use Neat Video as a better denoise.
This is a good opportunity to consider your color-workflow, eg color space, primaries, transfer, range and pixel format. The source is likely to be BT.601 NTSC or BT.601 PAL limited range. You are likely to want to end up with 1080 BT.709 limited range. But TVAI has the added complication of requiring a conversion to RGB.
The output of your pre-process can then be saved as a lossless, interim codec such as FFV1 (level 3), full-range in RGB48le pixel format. Why? Because TVAI only “thinks” in RGB anyway and forces a conversion from YUV to RGB, so you may has well store your dedotted, deinterlaced, temporal denoised pre-processed source in this pixel format anyway. And FFV1 is a great interim lossless codec.
You should now have something like a 480p, denoised source that is either at the original progressive resolution of 23.98/24fps for studio, 59.97fps for US TV or one of the PAL frame rates. It may even have 29.97p or 30p. There are lots of combos here.
You can then play this pre-processed stream in MVP, VLC or video-compare. You can check that the colors are correct and that you have not incurred any color-shift. Watch out for color shifts.
Then it is a case of performing the upscale of the pre-processed source with TVAI with your preferred model.
You are likely to want to end up with HD that conforms to BT.709, which means:
- conversion from non-square to square pixel
- either 720 or 1080 resolution
- BT.709 color space
- limited range
- You may want to remove black bars from cinemascope, or add black bars for 4:3, depending on your preference
- You are likely to want to end up with 4:2:0 YUV pixel format, unless you have specific requirements.
You can attempt to do all this in one with TVAI (deinterlace, denoise, super-resolution), but I prefer a pre-processing step, especially when dealing with analog sources.
- dedot - TVAI does not include dedot. So if you want dedot, you have to use use command line.
- deinterlace - Some people find QTGMC a superior deinterlacer to bwdif. Others find QTGMC is a little to aggressive.
- denoise - Some people prefer Neat Video’s denoise over FFmpeg’s hqdn3d. Both of these give you specific control over temporal-denoise in the chrome plane, which TVAI’s denoise does not.
I tend to avoid pushing 480 all the way to UHD. You may be able to push a high quality digital-sourced 576 PAL to UHD, but for 480 (especially analog source) the jump to anything more than HD seems is likely to be too much.
Again, check the final result for color shifts.